Rr – регистровая пара (B-C, D-E, H-L).
S, Z и др.
В этой команде изменяются признаки S, Z и др.
В этой команде изменяются признаки S, Z, P, AС, СY.
Арифметические и логические операции. Инкрементные и декрементные команды
Пересылка из запоминающего устройства в аккумулятор.
Б1 Б2 Б3 | LDA |
младший разряд | адрес ячейки памяти ЗУ |
старший разряд |
(А)←([< Б3>< Б2>])
1.6 загрузка памяти ЯП ЗУ прямая
Б1 Б2 Б3 | STA |
младший разряд | адрес ячейки памяти ЗУ |
старший разряд |
([<Б3>< Б2>])←(A)
2.1. Сложение содержимого аккумулятора с регистром r , где r регистры A, B, C, D, E, H, L.
Б1 | ADD r |
(A)←(A)+ (r), Z, S, P, AС, СY регистра признаков.
Помни!!!: В командах арифметических и логических операций, а также инкрементных и декрементных командах формируются значения регистра признаков.
Например:
ADD A ; (A)←(A)+(A)
Разновидность команды:
Сложение содержимого аккумулятора с содержимым ЯП (косвенная адресация):
Б1 | ADD M |
(A)←(A)+([H-L]), S, Z и др.
Сложение аккумулятора с константой:
Б1 Б2 | ADI |
8-разрядная константа |
(A)←(A)+(< Б2>), S, Z и др.
Например: ADI 7Bh ; (A)←(A)+7Bh, S, Z и др.
Помни: Символ «I» в командах означает работу с константой.
2.2. Вычитание содержимого регистра из аккумулятора
Б1 | SUB r |
(A)←(A) - (r), S, Z и др.
SUB A; (A)←(A)-(A) в аккумуляторе ноль, следовательно, появляется нулевой признак (Z=1).
Б1 | SUB M |
(A)←(A)- ([H-L]), S, Z и др.
Б1 Б2 | SUI |
8-разрядная константа |
(A)←(A)-(< Б2>) , S, Z и др.
2.3. Декрементные команды (аналогично вычитающему двоичному счетчику)
Б1 | DCR r |
(r)←(r)-1
Б1 | DCR M |
([H-L])←([H-L])- , S, Z и др.
Б1 | DCX rr |
(rr)←(rr)-1 , S, Z и др.
Например:
DCX B; (B-C)←(B-C)-1
Помни: Символ «Х» в команде означает работу с регистровой парой.
2.4. Инкрементные команды (аналогично суммирующему двоичному счетчику).
Инкремент регистра
Б1 | INR r |
(r)←(r)+1. S, Z и др.
Например: INR А; (A)←(A)+1 S, Z и др.
Б1 | INR M |
([H-L])←([H-L])+1.
Инкремент регистровой пары
Б1 | INX rr |
(rr)←(rr)+1
Например: INX D; (D-E)←( D-E)+1
- Логические операции (AND, OR, NOT, ).
3.1. Логическое умножение содержимого аккумулятора с константой
Б1 Б2 | ANI |
константа |
(A)←(A)^(< Б2>)
Логические операции осуществляются поразрядно и без переноса в старший разряд.
Пояснение на примере.
ANI 0: (A)←(A)^ (0) В аккумулятор записывается ноль.
ANI FF ; В аккумуляторе остается содержимое аккумулятора.
Б1 | ANA r |
(A)←(A)^(r)
Б1 | ANA M |
(A)←(A)^([H-L])
3.2. Логическое сложение
Б1 Б2 | ORI |
константа |
(A)←(A)V(<Б2>)
Рассмотрим примеры:
ORI FF; (A)←(FF)V(A)
ORI 0 (A)←(A)V0
Б1 | ORA r |
(A)←(A)V(r)
Б1 | ORA M |
(A)←(A)V([H-L])
3.3. Инверсия содержимого всехразрядов аккумулятора
Б1 | CMA |
(A)←()
Рассмотрим пример: Пусть А=0. Что будет в аккумуляторе после выполнения команды CMA?