Отображение памяти кода сборки 68000

Мне нужна помощь в этом вопросе. Мне нужно нарисовать карту памяти, и у меня есть

вот код

ORG $6080;  
CAT EQU 5;  
DOG DC.L CAT;  
Hourse EQU 1;

Я не получаю после линии ORG, может кто-нибудь сказать, как я могу нарисовать карту памяти

2 ответа

Решение

Это моя попытка понять, чего хочет ваш лектор. Их выбор кода sudo интересен.

ORG, вероятно, ссылается на число, хотя это может быть адрес памяти.

CAT тогда, вероятно, является переменной в регистре. EQU говорит, что CAT равен 5.

DOG также, вероятно, является переменной в регистре. Абсолютная дальняя адресация используется, чтобы сказать, чему равен СОБАКА. Другими словами, DOG равен DC.L с индексом 5.

Hourse - это еще одна переменная в регистре, и она равна 1.

Теперь таблица может быть создана (карта памяти), куда мы идем

Variable | Value | Address

ORG          1       ?
CAT          5       ?
DOG          ?     DC.L indexed by 5
Hourse       1       ?

Вы можете определить, в каких ячейках памяти они находятся, в разделе данных сборки. Затем вы можете заполнить адресные вопросительные знаки. Фактическое сохраненное значение является произвольным, но только включено для контекста.

Давайте разберемся с этим:

ORG $6080; // Defines the start of data/code
CAT EQU 5;  // Defines a constant with value 5, does not allocate any memory
DOG DC.L CAT;  // Defines a 32bit variable in memory, sets value to CAT (5)
Hourse EQU 1;  // Defines a constant with value 1, does not allocate any memory

Итак, теперь, когда вы знаете начало блока и что помещено в память, а что нет, вы можете нарисовать карту памяти этого блока. Он будет содержать одно 32-битное значение.

Другие вопросы по тегам