Gcc 在汇编中显示寄存器的值
我有一个汇编代码,它执行一个数学方程,结果存储在Gcc 在汇编中显示寄存器的值,gcc,assembly,printf,Gcc,Assembly,Printf,我有一个汇编代码,它执行一个数学方程,结果存储在ebx寄存器中。如何显示寄存器的值?我正在考虑将ebx的值推送到堆栈中,然后“%I\n”,并调用printf,但如果这样做可行,我不知道如何使用MacOS在GCC程序集中对其进行编码。\35; include #include <stdio.h> int f() { asm("movl $42, %ebx"); asm("movl %ebx, %eax"); } main() { pr
ebx
寄存器中。如何显示寄存器的值?我正在考虑将ebx
的值推送到堆栈中,然后“%I\n”
,并调用printf,但如果这样做可行,我不知道如何使用MacOS在GCC程序集中对其进行编码。\35; include
#include <stdio.h>
int f()
{
asm("movl $42, %ebx");
asm("movl %ebx, %eax");
}
main() {
printf("%i\n", f()); // displays 42.
}
int f()
{
asm(“movl$42,ebx”);
asm(“移动百分比ebx,%eax”);
}
main(){
printf(“%i\n”,f());//显示42。
}
如您所见,EAX寄存器的内容将用作f()函数的返回值。您必须告诉我们什么是arch:x86?x86_64?PPC?这将影响用于调用printf的程序集和调用约定。根据
uname
我正在使用i386架构。