main.c
#include <stdio.h>
int a;
int main()
{
asm(
"pusha #this is a note\n"
"movl $1,a\n" //a is a memory address
"movl a,%eax\n"
"addl $2,%eax\n"
"movl %eax,a\n"
"popa"
);
printf("a=%d\n",a);
return 0;
}
编译:gcc main.c -o main
运行结果为a=3
注意:C语言中的全局变量名,在内嵌汇编代码中被引用时表示的是这个变量的内存地址

本文探讨了C语言与汇编语言结合编程的方法,通过一个具体的实例展示了如何在C代码中嵌入汇编指令来操作全局变量。该示例详细解释了如何使用内嵌汇编来修改全局变量的值,并提供了编译和运行结果。
692

被折叠的 条评论
为什么被折叠?



