第五周课上测试补做

通过输入gcc -S -o main.s main.c 将下面c程序”week04学号.c“编译成汇编代码

int g(int x){
    return x+3;
}
int f(int x){
     int i = 学号后两位;
    return g(x)+i;
}
int main(void){
    return f(8)+1;
}

参考http://www.cnblogs.com/lxm20145215----/p/5982554.html,使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况。提交照片,要有学号信息。
实验步骤:

  • 1、使用gcc - g week0420165228.c -o week0420165228 -m32指令在64位的机器上产生32位汇编
  • 2、然后使用gdb week0420165228指令进入gdb调试器
  • 3、b main在main函数处设置断点,然后r运行
  • 4、disassemble 获取汇编代码
  • 5、i r查看各寄存器的值
  • 6、si进入下一条汇编指令
  • 7、x/a查看栈的变化

posted on 2018-10-28 20:23  月半月半白勺  阅读(80)  评论(0编辑  收藏  举报

导航