我试图弄清楚这个程序是做什么的,但我有一种感觉,MARS没有正确地处理.data指令。
如果在.data指令下给出汇编指令,那么数据段中存储的内容是什么?当我在MARS (MIPS汇编器和运行时模拟器)中运行它时,它只是在0x10010000 (应该存储静态数据的地方)存储一个零值。我期望它存储lui $r1, 0xFFC0
的机器码(即0011110000001001111111111111000000)。
.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
谢谢!
发布于 2011-05-31 23:49:56
在$r1
中,MIPS不是有效的寄存器名称。将指令更改为lui $1,0xffc0
或lui $t1,0xffc0
会导致机器代码存储在.data
部分中。
https://stackoverflow.com/questions/6117955
复制相似问题