• 20135202闫佳歆-第四章家庭作业-4.47+4.48


    第四章家庭作业

    选题:4.47、4.48两题

    分值:两题各一分

    作业过程:

    4.47题:

    leave指令等价于如下代码序列:

    rrmovl	%ebp,%esp
    popl	%ebp
    

    也就是说它要执行的动作是,将帧指针ebp的内容赋给栈指针esp,然后弹出ebp,栈指针+4,结果是消灭这个栈。

    参照pop指令的格式,可以得出如下的过程:

    取指阶段   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题

    iaddl的指令是集合了irmovl指令和addl指令,先用irmovl指令将一个常数加到寄存器,再用addl把这个值加入目的寄存器。

    由题中的图,参考irmovl和addl指令的过程,可以得到如下过程:

    取指阶段   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   ;把结果写回到目的寄存器中。
    

    感想

    这次的作业难度比较低,主要是复习了对顺序实现的几个步骤里都做了些什么,每一步都代表着什么意义,练习熟练后可以做到举一反三。

  • 相关阅读:
    关于web标准的理解(转)
    media type 与 media query
    HTML 5 学习 (1)
    jQuery的事件和动画
    jQuery操作Dom
    jQuery选择器的学习
    关于datetime和int 是否可为null的问题
    core animation (转)
    关于Navigation的BarButtonItem的
    iphone和ipad各控件大小
  • 原文地址:https://www.cnblogs.com/20135202yjx/p/4914943.html
Copyright © 2020-2023  润新知