Mips, шестнадцатеричное в двоичное преобразование - PullRequest
0 голосов
/ 15 ноября 2018

Я пытался выполнить какое-то преобразование в сборке 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 ветвей помещают правильные двоичные значения в регистр, затем после завершения цикла я распечатываю регистр, и преобразование завершается.Это правильная реализация?Какой код мне понадобится, чтобы на самом деле сделать это?Могу ли я преобразовать двоичный код в гекс через тот же процесс?Спасибо!

...