- •Понятие о мнемонике команды
- •Методы адресации учебного микропроцессора
- •Особенности команд учебного микропроцессора Команды пересылки кодов
- •Команды арифметико–логической обработки
- •Команды передачи управления
- •Стековая память и работа с ней
- •Команды управления микропроцессором
- •Влияние команды на регистр признаков
- •Машинные такты.
- •Практическое задание.
- •Форма отчета.
Команды передачи управления
Команды передачи управления нарушают естественный порядок выборки и исполнения команд, перезагружая новым значением счетчик команд PC. Простейшей здесь является трехбайтовая команда безусловной передачи управления JMP ADR. При выполнении этой команды в счетчик команд PC загружается адрес перехода ADR. Следующая команда выбираться из ячейки с этим новым адресом.
Широко используются команды условной передачи управления, которые можно записать обобщенной мнемоникой J — CON ADR. Эти команды передают управление по адресу перехода, если выполняется условие — CON, определяемое одним из битов регистра признаков F. В противном случае естественный порядок выполнения команд не нарушается. В мнемониках конкретных команд суффикс — CON принимает следующие значения:
При работе с подпрограммами используют команду безусловной передачи управления с возвратом CALL ADR – вызвать подпрограмму. В памяти микро-ЭВМ эта команда размещается так, как показано на рис.1.2.
Рис.1.2.Размещение в памяти микро-ЭВМ команды CALL ADR
Микропроцессор,
выполняя эту команду, не только передает
управление по адресу ADR,
указанному в команде. Он, кроме того,
запоминает в стеке адрес следующей
команды
.
Этот адрес называют адресом возврата.
После выполнения подпрограммы должен
быть обеспечен возврат управления на
адрес
.
Для обеспечения такого возврата каждая
подпрограмма заканчивается специальной
командой возврата RET.
Эта команда извлекает из стека адрес
возврата
,
записанный туда командой CALL
ADR,
и загружает его в счетчик команд PC.
При
обработке прерываний программы,
возникающих по запросам внешних
устройств, часто используется однобайтовый
аналог команды CALL
ADR —
команда рестартаRST
X.
По этой команде в стек записывается
адрес возврата
,
а управление передается по фиксированным
адресам, кодированным числом X цифровой
части мнемоники.
Имеются также команды условного вызова подпрограмм и возврата из них, имеющие обобщенные мнемоники C — CON АDR и R — CON. Вызов подпрограммы или возврат из нее осуществляется этими командами только, если выполняется условие —CON. Здесь используются такие же условия, как и в командах условной передачи управления.
Иногда нужно передать управление по адресу, полученному в ходе вычислительного процесса. В этих случаях используется команда PCHL.Она загружает в счетчик команд PC код, находящийся в регистровой паре HL. При этом управление передается по адресу, находящемуся в этой регистровой паре.
Стековая память и работа с ней
Учебный микропроцессор позволяет организовать в ОЗУ микро–ЭВМ стековую память или просто стек. В такой памяти формируется своеобразная очередь из записанных кодов, а процедура обмена кодами с микропроцессором строится по принципу – «последний вошел – первый вышел» (LIFO).
Наглядной моделью стековой памяти является ящик с положенной в него стопкой книг (рис.1.3).
Книги здесь изображают хранимые в стеке цифровые коды. Понятно, что книга, положенная в ящик последней («последний вошел») окажется наверху стопки. Поэтому именно она будет извлечена из ящика первой (“первый вышел”).
Запись в стек и чтение из стека не требует указания в команде адреса записываемой или читаемой информации. Важно лишь строго соблюдать очередность записи и чтения. Стек учебного микропроцессора работает с двухбайтовыми (шестнадцатиразрядными) кодами.
Рис.1.3. Модель стековой памяти
Микропроцессор размещает (считывает) такие коды в последовательных ячейках некоторой области ОЗУ, используя косвенную адресацию с помощью регистра SP – указателя вершины стека (указателя стека). Этот указатель содержит адрес (указывает на адрес) младшего байта самого последнего, самого верхнего из записанных в стек чисел.
Структура стека, в который ранее были записаны два числа A1 и A2, представлена на рис.1.4. Будем рассматривать это состояние стека как исходное.
Рис.1.4. Исходное состояние стека
При записи в стек, например, при выполнении команды CALL ADR, число А3 записывается в две свободные ячейки ОЗУ, находящиеся выше указателя, при этом указатель передвигается на новую вершину – на адрес младшего байта только что записанного числа. Новое состояние стека после записи числа А3 изображено на рис.1.5.
При чтении из стека, например, командой RET из стека извлекается самое последнее, самое верхнее из записанных в стек чисел. При этом указатель стека передвигается на две позиции вниз – на адрес младшего байта числа, записанного в стек перед извлеченным. Следует иметь ввиду, что только что извлеченное число все еще сохраняется в своих ячейках ОЗУ до момента записи в эти ячейки. После извлечения из стека числа А3 диаграмма стека принимает вид, показанный на рис.1.6.
Рис.1.5.Состояние стека после записи числа А3
Рис.1.6.Состояние стека после чтения числа А3
В момент включения микропроцессора все его регистры, том числе и указатель стека SP содержат произвольные коды. Поэтому для правильной работы стека его необходимо настроить на вполне определенную область ОЗУ (инициализировать).
Инициализация проводится командой непосредственной загрузки регистра SP LXI SP,D16.
Кроме рассмотренных команд вызова подпрограмм и возврата из них со стеком работают команды однобайтового формата PUSH Rp – записать в стек содержимое регистровой пары Rp и POP Rp – восстановить из стека содержимое регистровой пары Rp.
.
