- •Раздел 3. Язык ассемблер
- •Тема 3.1 Оперативная память, регистры, представление данных
- •1.Программная модель микропроцессорной системы на основе мп кр580вм80
- •2.Формат данных и структура команд языка ассемблер
- •Тема 3.2 Методы адресации и система команд мп
- •1.Методы адресации
- •2. Система команд
- •Тема 3.3 Команды передачи данных и ввода-вывода
- •Тема 3.4 Команды обработки данных
- •Арифметические команды
- •Логические команды
- •Тема 3.5 Команды управления
- •Тема 3.6 Составление программ
2. Система команд
Система команд МП – это полный перечень элементарных действий, которые способен производить МП. Управляемый этими командами МП выполняет простые действия, такие как элементарные арифметические и логические операции, пересылку данных, сравнение двух величин и др. Число команд МП КР580ВМ80 - 78 (с учетом модификаций 244).
Различают следующие группы команд:
-
передачи данных;
-
арифметические;
-
логические;
-
команды перехода;
-
команды ввода-вывода, управления и работы со стеком.
Тема 3.3 Команды передачи данных и ввода-вывода
Символы и сокращения, применяемые при описании команд и составлении программ
Символ |
Сокращение |
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 |
Второй регистр пары |
Λ |
Логическое умножение |
٧ |
Логическое сложение |
Сложение по модулю два |
|
М |
Ячейка памяти, адрес которой задаёт содержимое регистровой пары HL, т. е. М = (HL) |
Команды передачи данных служат для пересылки данных между следующими устройствами:
-
регистр – регистр;
-
регистр – память;
-
данные, содержащиеся в команде, - регистр;
-
данные, содержащиеся в команде, - память.
Команды передачи данных
Могут быть однобайтовыми, двухбайтовыми и трехбайтовыми. Эти команды не оказывают воздействия на флаги условий.
Однобайтовые
MOV R1, R2 –пересылка данных из регистра в регистр. В качестве регистров может быть использован любой из регистров A, B, C, D, E, H, L. (R1) ← (R2)
MOV R, M – пересылка данных из памяти в регистр. М - ячейка памяти, адрес которой указан в регистровой паре HL. (R) ← (H, L).
MOV M, R – пересылка данных из регистра в память. (H, L) ← (R).
2-х байтовые
MVI R, DATA – пересылка непосредственная. Содержимое второго байта команды пересылается в регистр R. (R) ← (BYTE 2).
MVI M, DATA – пересылка в память непосредственная. (H, L) ← (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).
Команды ввода-вывода оказывают влияние на флаги.
Для обмена данными с процессором внешние устройства имеют на своих входах и выходах регистры, называемые портами ввода-вывода.
2-х байтовые
IN PORT - команда ввода данных предназначена для ввода данных из входного порта в А. Команда двухбайтовая. (А) ← (PORT)
OUT PORT - команда вывода данных предназначена для вывода данных из А в выходной порт. Команда двухбайтовая. (PORT) ← (А).
Команды работы со стеком
Однобайтовые
PUSH RP – загрузка в стек содержимого пары регистров
PUSH PSW - загрузка в стек слово состояния программы.
POP RP – считать из стека содержимое пары регистров.
POP PSW - считать из стека слова состояния программы.
XTHL – обмен содержимого верхушки стека и содержимого регистров H и L. (L) ↔ (SP)
(H) ↔ (SP) + 1
SPHL – пересылка содержимого регистров H и L в указатель стека. (SP) ↔ (H) (L).