代码之家  ›  专栏  ›  技术社区  ›  None

在程序集中显示寄存器值

  •  2
  • None  · 技术社区  · 15 年前

    我有执行数学方程的汇编代码,结果存储在 ebx 注册。如何显示寄存器的值?我在考虑推动 电子束外延 那就到那堆 "%i\n" ,并调用printf,但如果这可行,我不知道如何使用macos在gcc程序集中对其进行编码。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Simone    15 年前
    #include <stdio.h>
    
    int f()
    {
            asm("movl $42, %ebx");
            asm("movl %ebx, %eax");
    }
    
    main() {
            printf("%i\n", f()); // displays 42.
    }
    

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

    推荐文章