0

私は mips のプロジェクトを持っており、その 10 進数から 2 進数への変換についてコードを書くことができ、それは正常に動作しましたが、ご存知のように、紙の上で 10 進数から 2 進数への変換を行うとき、結果を逆に書きます。これが重要なポイントです。通常の順序で 1 と 0 を書き込みますが、画面に表示されるだけなので、逆にするコマンドを出すことはできません。

変数を配列に格納して逆にするか、スタックを使用する必要がある場合は、どうすれば元に戻すことができますか?私の知識は非常に低く(コードからわかるように)、私はそれで立ち往生しています.助けてください.

.data
ms1_msg:.asciiz "Enter The Number:"
.text
.globl main
main:

la $a0,ms1_msg    
li $v0,4
syscall

li $v0,5          #user enters number and it is stored in t0
syscall
move $t0,$v0


addi $t1,$zero,1  #t1=1
addi $t2,$zero,2  #t2=2
add $t5,$zero,1   #t5=1
add $t8,$zero,$zero 

add $t6,$zero,$t0  #t6=1

loop1:            #trying to find the counter for loop 2

addi $t5,$t5,1    
div $t0,$t2       
mflo $t4          
beq $t4,$t1,loop2 
sub $t0,$t0,$t0   
add $t0,$t4,$t0
j loop1           

s

loop2:            #twith using the counter (t5) I define how many times loop should circle. 

    addi $t9,$t9,1    
    div $t6,$t2       
    mfhi $t7          
    mflo $t8          
    move $a0, $t7     
    li $v0, 1
    syscall
    beq $t9,$t5,exit
    sub $t6,$t6,$t6   
    add $t6,$t8,$t6 
    j loop2           

    exit:                                      
    li $v0,10       
    syscall
4

1 に答える 1