Инструкция MIPS в директиве о данных - PullRequest
0 голосов
/ 25 мая 2011

Я пытаюсь выяснить, что делает эта программа, но у меня ощущение, что 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

Спасибо!

1 Ответ

1 голос
/ 01 июня 2011

$r1 не является действительным именем регистра в MIPS.При изменении инструкции на lui $1,0xffc0 или lui $t1,0xffc0 машинный код сохраняется в разделе .data.

...