Программная модель 32-разрядного микропроцессора фирмы Motorola

         

Команды LEA и PEA


Команда LEA (load effective address) перемещает адрес операнда-источника (а не его содержимое) в адресный регистр - приёмник. Следовательно, команда

MOVEA.L  #OPER,A1

эквивалентна команде

LEA            OPER,A1

Команда PEA (push effective address) записывает адрес операнда-источника в стек системы. Эта команда обычно используется для передачи адресов параметра в подпрограмму через стек. Операндами-источниками для обеих команд LEA и PEA должны быть операнды памяти.

В качестве некоторой иллюстрации к описанным командам, предположим, что мы хотим записать несложную последовательность команд, которая будет перемещать 4 длинных слова из массива ABC в начало массива XYZ. Простая последовательность, выполняющая это, следующая:

MOVE.L     ABC,XYZ

MOVE.L     ABC+4,XYZ+4

MOVE.L     ABC+8,XYZ+8

MOVE.L     ABC+12,XYZ+12

Те же действия могут быть выполнены двумя командами:

MOVEM     ABC,D0-D3

MOVEM     D0-D3,XYZ



Ещё один способ иллюстрируется следующей последовательностью команд:

MOVEA.L  #ABC,A1

MOVEA.L  #XYZ,A2

MOVE.L     (A1)+,(A2)+

MOVE.L     (A1)+,(A2)+

MOVE.L     (A1)+,(A2)+

MOVE.L     (A1)+,(A2)+

В этом способе, использующем постинкрементный способ адресации, одна и та же команда MOVE.L повторяется для перемещения последующих элементов. Следовательно, эта последовательность команд может быть легче преобразована в итерационный цикл для перемещения большого числа элементов между двумя массивами.

Результатом проектирования является программная модель, наиболее точно реализующая все вышеперечисленные особенности микропроцессора MC 68300. Особое внимание уделено способам адресации, в частности программная модель реализует 14 способов адресации предусмотренных в микропроцессоре, возможности ввода данных в различных системах счисления, в частности в системах по основанию 2, 10, 16. Общую структуру программы для наглядности можно представить на рисунке 2:

 


 Ввод

данных

Рисунок 2 – Общая структура программы.


 Модуль интерпретатора реализует следующие функции:

-         проверку  на наличие ошибок в синтаксисе команд, введённых пользователем,

-         приведение всех операндов к системе счисления с основанием 16,

-         возможность просмотра эффективного адреса операндов (ЕА);

-         приведение всех команд к форме, понятной обработчику.

Модуль обработки команд, по желанию пользователя может осуществлять как выполнение всей программы, так и её пошаговую трассировку и осуществляет выполнение команд в соответствии с их мнемокодом.

После обработки команд, у пользователя есть возможность просмотра результата их выполнения, т.е. активным становится модуль интерфейса.




Содержание раздела