Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
3.1.2.2 Арифметические и логические команды.
К арифметическим командам относятся: команды сложения и вычитания с учетом (ADD, ADI, SUB и SUI) и без учета (ADC, ACI, SBB и SBI) флага переноса, команды инкрементации и декрементации (INR, DCR, INX и DCX), команда десятичной коррекции аккумулятора (DAA) и команда DAD, выполняющая увеличение регистровой пары HL на величину, содержащуюся в другой регистровой паре (BC или DE).
К логическим командам относятся команды логического И, ИЛИ, исключающего ИЛИ, НЕ; команды сдвига влево и вправо с учетом и без учета переноса; команда инверсии аккумулятора (CMA); команды сравнения (CMP, CPI). Сюда же можно отнести несколько команд изменения содержимого триггера переноса в регистре флагов: STC – установить в единицу триггер переноса; СМС – инвертировать содержимое триггера переноса.
3.1.2.3 Команды передачи управления.
Команды передачи управления делятся на три типа: ветвления, обращения к подпрограммам и возврата из подпрограмм. Адреса команд ветвления хранятся за 1-м байтом команды.
Для команд перехода к подпрограммам характерно наличие адресов возврата, хранимых в стеках, а команды возврата из подпрограмм не имеют ассоциированных с ними адресов, они получают адреса возврата из стека.
Каждый из трех видов перехода может быть безусловным и условным в соответствии с одним из двоичных разрядов регистра признаков. Команды JMP, CALL, RET предназначены для осуществления безусловных переходов.
Команда PCHL приводит к тому, что содержимое регистров HL передается в программный счетчик (PC). Это переход на ячейку памяти, указанную парой HL (безусловный переход с косвенной адресацией). Команда RST – команда начального запуска прерывания программы, которая является специально командой перехода, используемой совместно с процедурами прерывания.
Есть и другие команды, относящиеся к данной группе (см. Табл. 0-11 – Табл. 0-13).
3.1.2.4 Специальные команды.
К ним относятся команды EI и DI – разрешающие и, соответственно, запрещающие прерывания; NOP – пустая команда, не выполняющая никакой операции, но включаемая в программу для коррекции времени выполнения или последовательности команд и HLT – команда останова.
Все вышеприведенные команды, а также и некоторые неупомянутые другие команды приведены в Табл. 2.1.
Табл. 2.1. Команды микропроцессора КР580.
№ | Мнемоническое обозначение | Описание команды | 2-й или 16-й код | Число тактовых импульсов |
Передача, загрузка и хранение | ||||
1 | MOV r1r2 | Передать содержимое одного регистра в другой. | 01DDDSSS | 5 |
2 | MOV M r | Передать содержимое регистра в память. | 01110SSS | 7 |
3 | MOV r M | Передать содержимое памяти в регистр. | 01DDD110 | 7 |
4 | MVI r | Загрузить регистр вторым байтом команды. | 00DDD110 | 7 |
5 | MVI M | Загрузить память вторым байтом команды. | 00110110 | 10 |
6 | LXI B | Загрузить пару регистров ВС вторым и третьими байтами команды. | 00000001 | 10 |
7 | LXI D | Загрузить пару регистров DЕ вторым и третьими байтами команды. | 00010001 | 10 |
8 | LXI H | Загрузить пару регистров HL вторым и третьим байтами команды. | 00100001 | 10 |
9 | STAX В | Записать содержимое аккумулятора в память по адресу, указанному в паре регистров ВС. | 00000010 | 7 |
10 | STAX D | Записать содержимое аккумулятора в память по адресу, указанному в паре регистров DE. | 00010010 | 7 |
11 | LDAX В | Загрузить аккумулятор содержимым ячейки, адрес которой указан в паре регистров ВС. | 00001010 | 7 |
12 | LDAX D | Загрузить аккумулятор содержимым ячейки, адрес которой указан в паре регистров DE. | 00011010 | 7 |
13 | STA | Загрузить содержимое аккумулятора в память по адресу, указанному во втором и третьем байтах команды. | 00110010 | 13 |
14 | LDA | Загрузить аккумулятор содержимым ячейки, адрес которой указан во втором и третьем байтах команды. | 00111010 | 13 |
15 | SHILD | Записать в память содержимое пары регистров HL по адресу, указанному во втором и третьем байтах команды. | 00100010 | 16 |
16 | LHLD | Загрузить пару регистров HL содержимым ячейки, адрес которой указан во втором и третьем байтах команды. | 00101010 | 16 |
17 | XCHG | Поменять местами содержимое пар регистров DE и HL. | 11101011 | 4 |
Операции со стеком | ||||
18 | PUSH В | Записать содержимое пары регистров ВС в стек. | 11000101 | 11 |
19 | PUSH D | Записать содержимое пары регистров DE в стек. | 11010101 | 11 |
20 | PUSH Н | Записать содержимое пары регистров HL в стек. | 11100101 | 11 |
21 | PUSH PSW | Записать содержимое аккумулятора и регистра признаков в стек. | 11110101 | 11 |
22 | POP В | Загрузить пару регистров ВС из стека. | 11000001 | 10 |
23 | POP D | Загрузить пару регистров DE из стека. | 11010001 | 10 |
24 | POP Н | Загрузить пару регистров HL из стека. | 11100001 | 10 |
25 | POP PSW | Загрузить аккумулятор и регистр признаков из стека. | 11110001 | 10 |
26 | XTHL | Поменять местами содержимое верхней ячейки стека и пары регистров HL. | 11100011 | 18 |
27 | SPHL | Передать содержимое пары регистров HL в указатель стека. | 11111001 | 5 |
28 | LXI SP | Загрузить указатель стека вторым и третьими байтами команды. | 00110001 | 10 |
29 | INX SP | Увеличить на 1 содержимое указателя стека. | 00110011 | 5 |
30 | DCX SP | Уменьшить на 1 содержимое указателя стека. | 00111011 | 5 |
Переходы | ||||
31 | JMP | Безусловный переход. | 11000011 | 10 |
32 | JC | Условный переход по единице триггера переноса. | 11011010 | 10 |
33 | JNC | Условный переход по нулевому значению триггера переноса. | 11010010 | 10 |
34 | JZ | Условный переход по нулевому значению результата. | 11001010 | 10 |
35 | JNZ | Условный переход по ненулевому значению результата. | 11000010 | 10 |
36 | JP | Условный переход по положительному значению результата. | 11110010 | 10 |
37 | JM | Условный переход по отрицательному значению результата. | 11111010 | 10 |
38 | JPE | Условный переход по четности кода результата. | 11101010 | 10 |
39 | JPO | Условный переход по нечетности кода результата. | 11100011 | 10 |
40 | PCHL | Передать содержимое пары регистров HL в программный счетчик. | 11101001 | 5 |
Вызовы | ||||
41 | CALL | Безусловный переход к подпрограмме. | 11001101 | 17 |
42 | СС | Переход к подпрограмме по единичному значению триггера переноса. | 11011100 | 11/17 |
43 | CNC | Переход к подпрограмме по нулевому значению результата. | 11010100 | 11/17 |
44 | CZ | Переход к подпрограмме по нулевому значению результата. | 11001100 | 11/17 |
45 | CNZ | Переход к подпрограмме по ненулевому значению результата. | 11000100 | 11/17 |
46 | СР | Переход к подпрограмме по положительному значению результата. | 11110100 | 11/17 |
47 | СМ | Переход к подпрограмме по отрицательному значению результата. | 11111100 | 11/17 |
48 | СРЕ | Переход к подпрограмме по четности кода результата. | 11101100 | 11/17 |
49 | СРО | Переход к подпрограмме по нечетности кода результата. | 11100100 | 11/17 |
Возвраты | ||||
50 | RET | Возврат из подпрограммы. | 11001001 | 10 |
51 | RC | Условный возврат из подпрограммы по единичному значению триггера переноса. | 11011000 | 5/11 |
52 | RNC | Условный возврат из подпрограммы по нулевому значению триггера переноса. | 11010000 | 5/11 |
53 | RZ | Условный возврат из подпрограммы по нулевому значению результата. | 11001000 | 5/11 |
54 | RNZ | Условный возврат из подпрограммы по ненулевому значению результата. | 11000000 | 5/11 |
55 | RP | Условный возврат из подпрограммы по положительному значению результата. | 11110000 | 5/11 |
56 | RM | Условный возврат из подпрограммы по отрицательному значению результата. | 11111000 | 5/11 |
57 | RPE | Условный возврат из подпрограммы по четности кода результата. | 11101000 | 5/11 |
58 | RPO | Условный возврат из подпрограммы по нечетности кода результата. | 11100000 | 5/11 |
Рестарт | ||||
59 | RST | Начальный запуск прерывающей программы. | 11ААА111 | 11 |
Увеличение и уменьшение. | ||||
60 | INR | Увеличить содержимое регистра на единицу. | 00DDD100 | 5 |
61 | DCR | Уменьшить содержимое регистра на единицу. | 00DDD101 | 5 |
62 | INR M | Увеличить содержимое памяти на единицу. | 00110100 | 10 |
63 | DCR М | Уменьшить содержимое памяти на единицу. | 00110101 | 10 |
64 | INX B | Увеличить на единицу содержимое пары регистров ВС. | 00000011 | 5 |
65 | INX D | Увеличить на единицу содержимое пары регистров DE. | 00010011 | 5 |
66 | INX H | Увеличить на единицу содержимое пары регистров HL. | 00100011 | 5 |
67 | DCX B | Уменьшить на единицу содержимое пары регистров BC. | 00001011 | 5 |
68 | DCX D | Уменьшить на единицу содержимое пары регистров DE. | 00011011 | 5 |
69 | DCX H | Уменьшить на единицу содержимое пары регистров HL. | 00101011 | 5 |
Сложение | ||||
70 | ADD | К содержимому аккумулятора прибавить содержимое регистра. | 10000SSS | 4 |
71 | ADC | К содержимому аккумулятора прибавить содержимое регистра и триггера переноса. | 10001SSS | 4 |
72 | ADD M | К содержимому аккумулятора прибавить содержимое памяти. | 10000110 | 7 |
73 | ADC M | К содержимому аккумулятора прибавить содержимое памяти и триггера переноса. | 11000110 | 7 |
74 | ADI | К содержимому аккумулятора прибавить второй байт команды. | 11000110 | 7 |
75 | ACI | К содержимому аккумулятора прибавить второй байт команды и содержимое триггера переноса. | 11001110 | 7 |
76 | DAD B | К содержимому пары регистров HL прибавить содержимое пары регистров ВС. | 00001001 | 10 |
77 | DAD D | К содержимому пары регистров HL прибавить содержимое пары регистров DE. | 00011001 | 10 |
78 | DAD H | К содержимому пары регистров HL прибавить содержимое пары регистров DE. | 00101001 | 10 |
79 | DAD SP | К содержимому пары регистров HL прибавить содержимое указателя стека. | 00111001 | 10 |
3.2. Задания для самоподготовки
1. Изучить способы адресации МП КР580.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |


