Алгоритм | Пример |
(direct):=(A)Ú(direct) | ;(A)=55H, (P2)=0AAH ORL P2,A ;(A)=55H, ;(P2)=0FFH |
ORL direct,#data8 | 0 1 0 0 0 0 1 1 | direct | data8 |
Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию байта данных data8, непосредственно указанного в команде, с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(direct):=(direct)Údata8 | ;(P1)=0FFH ORL P1,#73H ;(P1)=0FFH |
ORL C, bit | 0 1 1 1 0 0 1 0 | bit |
Команда "логическое ИЛИ" выполняет дизъюнкцию содержимого флага переноса C с содержимым бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных (РПД) или регистров специальных функций, допускающей побитовое обращение. Результат помещается в С. Содержимое используемого бита не изменяется. Команда на состояние других флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(C):=(C)Ú(bit) | ;(C)=0, (P1[2])=1, ;в РПД (2EH)=12H ORL C, P1.2 ;(C)=1, (P1[2])=1 ORL C,70H ;(C)=1, ;в РПД (2EH)=12H |
ORL C,/bit | 1 0 1 0 0 0 0 0 | bit |
Команда "логическое ИЛИ" выполняет дизъюнкцию содержимого флага переноса C с инвертированным значением бита из области ячеек резидентной памяти данных или регистров специальных функций, допускающей побитовое обращение, при этом содержимое используемого бита, 8-разрядный адрес которого определяется символическим именем bit, не изменяется. Результат помещается в С. Команда на состояние других флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(C):=(C)Ú | ;(C)=0, (AC)=0 ORL C,/AC ;(C)=1, (AC)=0 |
POP direct | 1 1 0 1 0 0 0 0 | direct |
Команда "чтение из стека" копирует содержимое ячейки резидентной памяти данных (РПД), адресуемой содержимым указателя стека SP, в ячейку, адрес которой определяется символическим именем direct в области РПД или в среде регистров специальных функций. При этом содержимое указателя стека уменьшается на единицу. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(direct):=((SP)) (SP):=(SP)-1 | ;(SP)=32H, (DPH)=0AAH, ;в РПД (32H)=55H POP DPH ;(SP)=31H,(DPH)=55H |
PUSH direct | 1 1 0 0 0 0 0 0 | direct |
Команда "запись в стек" увеличивает содержимое указателя стека SP на единицу и после этого копирует содержимое ячейки, адрес которой определяется символическим именем direct в области резидентной памяти данных (РПД) или в среде регистров специальных функций, в ячейку РПД, адресуемую содержимым SP. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(SP):=(SP)+1 ((SP)):=(direct) | ;(SP)=44H, (DPL)=33H, ;в РПД (45H)=0CEH PUSH DPL ;(SP)=45H, в РПД (45H)=33H |
RET | 0 0 1 0 0 0 1 0 |
Команда "возврат из подпрограммы" последовательно копирует содержимое двух ячеек, адресуемых содержимым указателя стека SP в резидентной памяти данных (РПД), в программный счетчик PC. При этом содержимое SP уменьшается на два. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм | Пример |
(PC[15-8]):=((SP)) (SP):=(SP)-1 (PC[7-0]):=((SP)) (SP):=(SP)-1 | ;(SP)=32H, (PC)=3DFH, ;в РПД (31H)=23H, (32H)=01H RET ;(SP)=30H, (PC)=123H, ;в РПД (31H)=23H, (32H)=01H |
RETI | 0 0 1 1 0 0 1 0 |
Команда "возврат из прерывания" последовательно копирует содержимое двух ячеек, адресуемых содержимым указателя стека SP в резидентной памяти данных (РПД), в программный счетчик PC и разрешает прерывания с уровнем приоритета, равным уровню приоритета только что обработанного прерывания. При этом содержимое SP уменьшается на два. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
| Алгоритм | Пример | |
| (PC[15-8]):=((SP)) (SP):=(SP)-1 (PC[7-0]):=((SP)) (SP):=(SP)-1 | ;(SP)=23H, (PC)=0D3FH, ;в РПД (22H)=34H, (23H)=02H RETI ;(SP)=21H, (PC)=234H, ;в РПД (22H)=34H, (23H)=02H | |
RL A | 0 0 1 0 0 0 1 1 |
| |
Команда "сдвиг аккумулятора влево" сдвигает содержимое аккумулятора A на один бит влево, причем содержимое бита 7 пересылается в бит 0. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A[M+1]):=(A[M]), где M=0-6 (A[0]):=(A[7]) | ;(A)=85H, (C)=0 RL A RL A ;(A)=16H, (C)=0 |
RLC A | 0 0 1 1 0 0 1 1 |
Команда "сдвиг аккумулятора влево через флаг переноса" сдвигает содержимое аккумулятора A на один бит влево, причем содержимое бита 7 аккумулятора пересылается во флаг переноса C, а содержимое C - в бит 0 аккумулятора. Команда на состояние других флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A[M+1]):=(A[M]), где M=0-6 (A[0]):=(С), (С):=(A[7]) | ;(A)=85H, (C)=0 RLC A ;(A)=0AH, (C)=1 |
RR A | 0 0 0 0 0 0 1 1 |
Команда "сдвиг аккумулятора вправо" сдвигает содержимое аккумулятора A на один бит вправо, причем содержимое бита 0 пересылается в бит 7. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A[M]):=(A[M+1]), где M=0-6 (A[7]):=(A[0]) | ;(A)=85H, (C)=1 RR A RR A ;(A)=61H, (C)=1 |
RRC A | 0 0 0 1 0 0 1 1 |
Команда "сдвиг аккумулятора вправо через флаг переноса" сдвигает содержимое аккумулятора A на один бит вправо, причем содержимое бита 0 аккумулятора пересылается во флаг переноса C, а содержимое C - в бит 7 аккумулятора. Команда на состояние других флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A[M]):=(A[M+1]), где M=0-6 (A[7]):=(С), (С):=(A[0]) | ;(A)=85H, (C)=0 RRC A ;(A)=42H, (C)=1 |
SETB C | 1 1 0 1 0 0 1 1 |
Команда "установить бит" устанавливает содержимое флага переноса C в "1". Команда на состояние других флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(C):=1 | ;(C)=0 SETB C ;(C)=1 |
SETB bit | 1 1 0 1 0 0 1 0 | bit |
Команда "установить бит" устанавливает в "1" содержимое бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных или регистров специальных функций, допускающей побитовое обращение. Команда имеет время выполнения 1 цикл и на состояние флагов не влияет, за исключением случая, когда флаг является операндом команды.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |


