Я пытался выполнить какое-то преобразование в сборке mips, чтобы попытаться преобразовать шестнадцатеричные числа в двоичные, но я не уверен, как бы это реализовать.Вот фрагмент моего кода, который имеет отношение к преобразованию
.data
operand: .asciiz "\nEnter correct value to be converted: "
result: .asciiz "\nYour result is: "
hexstore: .space 8
.globl main
.text
main:
li $v0, 4 #display welcome message
la $a0, welcome
syscall
li $v0, 5 #get int for type of operation
syscall
move $t0, $v0 #store result in t0, now compare t0 to t1 in order to get a branching result
addi $t1, $zero, 0 #set t1 to 0
addi $t1, $t1, 1 #set t1 to 1
beq $t0, $t1, hexatobinary #jump to hextobinary if t0 is 1
hexatobinary:
la $a0, operand #prompt for input
li $v0, 4
syscall
li $v0, 5 #integer input
syscall
add $t0, $v0, $zero #Move to t0
addi $t1, $zero, 0
sw $t0, hexstore($t1)
Так что в значительной степени мой мыслительный процесс состоит в том, чтобы сохранить введенное пользователем шестнадцатеричное значение, а затем попытаться прочитать один бит за раз в цикле for и через16 ветвей помещают правильные двоичные значения в регистр, затем после завершения цикла я распечатываю регистр, и преобразование завершается.Это правильная реализация?Какой код мне понадобится, чтобы на самом деле сделать это?Могу ли я преобразовать двоичный код в гекс через тот же процесс?Спасибо!