Команда DEC <байт>
Команда "декремент" производит вычитание "1" из указанного опеанда. Начальное значение 00Н перейдет в 0FFH. Команда DEC не влияет на флаги. Этой командой допускается четыре режима адресации операнда:
- к аккумулятору
- регистровый
- прямой
- косвенно-регистровый
Рассмотрим их.
Ассемблер: |
DEC A |
Код: |
|
Время: |
1 цикл |
Алгоритм: |
(A) : =(A)-1 |
Пример: |
;(A)=11H, (C)=1, (AC)=1
DEC A ;(A)=10H, (C)=1, (AC)=1
|
Ассемблер: |
DEC Rn ; где n=0-7 |
Код: |
|
где rrr=000-111 |
Время: |
1 цикл |
Алгоритм: |
(Rn) :=(Rn)-1 |
Пример: |
;(R1)=7FH,
;(ОЗУ[7F])=40H, (ОЗУ[7F])=00H
DEC @R1
DEC R1
DEC @R1 ;(R1)=7EH,
;(ОЗУ[7F])=3FH, (ОЗУ[7F])=FFH
|
Ассемблер: |
DEC <direct> |
Код: |
|
|
Время: |
1 цикл |
Алгоритм: |
(direct) : = (direct)-1 |
Пример: |
;(SCON)=A0H, (C)=1, (AC)=1
DEC SCON ;(SCON)=9FH, (C)=1, (AC)=1
|
Ассемблер: |
DEC @Ri ; где i=0,1 |
Код: |
|
Время: |
1 цикл |
Алгоритм: |
((Ri) :=((Ri)-1) |
Пример: |
;(R1)=7FH,
;(ОЗУ[7F])=40H, (ОЗУ[7F])=00H
DEC @R1
DEC R1
DEC @R1 ;(R1)=7EH,
;(ОЗУ[7F])=3FH, (ОЗУ[7F])=FFH
|
Примечание. Если эта команда используется для изменения информации на выходе порта, значение, используемое как исходные данные, считывается из "защелки" порта, а не с выводов БИС.
|