帮助!我是汇编语言新手,我正在尝试了解此命令的作用
lw %t5, 100($t8)
另外,我知道左边是目的地,右边是源
lw Reg.Dest, Offset(Reg.Source)
我相信它会把数据从一个地方写到另一个地方,但我不明白细节。
有没有人能给我解释一下命令或者给我指个方向?
发布于 2021-02-23 00:12:03
lw
是一条I型指令:
+--------+----+----+-----------+
I | opcode | rs | rt | immediate | (instruction fields)
+--------+----+----+-----------+
6 5 5 16 (bit length)
它在RTL (register transfer level/logic)中有以下规范:
R[rt] = M[R[rs]+SignExtImm]
哪里
SignExtImm = { 16{immediate[15]}, immediate }
程序集语法为lw rt, immediate(rs)
,其中rt
、rs
和immediate
分别是寄存器名称和小整数常量。
有关所有说明,请参阅MIPS green sheet。
注意,lw
操作码通常也支持许多伪指令形式,这些伪指令形式扩展为多个实际的MIPS指令。要了解这些指令的作用,我们可以检查扩展的单个指令。其中一种形式对于加载全局变量特别有用:lw rt, globalDataLabel
. 在这种形式中,没有提供基址寄存器(rs
)。它扩展为两条指令,完成将全局字加载到目标寄存器中。
https://stackoverflow.com/questions/66318645
复制相似问题