我有以下代码:
#include <stdio.h>
void main(){
int x=0, y=0,i=100;
for (;i<1000; i++,x+=32){
if (x == 25*32) {
y+=32;
asm volatile("pushl %%eax\n\t"
"movl $0, %%eax\n\t"
"popl %%eax\n\t"
:"=a"(x)
:"a"(0)
);
}
printf("%d %d\n", x, y);
}
}
基本上,我想要做的是,将变量 x 设置为 0,但我不太明白汇编代码的作用,它实际上确实将 x 设置为 0,但我不确定发生了什么。有人可以解释发生了什么吗?(只是为了学习汇编和C)。