"sw $fp($sp)" 在 MIPS 中是什么意思
what is "sw $fp($sp)" mean in MIPS
我在计算机组织中有一个任务 class。
这是 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" 的意思,store $ra
并将帧指针存储在 $ra register.However 下,我无法理解代码 "sw $fp,($sp)" 、 "sub $fp, $sp,8" 和
"move $sp, $fp"。
- 对于指令 "sw $fp,($sp)" sw 表示存储字,您正在将一个字存储在 memory.Basically 您正在将 $fp 的内容发送到寄存器 $sp 中包含的内存地址,偏移量为零.
- 对于指令 "sub $fp, $sp,8",您从寄存器 $sp 的内容中减去 8,并将结果保存在寄存器 $fp 中。
- 对于"move $sp, $fp",您只是将寄存器$fp 的内容移动到寄存器$sp 中。
我在计算机组织中有一个任务 class。 这是 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" 的意思,store $ra 并将帧指针存储在 $ra register.However 下,我无法理解代码 "sw $fp,($sp)" 、 "sub $fp, $sp,8" 和 "move $sp, $fp"。
- 对于指令 "sw $fp,($sp)" sw 表示存储字,您正在将一个字存储在 memory.Basically 您正在将 $fp 的内容发送到寄存器 $sp 中包含的内存地址,偏移量为零.
- 对于指令 "sub $fp, $sp,8",您从寄存器 $sp 的内容中减去 8,并将结果保存在寄存器 $fp 中。
- 对于"move $sp, $fp",您只是将寄存器$fp 的内容移动到寄存器$sp 中。