0

我正在尝试解决“计算机组织与设计”一书中的问题。

我在书的解决方案中遇到了一系列说明。但是,mips 汇编程序 Qtspim 无法解释它们。这是说明。(本书第 4 版,问题 2.14.4 a)

add  $t2, $t0, $0
srl  $t2, $t2, 11
and  $t2, $t2, 0x0000003f
and  $t1, $t1, 0xffffffc0
ori  $t1, $t1, $t2

为什么ori有3个寄存器?(我认为它不是 r 型指令) 为什么有 32 位立即数?(我认为指令本身具有 32 位智能。)

先感谢您。

4

1 回答 1

1

前两条指令看起来不错,但以下三条指令不行。这些可能是拼写错误,或者本书的作者使用了不同的 MIPS 汇编程序,它接受这些指令并将它们转换为有效的指令。

例如:

and $t2,$t2,0x0000003f

=>
lui $t2,0 ; ANDing the upper halfword with 0x0000 would set it to 0
andi $t2,$t2,0x003f


and $t1,$t1,0xffffffc0

=>
andi $t1,$t1,0xffc0 ; ANDing the upper halfword with 0xffff would not change it


ori $t1,$t1,$t2

=>
or $t1,$t1,$t2

于 2013-03-31T08:44:10.640 回答