Assembly MIPS lw指令到底做什么?
救命啊!我是汇编新手,我正在尝试了解这个命令的作用Assembly MIPS lw指令到底做什么?,assembly,mips,instructions,Assembly,Mips,Instructions,救命啊!我是汇编新手,我正在尝试了解这个命令的作用 lw %t5, 100($t8) 我也知道左边是目的地,右边是来源地 lw Reg.Dest, Offset(Reg.Source) 我相信它会把数据从一个地方写到另一个地方,但我不了解细节 有人能给我解释一下这个命令或者给我指出正确的方向吗?您提供的以下定义是正确的 lw Reg.Dest, Offset(Reg.Source) 让我们将其转换为您的代码 lw $t5, 100($t8) 这里有Load Word(lw)指令,带有Re
lw %t5, 100($t8)
我也知道左边是目的地,右边是来源地
lw Reg.Dest, Offset(Reg.Source)
我相信它会把数据从一个地方写到另一个地方,但我不了解细节
有人能给我解释一下这个命令或者给我指出正确的方向吗?您提供的以下定义是正确的
lw Reg.Dest, Offset(Reg.Source)
让我们将其转换为您的代码
lw $t5, 100($t8)
这里有Load Word(lw)指令,带有Reg.Dest=$t5
,Offset=100
,以及Reg.Source=$t8
总之,这意味着将地址
$t8+100
处的4个字节加载到寄存器$t5您提供的以下定义是正确的
lw Reg.Dest, Offset(Reg.Source)
让我们将其转换为您的代码
lw $t5, 100($t8)
这里有Load Word(lw)指令,带有Reg.Dest=$t5
,Offset=100
,以及Reg.Source=$t8
总之,这意味着将地址
$t8+100
处的4个字节加载到寄存器$t5lw
是一条I型指令:
+--------+----+----+-----------+
I | opcode | rs | rt | immediate | (instruction fields)
+--------+----+----+-----------+
6 5 5 16 (bit length)
它在RTL()中具有以下规范:
在哪里
汇编语法是lw-rt,immediate(rs)
,其中rt
,rs
,和immediate
分别是寄存器名和小整数常量
有关所有说明,请参阅
请注意,
lw
操作码通常还支持许多伪指令形式,这些伪指令形式可扩展为多个实际的MIPS指令。要了解它们的作用,我们可以检查扩展的各个指令。有一种形式对于加载全局变量特别有用:lw rt,globalDataLabel
。在这种形式中,未提供基址寄存器(rs
),它扩展为2条指令,完成将全局字加载到目标寄存器中。lw
是一条I型指令:
+--------+----+----+-----------+
I | opcode | rs | rt | immediate | (instruction fields)
+--------+----+----+-----------+
6 5 5 16 (bit length)
它在RTL()中具有以下规范:
在哪里
汇编语法是lw-rt,immediate(rs)
,其中rt
,rs
,和immediate
分别是寄存器名和小整数常量
有关所有说明,请参阅
请注意,
lw
操作码通常还支持许多伪指令形式,这些伪指令形式可扩展为多个实际的MIPS指令。要了解它们的作用,我们可以检查扩展的各个指令。有一种形式对于加载全局变量特别有用:lw rt,globalDataLabel
。在这种形式中,没有提供基址寄存器(rs
),它扩展为2条指令,完成将全局字加载到目标寄存器中。lw
是“加载字”的简写,这是指令所做的事情——它将一个字的数据从内存加载(读取)到寄存器中
因此,第一个操作数(目标)是寄存器,而第二个操作数指定内存中的位置。位置(地址)是通过向寄存器的内容添加一个偏移量来计算的。
lw
是“加载字”的缩写,这是指令所做的——它将一个数据字从内存加载(读取)到寄存器中
因此,第一个操作数(目标)是寄存器,而第二个操作数指定内存中的位置。位置(地址)是通过向寄存器的内容添加偏移量来计算的。它将
$t8+100
处的值加载到寄存器$t5
%t5
是一个语法错误。我想你的意思是$t5
?它将$t8+100
处的值加载到寄存器$t5
%t5
是一个语法错误。我猜你的意思是$t5
?