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 ;把结果写回到目的寄存器中。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步