20155332 第六周课堂实践作业

题目要求

  • 1.通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.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;
    }

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

做题过程








查看rax寄存器变化

  • rax 0x40050a 4195594
  • rax 0x40050a 419559
  • rax 0x2c 44
  • rax 0x2c 44

查看rbp寄存器变化

  • rbp 0x7fffffffde80 0x7fffffffde80

  • rbp 0x7fffffffde80 0x7fffffffde80

  • rbp 0x7fffffffde80 0x7fffffffde80

  • rbp 0x400520 0x400520 <__libc_csu_init>

查看rsp寄存器变化

  • rsp 0x7fffffffde80 0x7fffffffde80
  • rsp 0x7fffffffde80 0x7fffffffde80
  • rsp 0x7fffffffde80 0x7fffffffde80
  • rsp 0x7fffffffde90 0x7fffffffde90

查看rip寄存器变化

  • rip 0x40050e 0x40050e <main+4>
  • rip 0x40050e 0x40050e <main+4>
  • rip 0x40051b 0x40051b <main+17>
  • rip 0x7ffff7a2d830 0x7ffff7a2d830 <__libc_start_main+240>
posted @ 2017-10-29 11:26  besti5332  阅读(254)  评论(0编辑  收藏  举报