0

このプログラムが何をするのかを理解しようとしていますが、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

ありがとう!

4

1 に答える 1

1

$r1は MIPS で有効なレジスタ名ではありません。命令をlui $1,0xffc0orに変更すると、セクションlui $t1,0xffc0にマシン コードが格納され.dataます。

于 2011-05-31T23:49:56.157 に答える