Как правильно сохранить это значение байта в памяти? - PullRequest
0 голосов
/ 16 апреля 2020

Я пишу простую циклическую программу в MIPS для класса, но не могу заставить работать инструкцию "sb". Я запустил несколько тестов (вывод показан ниже), который показывает, что регистр, из которого я сохраняю, содержит свое предполагаемое значение, но после «sb» метка, представляющая его местоположение в памяти («fahr1»), не имеет. Программа собирается и выполняется так, как задумано, за исключением этой проблемы.

Целочисленное значение в "$ t1" получено из родительской функции от пользователя и правильно инициализировано, что подтверждается приведенными ниже результатами теста.

Все приведенные ниже фрагменты кода и выходных данных (за исключением, конечно, раздела ".data") принадлежат одной и той же ветви.

Строка команды "sb":

sb $t1, fahr1 

Выходные данные тестов:

VALUE OF $t1: 45
VALUE OF fahr1 AFTER 'sb $t1, fahr1' HAS EXECUTED: 0
VALUE OF $t0 AFTER 'lb $t0, fahr1' HAS EXECUTED: 0
DECIMAL ADDRESS IN MEMORY OF fahr1: 268501390

Соответствующие .data:

.data
fahr1: .byte

Я работаю в MARS Mips и не могу найти в сегменте .data после выполнения любой адрес в ячейке памяти "268501390" (шестнадцатеричный "100100C1"). Любые предложения о том, как исправить этот или альтернативные способы хранения и извлечения целых чисел без знака из памяти?

(PS Я храню как «байт» вместо «слова», так как для «байт» я не должны усложнять вопросы выравниванием или смещением; по крайней мере, я так не думаю).

...