
- •Тема 2.5 Основы программирования процессора
- •1 Оперативная память, регистры, представление данных
- •1.Программная модель микропроцессорной системы на основе мп кр580вм80
- •2.Формат данных и структура команд языка ассемблер
- •3 Формат команд
- •4 Методы адресации
- •5 Система команд
- •6 Команды передачи данных и ввода-вывода
- •6.1 Команды передачи данных
- •6.2 Команды ввода-вывода
- •6.3 Команды работы со стеком
- •7 Команды обработки данных
- •Арифметические команды
- •Логические команды
- •8 Команды управления
- •1.Команды условного и безусловного переходов
- •2.Команды вызова подпрограмм и возврата из них, программное прерывание
- •9 Составление программ
5 Система команд
Система команд МП – это полный перечень элементарных действий, которые способен производить МП. Управляемый этими командами МП выполняет простые действия, такие как элементарные арифметические и логические операции, пересылку данных, сравнение двух величин и др. Число команд МП КР580ВМ80 - 78 (с учетом модификаций 244).
Различают следующие группы команд:
передачи данных;
арифметические;
логические;
команды перехода;
команды ввода-вывода, управления и работы со стеком.
Символы и сокращения, применяемые при описании команд и составлении программ
-
Символ
Сокращение
ADDR
16-битовый адрес
DATA
8-битовые данные
DATA 16
16-битовые данные
PORT
8-битовый адрес УВВ (устройства ввода-вывода)
BYTE 2
Второй байт команды
BYTE 3
Третий байт команды
R, R1, R2
Один из регистров: A, B, C, D, E, H, L
RP
Одна из регистровых пар: В - задает пару ВС; D - задает пару DE; H – задает пару HL
RH
Первый регистр пары
RL
Второй регистр пары
Λ
Логическое умножение
V
Логическое сложение
Сложение по модулю два
М
Ячейка памяти, адрес которой задаёт содержимое регистровой пары HL, т. е. М = (HL)
6 Команды передачи данных и ввода-вывода
Команды передачи данных служат для пересылки данных между следующими устройствами:
регистр – регистр;
регистр – память;
данные, содержащиеся в команде, - регистр;
данные, содержащиеся в команде, - память.
6.1 Команды передачи данных
Могут быть однобайтовыми, двухбайтовыми и трехбайтовыми. Эти команды не оказывают воздействия на флаги условий.
Однобайтные
MOV R1, R2 –пересылка данных из регистра в регистр. В качестве регистров может быть использован любой из регистров A, B, C, D, E, H, L. R1 R2
MOV R, M – пересылка данных из памяти в регистр. (М - ячейка памяти, адрес которой указан в регистровой паре HL). R (HL).
MOV M, R – пересылка данных из регистра в память. (HL) R.
2-х байтовые
MVI R, DATA – пересылка непосредственная. Содержимое второго байта команды пересылается в регистр R. R (BYTE 2).
MVI M, DATA – пересылка в память непосредственная. (HL) (BYTE 2).
3-х байтовые
LXI RP, DATA 16 – непосредственная загрузка регистровой пары.
(RH) (BYTE3), (RL) (BYTE2).
LDA ADDR – прямая загрузка А. Cодержимое ЯП, адрес которой указан во втором и третьем байтах команды, загружается в А. A [(BYTE3, BYTE2)].
STA ADDR – прямая запись содержимого А в ячейку памяти, адрес которой указан во втором и третьем байтах команды. [(BYTE3, BYTE2)] А.
Однобайтовые
STAX – косвенная загрузка А в память. Содержимое А пересылается в ЯП, адрес которой указан в паре регистров (RP). Может быть указана только пара В и D. (RP) A.
LDAX – косвенная загрузка А. Содержимое ЯП, адрес которой указан в регистровой паре (RP), пересылается в А. Может быть указана только пара В и D. А (RP).