我正试图在“计算机组织与设计”一书中解决问题。
我在书的解决方案中遇到了一系列指令。 但Qtspim,mips汇编程序,无法解释它们。 这是说明。 (第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位明智。)
提前谢谢。
答案 0 :(得分: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