显示汇编中寄存器的值

时间:2010-11-11 01:52:30

标签: gcc assembly printf

我有汇编代码执行数学方程式,结果存储在ebx寄存器中。如何显示寄存器的值?我正在考虑将ebx的值推送到堆栈,然后"%i\n",并调用printf,但如果这样可行,我不知道如何使用MacOS在GCC程序集中编码。

1 个答案:

答案 0 :(得分:3)

#include <stdio.h>

int f()
{
        asm("movl $42, %ebx");
        asm("movl %ebx, %eax");
}

main() {
        printf("%i\n", f()); // displays 42.
}

如您所见,EAX寄存器的内容将用作f()函数的返回值。