数据指令中的 MIPS 指令

发布于 2024-11-09 16:14:35 字数 443 浏览 6 评论 0原文

我试图弄清楚这个程序的作用,但我有一种感觉 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独木成林 2024-11-16 16:14:35

$r1 不是 MIPS 中的有效寄存器名称。将指令更改为 lui $1,0xffc0lui $t1,0xffc0 会导致机器代码存储在 .data 部分中。

$r1 is not a valid register name in MIPS. Changing the instruction to lui $1,0xffc0 or lui $t1,0xffc0 causes the machine code to be stored in the .data section.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文