- •Раздел 3. Язык ассемблер
- •Тема 3.1 Оперативная память, регистры, представление данных
- •1.Программная модель микропроцессорной системы на основе мп кр580вм80
- •2.Формат данных и структура команд языка ассемблер
- •Тема 3.2 Методы адресации и система команд мп
- •1.Методы адресации
- •2. Система команд
- •Тема 3.3 Команды передачи данных и ввода-вывода
- •Тема 3.4 Команды обработки данных
- •Арифметические команды
- •Логические команды
- •Тема 3.5 Команды управления
- •Тема 3.6 Составление программ
Тема 3.4 Команды обработки данных
К этим командам относятся команды выполнения арифметических операций и команды выполнения логических операций.
-
Арифметические команды
Команды этой группы выполняют арифметические операции над данными в регистрах и памяти. Эти команды воздействуют на флаги состояний стандартным образом.
Однобайтовые
ADD R – команда сложения содержимого А с содержимым регистра. (А)← (А) + R
ADD M – команда сложения содержимого А с содержимым ЯП, адрес которой находится в регистровой паре HL. (А) (А)+ [(H)(L)]
2-х байтовые
ADI DATA – непосредственное сложение. (А) (А) + (ВYTE2).
Однобайтовые
ADC R - сложение содержимого регистра с А с переносом (A)(A) + (R) + (CY)
ADO M - сложение содержимого памяти с А переносом
ACI - сложение константы с А с переносом (А)(А) + (В2) + (CY)
SUB R – команда вычитания содержимого регистра из содержимого А. (А) (А) - (R).
SUB M – команда вычитания содержимого ЯП из содержимого А. (A) (A) - [(H) (L)].
2-х байтовые
SUI DATA – непосредственное вычитание. (А) (А) - (ВYTE2).
Однобайтовые
SBB R – вычитание содержимого регистра и бита переноса. (A)← (A)-(R)-(CY).
SBB M – вычитание содержимого ЯП и бита переноса. (A)← (A) – (H, L) – (CY).
SBB R - вычитание регистра с заёмом (уменьшаемое меньше вычитаемого)
(A) (A) - (R) - (CY)
SBB М - вычитание памяти с заёмом (А) (А) [(H)(L)] - (CY)
2-х байтовые
SBI DATA – непосредственное вычитание с заемом. (A) ← (A) (BYTE2) – (CY).
Однобайтовые
INR R – увеличение содержимого регистра на 1. (R) (R) + 1.
INR M – увеличение содержимого памяти на 1. [(Н) (L)] [(Н)(L)]+1.
DCR R – уменьшение содержимого регистра на 1. R ← (R) – 1.
DCR M – уменьшение содержимого памяти на 1. [(H) (L)][(H) (L)] – 1.
INX RP – увеличение содержимого регистровой пары на 1. (RH) (RL) ← (RH) (RL) + 1. DCX RP – уменьшение содержимого регистровой пары на 1. (RH) (RL) ← (RH) (RL) – 1.
DAD RP – сложение содержимого пары регистров с содержимым регистров H и L. (H) (L) ← (H) (L) + (RH) (RL).
Команды сложения и вычитания с учётом переносов (заёма) позволяют организовать обработку многобайтовых чисел последовательно по байтам, которые хранятся в смежных ячейках памяти и адресуются, начиная с младшего.
-
Логические команды
Команды этой группы выполняют поразрядные логические операции над данными, хранящимися в регистрах и ЯП и флагами. Все команды воздействуют на флаги.
Однобайтовые
ANA R – операция конъюнкция (логическое умножение) над содержимым регистра и А. (А) (А) Λ (R).
ANA M – операция конъюнкция над содержимым ЯП и А. (А)(А) [(H) Λ (L)].
2-х байтовая
ANI DATA - непосредственная операция конъюнкция. (А) (А) Λ (В2).
Однобайтовые
XRA R – регистровая операция сложение по модулю 2 (операция неравнозначности).
(А) (А) ( R).
XRA M – операция сложение по модулю 2 над памятью. .
2-х байтовая
XRI DATA – непосредственная операция сложение по модулю 2. (A)(A)(B2).
Однобайтовые
ORA R – регистровая операция дизъюнкция (логическое сложение). (A)(A) v (R).
ORA M – операция дизъюнкция над памятью. (A)(A) v [(H)(L)].
2-х байтовые
ORI DATA – непосредственная операция дизъюнкция. (A) (A) v (B2).
Однобайтовые
CMP R – сравнение содержимого регистра с содержимым А. (А) - (R), содержимое А не изменяется.
CMP M – сравнение содержимого ЯП с содержимым А. (A) - [(H)(L)], содержимое А не изменяется.
2-х байтовая
CPI DATA – непосредственное сравнение. (А) – (ВYTE2), содержимое А не изменяется.
Однобайтовые
CMA – инвертирование А. (A) ().
RLC - циклический сдвиг содержимого А на один разряд влево.
RRC - циклический сдвиг содержимого А на один разряд вправо.