Команды микропроцессора КР580ИК80 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команды микропроцессора КР580ИК80



 

Система команд микропроцессора содержит 78 команд, включающих в себя 111 операций. Команды микропроцессора могут быть 1, 2 или 3-х байтные. Рассмотрим их структуру.

Однобайтные команды занимают в памяти 1 байт, в котором содержится операция.

 

1 байт КОП Код операции

 

Двухбайтные команды занимают 2 байта памяти и содержат в первом байте код операции, а во втором - операнд.

 

1 байт КОП Код операции
2 байт ОП 1 Операнд

 

Трехбайтные команды в первом байте содержат код операции, а во втором и третьем байтах - операнды.

 

1 байт КОП Код операции
2 байт ОП1 1 Операнд
3 байт ОП2 2 Операнд

 

Программа для ЭВМ представляет собой последовательность команд. Прикладные программы располагаются в ОЗУ ЭВМ. Программа расположенная в ОЗУ ЭВМ и выглядит как показано:

  

Адрес (Адрес ячейки памяти в ОЗУ) Данные (содержимое ячеек памяти)
0800 КОП
0801 КОП
0802 ОП1
0803 КОП
0804 КОП
0805 ОП1
0806 ОП2
0807 КОП

 

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

В микропроцессоре КР580ИК80А используется 5 способов адресации операндов:

 1. Прямая: адрес ячейки памяти, где расположен операнд, указывается во втором и третьем байтах команд, причем во втором байте команды содержится младший байт адреса операнда, а в третьем — старший.

2. Регистровая: в команде задается адрес оперативного регистра или пары регистров, где находится 8-ми и 16-ти разрядный операнд.

3. Регистровая косвенная: адрес М ячейки памяти, где расположен операнд, определяется содержимым парного регистра, явно или нет указанного в команде. При этом старший байт находится в первом регистре пары, а младший — во втором.

4. Непосредственная: операнд содержится в команде. Для двухбайтовых команд: во втором байте, для трехбайтовых команд - во втором и третьем, причем во втором младшая часть операнда, в третьем - старшая.

5. Стековая - адрес ячейки памяти, где расположен операнд, находится в указателе стека SP.

По функциональному признаку все команды делятся на пять групп:

1. группа команд передачи данных, осуществляющих передачу информации между регистрами (11 команд);

2. группа арифметических команд (14 команд);

3. группа логических команд (15 команд);

4. группа команд передачи управления (29 команд);

5. группа команд работы со стеком, ввода-вывода и управления регистрами процессора (9 команд);

Группа команд передачи данных

Эту группу условно можно разделить на 3 подгруппы:

- команды засылки константы;

- команды пересылки;

- команды чтения-записи.

Команды передачи данных обеспечивают пересылку данных между регистрами, между памятью и регистрами.

Рассмотрим формат передачи данных КОП DST, SRC.

КОП — код операции (число от 0 до 255).

DST — приемник информации.

SRC — источник информации.

Команды передачи данных при своем выполнении не изменяют значения флагового регистра.

 

Команды засылки константы

 

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

 

Команда засылки 8 разрядной константы имеет формат

MVI DST, D 8

где DST -любой из РОН (А, В, С, D, Е, Н, L) или ячейка памяти (М) адрес которой берется из регистровой пары Н L; MVI — код операции; D 8 - 8-разрядная константа, содержащаяся во втором байте команды.

 

Пример: пусть требуется загрузить в ячейку памяти с адресом 086016 число 3 F.

Адрес Команда Содержание ячейки памяти Комментарий
0800 MVI H  

В регистр H засылается константа 1016

Н<-10

0801 08 08
0802 MVI L  

В регистр L запишем младший байт адреса 05 (HL=100516)

0803 60 60
0804 MVI M  

В ячейку памяти адресуемую с помощью регистровой пары HL записываем число 3F16

0805 3F 3F

 

Команда засылки 16 разрядной константы имеет формат

LXI RP, D 16 где RP - регистровая пара В, D, Н или указатель стека SP;

D16-16 -разрядная величина константы, причем младший байт константы находится во втором байте команды, а старший в третьем.

 

Пример: пусть требуется загрузить в ячейку памяти с адресом 1005 число 3 F.

Адрес Команда Содержание ячейки памяти Комментарий
0800 LXI H  

В регистровую пару HL засылается константа 051016 причем в регистр H засылается 1016, а в регистр L - 0516

0801 60 60
0802 08 08
0803 MVI M  

В ячейку памяти, адресуемую с помощью регистровой пары HL записываем число 3F16

0804 3F 3F

 

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

При выполнении команд пересылки содержимое источника SRC пересылается в приемник DST, при этом содержимое источника не изменяется. В качестве источника и приемника операндов может быть использован любой из регистров общего назначения или ячейка памяти, адресуемая через регистровую пару (Н, L). Пересылка данных типа "ПАМЯТЬ-ПАМЯТЬ" запрещена.

Формат команд пересылки MOV DST, SRC,

где DST, SRC -любой из РОН (А, В, С, D, Е, Н, L) или ячейка памяти (М), адресуемая через регистровую пару HL.

Пример переслать данные из ячейки с адресом 0860 в ячейку с адресом 0861.

Адрес Команда Содержание ячейки памяти Комментарий
0800 LXI H  

В регистровую пару HL засылается константа 086016 причем в регистр H засылается 0816, а в регистр L - 6016

0801 60 60
0802 08 08
0803 MOV A,M   Пересылка данных из памяти в аккумулятор
0804 MVI L   Засылка в HL адреса 0861
0805 61 61  
0806 MOV М,A   Передача данных из А в ячейку памяти с адресом 0861.

 

К командам пересылки можно также отнести команду XCHG, в результате выполнения которой регистровые пары (Н, L) и (D, Е) обмениваются содержимым следующим образом:

H c D

L c E

Команды чтения-записи.

LDAX RP - чтение из памяти в аккумулятор содержимого ячейки памяти, адресуемой через регистровую пару BC или DE;

STAX RP - запись содержимого аккумулятора в ячейку памяти адресуемую через регистровую пару BC или DE;

Пример: необходимо записать в память по адресу 086016 число 3F16 с помощью команды STAX

 

Адрес Команда Содержание ячейки памяти Комментарий
0800 LXI B  

В регистровую пару HL засылается константа 051016 причем в регистр H засылается 1016, а в регистр L - 0516

0801 60 60
0802 08 08
0803 MVI A  

Засылка в A числа 3F

0804 3F 3F
0805 STAX B   Пересылка данных из аккумулятора А в память. Адрес ячейки памяти определяется содержимым регистровой пары BC.

 

LDAAdr -чтение содежимого ячейки памяти в аккумулятор, адрес ячейки памяти определяется 16-разрядным адресом Adr;

 

Адрес Команда Содержание ячейки памяти Комментарий
0800 LDA  

А <-­M0801<-­0801

Значок <- означает направление передачи.

0801 01 01
0802 08 08

 

LHLD Adr - запись в регистровую пару НL содержимого двух последовательных ячеек памяти с адресами Adr и Adr +1, причем в регистр Н загружается содержимое ячейки по адресу Adr+1, а в регистр L - по адресу Adr;

 

Адрес Команда Содержание ячейки памяти Комментарий
0800 LHLD НL <-­002А
0801 00 00  
0802 08 08  
0803      

 

SHLD Adr - запись содержимого регистровой пары НL в две последовательные ячейки памяти с адресами Adr и Adr+1, причем coдержимoe регистра Н записывается в ячейку с адресом Adr +1, а регистра L - в ячейку с адресом Adr.

 



Поделиться:


Последнее изменение этой страницы: 2021-09-26; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.33.87 (0.014 с.)