OpenEuler中C语言中的函数调用测试(选做)

OpenEuler中C语言中的函数调用测试(选做)

在X86_64架构下实践2.4中的内容

使用gcc -m32 4.c -o 4指令在64位机器上产生32位汇编

OpenEuler中C语言中的函数调用测试(选做)

通过GDB查看寄存器的内容,把教材中的图填入具体的值

  • 进入gdb调试器:gdb 4
  • 在main函数处设断点: b main
  • 运行:r
  • 查看各寄存器地址与值: i r
  • 获取汇编代码:disassemble

OpenEuler中C语言中的函数调用测试(选做)

call指令将sub函数地址入栈以备调用,调用之前u、v被压入栈,所以u和v在栈中的地址为0x56556239、0x5655623c
OpenEuler中C语言中的函数调用测试(选做)

longjump

  • 使用gcc -m32 4.c -o 4指令在64位机器上产生32位汇编

OpenEuler中C语言中的函数调用测试(选做)

  • 按照上述方法查看汇编代码

OpenEuler中C语言中的函数调用测试(选做)

OpenEuler中C语言中的函数调用测试(选做)

上一篇:x86汇编入门


下一篇:OpenEuler基础实验