数据指令中的 MIPS 指令
我试图弄清楚这个程序的作用,但我有一种感觉 MARS 没有正确处理 .data 指令。
如果在 .data 伪指令下给出汇编指令,数据段中存储什么?当我在 MARS(MIPS 汇编器和运行时模拟器)中运行它时,它只是在 0x10010000(应存储静态数据的位置)处存储零值。我期望它存储 lui $r1, 0xFFC0
的机器代码(即 00111100000010011111111111000000)。
.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
谢谢!
I'm trying to figure out what this program does, but I have a feeling MARS isn't handling the .data directive correctly.
What is stored in the data segment if an assembly instruction is given under the .data directive? When I run this in MARS (MIPS assembler and runtime simulator) it simply stores a value of zero at 0x10010000 (where static data should be stored). I was expecting it to store the machine code for lui $r1, 0xFFC0
(i.e. 00111100000010011111111111000000).
.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
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$r1
不是 MIPS 中的有效寄存器名称。将指令更改为lui $1,0xffc0
或lui $t1,0xffc0
会导致机器代码存储在.data
部分中。$r1
is not a valid register name in MIPS. Changing the instruction tolui $1,0xffc0
orlui $t1,0xffc0
causes the machine code to be stored in the.data
section.