什么是“sw $ fp($ sp)”在MIPS中意味着什么

时间:2015-09-27 10:01:41

标签: computer-architecture

我在计算机组织课程中有一项任务。  这是MIPS

中的阶乘递归代码的一部分
main:
                                # prolog        
     sub     $sp, $sp, 4       
     sw      $_ra_, ($sp)
     sub     $sp, $sp, 4       
     sw      $_fp_, ($sp)

     sub     $fp, $sp, _8_     
     move    $sp, $fp 

在这段代码中,我知道“sub $ sp,$ sp,4”的意思,存储$ ra  并将帧指针存储在$ ra寄存器下。但是,我无法理解代码“sw $ fp,($ sp)”,“sub $ fp,$ sp,8”和 “move $ sp,$ fp”。

1 个答案:

答案 0 :(得分:0)

  1. 对于指令“sw $ fp,($ sp)”sw表示存储字,您将一个字存储在内存中。基本上,您将$ fp的内容发送到寄存器$ sp中包含的内存地址中为零偏移量。
  2. 对于指令“sub $ fp,$ sp,8”,您将从寄存器$ sp的内容中减去8,并将结果存入寄存器$ fp。
  3. 对于“move $ sp,$ fp”,你只需将寄存器$ fp的内容移动到寄存器$ sp中。