Микропроцессоры. Особенности архитектуры. Понятие о состоянии процессора (программы). Вектор слова состояния. Принципы организации системы прерываний, страница 5

Команды регистровой адресации очень эффективны, т.к. занимают только один байт памяти в программе. Они быстро выполнимы, т.к. не требуют обращения к памяти, поскольку оба операнда являются содержимым внутренних регистров. Это обстоятельство явилось одним из основных, определивших появление RISC – процессоров (процессоров с сокращенным набором команд). 

Непосредственная адресация.  В командах с такой адресацией данные непосредственно задаются в коде команды  за кодом операции.

Команда MVI R data. Конкретно – MVI C 08H. Записать число 08H в регистр C. Формат команды:

Неявная адресация. Один из операндов задается неявно, информация о нем содержится в коде операции. Команда ADD B. Сложить содержимое аккумулятора с содержимым регистра В. Один операнд находится в регистре В, второй – в аккумуляторе. В команде аккумулятор не указывается, считается, что он задан неявно.

Прямая адресация. Команды прямой адресации имеют 3-байтный формат. В первом байте указывается код операции. Во втором и третьем байтах – адрес операнда.

Команда LDA addr. Загрузить прямо в аккумулятор операнд, адрес которого задан во втором и третьем байтах.

Конкретно: LDA 0800H. Загрузить прямо в аккумулятор операнд, который находится в памяти по адресу 0850H.  

                     

Косвенная адресация. Команды с такой адресацией обращаются в память по адресу, который в момент выполнения этой команды хранится в регистровой паре H,L.

Команда MOV M,R. Переслать содержимое регистра R в ячейку памяти М, адрес которой записан в регистровой паре H,L. Пара H,L  называется регистром косвенного адреса.

Информационный обмен при выполнении команд различных типов

Однобайтные команды.

MOV R1, R2. Конкретно MOV B,C. Пусть команда расположена в памяти по адресу 0900Н. Машинный код команды – 41Н.

Алгоритм выполнения команды имеет вид:

Пересылка происходит    по внутренней шине данных.

Команда MOV M, R. Конкретно MOV M,A  Передача информации из аккумулятора в ячейку памяти М. Команда с косвенной адресацией. В момент выполнения этой команды адрес ячейки М хранится в регистровой паре H,L.     Адрес команды 0800Н. Адрес ячейки 0950Н. Машинный код команды – 77Н.

Двухбайтные команды.

Команда MVI R, data. Конкретно MVI B, 08Н.

Команда занимает в памяти два соседних байта. Начальный адрес – 0700Н. Машинный код команды – 06Н.

Команда MVI M data. Конкретно MVI M 0ЕН. Записать в ячейку памяти, адрес которой хранится в паре (H,L), число 0ЕН. Команда занимает в памяти два байта. Начальный адрес команды 0700Н. Машинный код – 36Н. Адрес ячейки М – 0950Н.

Трехбайтные команды.

Команда LXI rp data. Конкретно LXI D 0900H. Занести в регистровую пару DE адрес 0900Н. Команда занимает в памяти три байта. Начальный адрес команды 0800Н. Машинный код – 11Н.

Команда LDA addr. Конкретно LDA 0750Н. Переслать содержимое аккумулятора в ячейку с адресом 0750Н. Команда занимает в памяти три байта. Начальный адрес команды 0900Н. Машинный код – 3АН

Команды передачи управления

Команда безусловного перехода JMPaddr. Обеспечивает переход по адресу, указанному во 2-м и 3-м байтах.

Команда условного перехода. J cond addr. Обеспечивает переход по адресу, указанному во 2-м и 3- байтах при выполнении  условия cond. При невыполнении условия выполняется следующая по порядку команда.

Привести графические иллюстрации.

Команда вызова подпрограммы Calladdr.

Подпрограмма – часть программы, которая может повторяться многократно с разными исходными данными. При выполнении этой команды адрес возврата в основную программу заносится в стек. В конце подпрограммы ставится команда  RET.  Команда безадресная. Адрес возврата хранится в стеке. Команда возвращает в основную программу на команду, непосредственно следующую за командой  CALL.

Дать графическую иллюстрацию.

Далее – типы программ: линейные, разветвляющиеся, циклические.

Дать варианты организации счетчика циклов.

Принципы организации системы прерываний