我有汇编代码执行数学方程式,结果存储在ebx
寄存器中。如何显示寄存器的值?我正在考虑将ebx
的值推送到堆栈,然后"%i\n"
,并调用printf,但如果这样可行,我不知道如何使用MacOS在GCC程序集中编码。
答案 0 :(得分:3)
#include <stdio.h>
int f()
{
asm("movl $42, %ebx");
asm("movl %ebx, %eax");
}
main() {
printf("%i\n", f()); // displays 42.
}
如您所见,EAX寄存器的内容将用作f()函数的返回值。