【发布时间】:2017-07-26 03:35:15
【问题描述】:
在 PCSpim 中,当程序执行时,它会在文本窗口中为每条指令显示一行。
例如[0x00400028] 0x34020004 ori $2, $0, 4 ;13: li $v0, 4
该示例将 4 加载到寄存器 $v0 中。
ori $2, $0, 4 是什么意思?
0x34020004 是不是同一个命令,但是是十六进制的?
谢谢。
【问题讨论】:
标签: assembly mips mips32 pcspim
在 PCSpim 中,当程序执行时,它会在文本窗口中为每条指令显示一行。
例如[0x00400028] 0x34020004 ori $2, $0, 4 ;13: li $v0, 4
该示例将 4 加载到寄存器 $v0 中。
ori $2, $0, 4 是什么意思?
0x34020004 是不是同一个命令,但是是十六进制的?
谢谢。
【问题讨论】:
标签: assembly mips mips32 pcspim
[0x00400028] 0x34020004 ori $2, $0, 4 ;13: li $v0, 4
0x00400028是指令所在的地址。0x34020004 是指令字,即编码指令的四个字节。ori $2, $0, 4 是人类可读的指令形式,在这种情况下将 $2(又名 $v0)设置为 4。li $v0, 4 是您输入的指令。由于li 是一个伪指令,它被汇编器翻译成一条或多条实际的MIPS 指令(在本例中为ori $2, $0, 4)。
【讨论】:
ori 是按位或,它“或”来自$0(有时也称为$zero)的零与立即常数4,其结果是值4,并将结果存储到$v0(在伪C中:$v0 = $zero | 4;)