Курс лекций - Микропроцессоры


Описание машинных команд


ACALL <addr 11> - абсолютный вызов подпрограммы.

Описание: вызывает подпрограмму, размещенную по указанному адресу <addr 11>. Команда увеличивает содержимое счетчика команд на 2 и затем помещает полученный результат в стек (младший байт первым). После это содержимое указателя стека SP увеличивается на 2. Т.к. в команде используется 11-разрядный адрес, полученный соединением пяти старших бит счетчика команд и второго байта команды, то подпрограмма должна начинаться в пределах той же 2K-байтной страницы. Команда не воздействует на флаги.

Количество байт: 2
Количество циклов: 2
Действие команды
:
(PC) = (PC) + 2
(SP) = (SP) + 1
((SP)) = (PC7-0)
(SP) = (SP) + 1
((SP)) = (PC15-8)
(PC10-0) = адрес подпрограммы (метки)
Машинный код:

a10 a9 a8 1 0 0 0 1 a7 a6 a5 a4 a3 a2 a1 a0

Пример:

адрес команда исходный текст 1000 7111 ACALL 311h

Действие команды:

до команды после команды PC=1000 PC=0311 *SP=35 *SP=1002

ADD A, <байт-источник> - сложение.

Описание: складывает содержимое аккумулятора А с содержимым байта- источника. Результат операции помещается в аккумулятор. Флаг переноса C устанавливается при переносе из 7го разряда. Флаг вспомогательного переноса AC устанавливается при переносе из 3го разряда. При сложении знаковых чисел флаг переполнения OV устанавливается при превышении максимального положительного числа или при получении числа меньшего минимально возможного.

Для команды сложения разрешены следующие режимы адресации:

1) Первый операнд - , второй операнд - ;

Количество байт: 1
Количество циклов: 1
Действие команды
:
(PC) = (PC) + 1
(A) = (A) + (Rn) , n=0,1,2,3,4,5,6,7
Машинный код:

0 0 1 0 1 r r r

Пример:

адрес команда исходный текст 0000 2F ADD A, R7

Действие команды:

до команды после команды PC=0000 PC=0001 A=35 A=7A R7=46 R7=46 C=0 C=0

2) Первый операнд - , второй операнд - ;

Количество байт: 1
Количество циклов: 1
Действие команды
:
(PC) = (PC) + 1
(A) = (A) + ((Ri)) , i=0,1
Машинный код:

0 0 1 0 0 1 1 i

Пример:




- Начало -    - Вперед -