Come da titolo, stavo provando a svolgere questo esercizio; mi sono bloccato sulla stampa dell'ultimo bit dopo la divisione...
Il codice in pratica mi stampa solo i primi tre bit (se ad esempio voglio convertire il n.10) e poi ovviamente devo capire come scrivere il numero in base due al contrario
Grazie
# Scrivere un programma che, preso un numero decimale da tastiera,
# ne stampi la rappresentazione in base 2 e in base 16.
.data
title: .asciz "\n *** CONVERSIONE NUMERO DECIMALE ***\n"
base_two: .asciz "\n *** IN BASE 2 ***"
base_exa: .asciz "\n *** IN BASE 16 ***"
in_num: .asciz " Digita un numero: "
out_num2: .asciz " Rappresentazione in base 2 --> "
msg_rest: .asciz "\n Il resto è: "
.text
.globl _main
_main:
la a0, title
li a7, 4
ecall
li t2, 2
li t3, 1
la a0, in_num
li a7, 4
ecall
li a7, 5
ecall
mv t0, a0
loop:
beq t3, t0, end
rem t1, t0, t2 # Considero il resto della divisione
div t0, t0, t2 # Considero il quoziente
# Test per il resto
la a0, msg_rest
li a7, 4
ecall
mv a0, t1
li a7, 1
ecall
j loop
end:
# Fine del programma #
li a7, 10
ecall