在mips中不使用div指令对两个符号整数进行除法。输入由十六进制写入

在mips中不使用div指令对两个符号整数进行除法。输入由十六进制写入,mips,mips32,mips64,Mips,Mips32,Mips64,请帮帮我,我根据《计算机组织与设计》一书中的算法编写了mips除法2号整数的代码,但结果并不像我预期的那样。我不知道我错了什么: .text .globl main main: ori $s0,0x00000007 #set value dividend ori $s1,0x00000002 #set value divisor ori $v0,0x00000000 #set value quotient ori $v1,0x00000000 #set value remander

请帮帮我,我根据《计算机组织与设计》一书中的算法编写了mips除法2号整数的代码,但结果并不像我预期的那样。我不知道我错了什么:

.text
.globl main

main:

ori $s0,0x00000007  #set value dividend
ori $s1,0x00000002  #set value divisor
ori $v0,0x00000000  #set value quotient
ori $v1,0x00000000  #set value remander
ori $t2,0x00000000  #set value count
start:

sub $v1,$v1,$s1 #Subtract the Divisor register from the Remainder register and place the result in the Remainder register
slt $t1,$v1,$zero #Remainder < 0 jump to loop 2b
beqz $t1,loop2a #else jump to loop 2a
j loop2b    
loop2a:

#Shift the Quotient register to the left, setting the new rightmost bit to 1
sll $v0,$v0,1
addi $v0,$v0,1
srl $s0,$s0,1
addi $t2,$t2,1  #increase count to 1
slti $t1,$t2,33 #if count < 33 repetitions then continue to start else done
beqz $t1,done   
j start
loop2b:

#Restore the original value by adding the Divisor register to the Remainder register and place the sum in the 
#Remainder register. Also shift the Quotient register to the left, setting the new least significant bit to 0.
add $v1,$s0,$v1
sll $v0,$v0,1
addi $v0,$v0,0
addi $t2,$t2,1  #increase count to 1
slti $t1,$t2,33 #if count < 33 repetitions then continue to start else done
beqz $t1,done
j start
done:

#display the result
addi $a0,$v0,0
li $v0,1
syscall
addi $a0,$v1,0
li $v0,1
syscall
li $v0,10
syscall
.text
格洛博梅因酒店
主要内容:
ori$s0,0x00000007#设定值股息
ori$s1,0x00000002#集值除数
ori$v0,0x00000000#集值商
ori$v1,0x00000000#设定值再订购
ori$t2,0x00000000#设置值计数
开始:
sub$v1、$v1、$s1#从余数寄存器中减去除数寄存器,并将结果放入余数寄存器
slt$t1、$v1、$0#余数<0跳转到循环2b
beqz$t1,循环2a#否则跳到循环2a
j.2b
loop2a:
#将商寄存器向左移位,将最右边的新位设置为1
sll$v0,$v0,1
addi$v0,$v0,1
srl$s0,$s0,1
添加$t2,$t2,1#将计数增加到1
slti$t1、$t2,33#如果计数<33次重复,则继续开始其他重复
beqz$t1,完成
j开始
loop2b:
#通过将除数寄存器添加到余数寄存器并将总和放入
#余数寄存器。同时将商寄存器向左移位,将新的最低有效位设置为0。
添加$v1、$s0、$v1
sll$v0,$v0,1
addi$v0,$v0,0
添加$t2,$t2,1#将计数增加到1
slti$t1、$t2,33#如果计数<33次重复,则继续开始其他重复
beqz$t1,完成
j开始
完成:
#显示结果
addi$a0,$v0,0
李$v0,1
系统调用
addi$a0,$v1,0
李$v0,1
系统调用
李$v0,10
系统调用

您试图做什么-向我们展示您的代码?对不起,我在发布时出错了