我正在编写一个MIPS汇编语言程序,通过使用'sll'操作移位来执行多重复用。 这是我的源代码:
.text
.globl main
main:
ori $5,$0,2 # put x into $5
ori $6,$0,4 # put y into $6
sll $5,$5,3 # put 8*x into $8
sll $6,$6,1 # put 2*y into $9
subu $10,$8,$9 # $5 - $6, put result in 10
addiu $10,$10,14 # add register 10 and number 14, put result in 10
我的“5美元,5美元,3美元”这一行应该取寄存器5的内容并将其乘以2 ^ 3然后将其放回寄存器5.而不是显示16,它显示10.我的猜测是它正在执行的三位移位导致溢出问题,但我想不出有办法纠正这个问题。