• 2022-10-31
    第2题中的caller函数对应的机器级代码如下:[br][/br] 1 pushl %ebp 2 movl %esp, %ebp 3 subl $24, %esp 4 movl $100, -12(%ebp) 5 movl $200, -8(%ebp) 6 movl -8(%ebp), %eax 7 movl %eax, 4(%esp) 8 movl -12(%ebp), %eax 9 movl %eax, (%esp) 10 call add 11 movl %eax, -4(%ebp) 12 movl -4(%ebp), %eax 13 leave 14 ret 假定caller的调用过程为P,对于上述指令序列,以下叙述中错误的是( )。
    A: 第2条指令使BEP内容指向caller栈帧的底部
    B: 从上述指令序列可看出,caller函数没有使用被调用者保存寄存器
    C: 第1条指令将过程P的EBP内容压入caller栈帧
    D: 第3条指令将栈指针ESP向高地址方向移动,以生成当前栈帧
  • 举一反三