0

MIPS レジスタの符号なし整数値を ASCII テキストとしてコンソールに出力しようとしています。

つまり、$a0 に「0x4ab3c823」が含まれているとしましょう。xSPIM のコンソールに「4ab3c823」を出力したい。

これが私の試みです。ASCII ではなく、10 進数値を取得し続けます。プログラム全体の一部を切り取っただけなので、残りは切り取ってあります。

.data
printspace:   .space 8
.text
printHex:
    move    $t0,$a0
    la      $a0,printspace  #Save address of 8 blank bytes to $a0
    sw      $t0,0($a0)      #Copys the integer I want to print to $a0's address in memory
    li      $v0 1
    syscall

    jr      $ra
4

2 に答える 2

1

ASCII出力は他の文字で出力されるため、16進出力が必要だと思います。

SPIMには16進出力があるとは思わない。つまり、文字ごとに印刷する必要があります。これには、一度に $a0 を 4 ビット取得し、定数を追加して (それが 0 ~ 9 または AF の間であるかどうかに応じて)、印刷可能な ASCII 文字に変換する必要があります。

MARS シミュレーターでli $v0 34は、16 進数で出力されます。

于 2014-10-05T03:20:23.257 に答える