Я пишу простую циклическую программу в 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 Я храню как «байт» вместо «слова», так как для «байт» я не должны усложнять вопросы выравниванием или смещением; по крайней мере, я так не думаю).