0

我正在编写一个 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

文件结束

我的“sll $5, $5, 3”行应该将寄存器 5 的内容乘以 2^3,然后将其放回寄存器 5。它不是显示 16,而是显示 10。我的猜测是三位移位它的执行导致溢出问题,但我想不出办法来纠正这个问题。

4

0 回答 0