0

助けてください、コンピューターの組織と設計書のアルゴリズムに従って 2 符号整数を分割するコード mips を書きましたが、結果は期待どおりではありませんでした。何が間違っているのかわからない:

.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
4

0 に答える 0