2

どのようにchar配列を作成し、MIPSでそれらのcharにアクセスしますか?私はプロジェクトをやっていて、その一部はこれをすることです。私は整数の扱い方を理解しており、文字だけを扱う方法についてオンラインで参照を見つけることができません。具体的には、移植しようとしています...

static char   hexdigits[16] = "0123456789ABCDEF";

これが私の失敗した試みです:

hexarray: .word '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' #declare memory space for our hex array

編集:誰かがこれらのアイテムの1つを印刷する方法の例を提供できれば、それは非常に役立ちます(私が持っているコードを好きなように変更できます)。メモリアドレスエラーが発生しただけです。

4

1 に答える 1

14
static char   hexdigits[16] = "0123456789ABCDEF";

次のように翻訳できます。

.data
hexdigits: .byte '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'

または

.data
hexdigits: .ascii "0123456789ABCDEF"

を使用して要素にアクセスできます

la    $t0, hexdigits
lb    $t1, 0($t0)        # $t1 = hexdigits[0]
lb    $t2, 1($t0)        # $t2 = hexdigits[1]

システムコールを使用して要素を印刷できます (シミュレーターがサポートしている場合。ほとんどの場合)。

la    $t0, hexdigits          # address of the first element
lb    $a0, 10($t0)            # hexdigits[10] (which is 'A')
li    $v0, 11                 # I will assume syscall 11 is printchar (most simulators support it)
syscall                       # issue a system call
于 2012-04-05T05:24:40.197 に答える