私は次のコードを持っています:
#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を学習するためだけに)。