このプログラムが何をするのかを理解しようとしていますが、MARS が .data ディレクティブを正しく処理していないように感じます。
.data ディレクティブでアセンブリ命令を指定した場合、データ セグメントには何が格納されますか? これを MARS (MIPS アセンブラーおよびランタイム シミュレーター) で実行すると、値 0 が 0x10010000 (静的データが格納される場所) に格納されるだけです。lui $r1, 0xFFC0
(つまり、0011110000001001111111111000000)のマシン コードを格納することを期待していました。
.data
info: lui $r1, 0xFFC0
.text
.globl main
main:
la $s1, info
lw $a0, 0($s1)
jal process
sb $v0, 4($s1)
process:
lui $t1, 0xFFC0
and $v0, $a0, $t1
srl $v0,$v0,26
jr $ra
ありがとう!