あなたは...「SW」=ストア・ワードを行うことによって、のようなものワード(32ビット)を挿入することができます:あなたは全体の数8を保存したくない場合は
number: .word 8 # your number is 8
space: .space 20 # adress to save your number
la $t3, number # loading the adress of your number 8
lw $t3, 0($t3) # NOTICE that with 'lw' you are taking your WHOLE WORD = number 8
la $s1, space
sw $t3, 0($s1) # where $t3 is your number and $s1 the adress you want to save it
を、しかし、別の保存あなたの数字のバイト...あなたは$ s1の別のアドレスでそれを行うことができます。以下のような
何か:
sb $t3, 0($s1) # you are storing the byte'00001000' in the 1st adress of $s1
addi $s1, $s1, 1 # adding 1 to the adress where you want to save your next byte
srl $t3, $t3, 3 # moving your number 8 (in binary) to the right... so you can
# 'sb' = store byte (a different one) again in $s1
あなたは明確にできますか? 'sb $ t0、HEXARRAY($ t1)'は動作しません。 –
sbは1バイトを意味するバイトのみを格納し、整数は4バイトです。どのようにして1バイト(127と-128の間)しか必要としない、この1バイトに4バイトを収めることができますか? – JAngara
ビットはバイト)は測定単位です。 4バイトを1バイトに合わせることは、4リットルの水を1リットルの水に入れるように求めることと同じです。あなたはそれを投げ捨てることなくそれをすることはできません。それはあなたの質問と同じです。それが私が説明を求めた理由です。 'sb'は最下位バイトだけを格納します(他の3バイトを投げ捨てます)。したがって、' $ t0'の可能な数値が0-255または-128-127(1バイトしか必要としない範囲)の場合、 'sb'を問題なく使用できます。そうでない場合、あなたは "水"を捨てるように指示する必要があります。 –