Общая структура микропроцессорной системы. Развитие фон-Неймовской архитектуры. Микроконтроллеры средней серии Microchip. Программирование микроконтроллеров Microchip средней серии, страница 2

10.Обслуживание прерывания в режиме остановки

Система команд

Способы адресации:

Условно команда состоит из двух частей: подкоманды и сведениях об операнде. Эти сведения могут разными способами указывать П как обратиться к ячейке памяти или регистру

1.  Регистровая адресация

Адрес (имя) регистра указано в коде команды

MOV B, C

Пересылка из регистра С в регистр В

2.  Прямая адресация

В ходе команды указан адрес ячейки памяти, которая является источником или приемником информации

LDA 8000

Записывает в аккумулятор число из ячейки памяти 8000

3.  Непосредственная адресация

Операнд находится в коде команды

LXI B, 8000

4.  Косвенная адресация

В ходе команды указанная регистровая пара (или ячейка памяти), в которой находится адрес операнда

LDAX B

Способы адресации, присутствующие в других платформах:

5.  Относительная адресация.

В ходе команды указан адрес, который является смещением относительно текущего адреса:

GOTO 100 – передача управления на сотый адрес

BRA 100 – передача управления на сто ячеек за текущим адресом

Может быть указано смещение относительно некоторого базового адреса

Классификация команд

1.  По длине: однобайтные, двухбайтные, трехбайтные и т. д.

2.  По адресу: безадресные, одноадресные, двухадресные и т. д.

Шитье команд

Для платформы Intel 8080

1.  Команды пересылки данных

2.  Арифметические и логические команды

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

4.  Управляющие команды

Команды пересылки данных

В качестве операндов могут быть использованы имена A, B, C, D, E, H, L при регистровой адресации. Двухбайтные адреса ячеек памяти при прямой адресации, причем вначале имеется старший байт, а потом младший. Одно- или двухбайтные данные у команд с непосредственной адресацией.

Если для косвенной адресации, как указатели используются регистровые пары ВС, DE, то это будет явно видно в ходе команды. Если используется регистровая пара HL, то команда будет выглядеть как команда с регистровой адресацией, только вместо имени регистра будет стоять буква М.

1.) MOV < A, … , M >, <A, … , M> – перемещение из одного регистра в другой

2.) MVI < A, … , M >, <число> – пересылка непосредственного операнда в регистр

3.) LXI <B, D, H>, <2-x байтное число > – записывает в регистровую пару HL число

4.) LDAX <B, D> – из ячейки, командный адрес которой находится в паре ВС или DE, число переносится в аккумулятор

5.) STAX <B, D> – перемещение из аккумулятора в пары ВС или DE

6.) LDA <адрес> – число указанное во втором и третьем байтах команды, извлекается из памяти во второй и третий байт адреса

7.) SDA <адрес> – из байтов адреса перемещается в байты команды

8.) LHLD <адрес> – содержимое двух ячеек памяти по указанному адресу переносятся в регистровую пару HL

9.) SHLD <адрес> – содержимое регистровой пары HL переносится  в две ячейки памяти

10.) XCHC – обмен между HL и DE

Арифметические и логические команды

Арифметические и логические команды одноадресные. Если в операциях участвуют два операнда, то один из них находится в аккумуляторе и результат также помещается в регистр А. Основные логические операции – инкримент и декримент.

1.)  ADD <A, … , M> – сложение

2.)  ADC <A, … , M> – сложение с переносом

3.)  SUB <A, … , M> – сложение с вычитанием

4.)  SBB <A, … , M> – сложение с займом

5.)  INR <A, … , M> – инкримент (увеличение на единицу)

6.)  DCR <A, … , M> – декримент (уменьшение на единицу)

7.)  INX <B, D, H>

8.)  DCH < B, D, H >

9.)  DAD <B, D, H, SP> – двойное сложение. К регисторной паре HL прибавляют содержимое другой регистровой пары

10.) ANA <A, … , M> – поразрядное логическое умножение

11.) ORA <A, … , M> – поразрядное логическое сложение

12.) XRA <A, … , M> –исключающее «ИЛИ»