20171108课后习题

20171108课后习题

1 完成家庭作业4.47,4.48,4.49

2 相应代码反汇编成X86-64汇编

3 把上述X86-64汇编翻译成Y86汇编,并给出相应机器码

4.47

取指阶段 icode:ifun<--M1[PC] = D:0

   valP <= PC + 1  ;下一条指令地址

译码阶段 valB <= R[%ebp] ;得到ebp的值,这个值就是新的栈指针esp的值

执行阶段 valE <= valB + 4 ;栈指针的值+4

访存阶段 valM <= M4[valB] ;读ebp中的值

写回阶段 R[%esp] <= valE ;把更新后的指针赋值给esp

      R[%ebp] <= valM   ;弹出的ebp的值

4.48

取指阶段 icode:ifun = M1[PC] = C:0

    rA:rB <= M1[PC+1]   ;取出操作数指示符
       valC <= M4[PC+2]   ;取出一个四字节常数字,即想要加进去的那个常数
       valP <= PC + 6   ;下一条指令地址

译码阶段 valB <= R[rB] ;读入想要存到的那个寄存器

执行阶段 valE <= valB + valC ;得到目的寄存器中的值和常数值的和
SetCC

访存阶段

写回阶段 R[rB] <= valE ;把结果写回到目的寄存器中。

转载于:https://www.cnblogs.com/fixedl/p/7823447.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值