Алгоритм
(A) (A)+(C)+data8
(С) x, (OV) x, (AC) x, где x {0,1}
ANL A,@Ri ;где i {0,1}
Команда "логическое И" выполняет поразрядную конъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (РПД),
адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A) (A) ((Ri)), где i {0,1} |
;(A)=0BCH, (R0)=35H, |
|
;в РПД (35H)=47H |
|
ANL A,@R0 ;(A)=04H, |
|
;в РПД (35H)=47H |
|
|
ANL A,direct |
0 1 0 1 0 1 0 1 |
direct |
|
|
|
Команда "логическое И" выполняет поразрядную конъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого)
определяется символическим именем direct. Результат помещается в A.
Содержимое используемой ячейки или используемого регистра не изменяется.
Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(A) (A) (direct) |
;(A)=0A3H, (PSW)=85H |
|
ANL A,PSW ;(A)=81H,(PSW)=85H |
|
|
67
ANL A,#data8 |
0 1 0 1 0 1 0 0 |
data8 |
|
|
|
Команда "логическое И" выполняет поразрядную конъюнкцию содержимого аккумулятора A с байтом данных data8, непосредственно указанным в команде.
Результат размещается в A. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
|
Алгоритм |
|
|
Пример |
|
|
|
|
|
|
|
|
|
|
;(A)=36H |
|
|
(A) |
(A) data8 |
|
|
|
|
|
|
|
ANL A,#0DDH ;(A)=14H |
||
|
|
|
|
|
|
ANL direct,A |
|
|
|
||
0 1 0 1 0 0 1 0 |
direct |
||||
|
|
|
|
|
|
Команда "логическое И" выполняет поразрядную конъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого)
определяется символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр.
Содержимое A не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм |
Пример |
|
|
(direct) (direct) (A) |
;(A)=55H, (P2)=0AAH |
|
ANL P2,A ;(A)=55H,(P2)=00H |
|
|
ANL direct,#data8 |
0 1 0 1 0 0 1 1 |
direct |
data8 |
|
|
|
|
Команда "логическое И" выполняет поразрядную конъюнкцию байта данных data8, непосредственно указанного в команде, с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-
разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
68
Алгоритм |
|
|
|
Пример |
||||
|
|
|
|
|
|
|
|
|
|
|
data8 |
|
;(P1)=0FFH |
|
|
||
(direct) (direct) |
|
|
|
|
|
|
||
|
|
|
|
|
ANL P1,#73H ;(P1)=73H |
|||
|
|
|
|
|
|
|
|
|
ANL C,bit |
|
|
|
|
|
|
|
|
|
|
|
1 0 0 0 0 0 1 0 |
|
bit |
|||
|
|
|
|
|
|
|
|
|
Команда "логическое И" выполняет конъюнкцию содержимого флага переноса
C с содержимым бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных (РПД)
или регистров специальных функций, допускающей побитовое обращение.
Результат помещается в С. Содержимое используемого бита не изменяется.
Команда на состояние других флагов не влияет и имеет время выполнения 2
цикла.
|
Алгоритм |
Пример |
|
|
|
|
|
;(C)=1, (P1[0])=0, |
(C) |
(C) (bit) |
|
|
|
;в РПД (24H)=0FH |
|
|
ANL C,P1.0 ;(C)=0, (P1[0])=0 |
|
|
ANL C,20H ;(C)=0, (24H)=0FH |
|
|
|
ANL C,/bit |
1 0 1 1 0 0 0 0 |
bit |
|
|
|
Команда "логическое И" выполняет конъюнкцию содержимого флага переноса
C с инвертированным значением бита из области ячеек резидентной памяти данных или регистров специальных функций, допускающей побитовое обращение, при этом содержимое используемого бита, 8-разрядный адрес которого определяется символическим именем bit, не изменяется. Результат помещается в С. Команда на состояние других флагов не влияет и имеет время выполнения 2 цикла.
|
|
|
|
Алгоритм |
Пример |
|
|
|
|
||
|
|
(bit) |
;(C)=1, (AC)=0 |
||
(C) |
(C) |
|
|
|
ANL C,/AC ;(C)=1, (AC)=0 |
|
|
|
|
|
|
|
|
|
|
|
|
69
CJNE A,direct,addr |
1 0 1 1 0 1 0 1 |
direct |
rel |
Команда "сравнение и переход, если не равно" сравнивает содержимое аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого)
определяется символическим именем direct, и выполняет переход по адресу addr, если содержимое A не равно содержимому используемой ячейки или используемого регистра, в противном случае выполняется следующая команда.
Адрес перехода addr определяется при помощи сложения 8-битового числа rel (со знаком), размещенного в последнем байте команды, с содержимым счетчика команд PC после увеличения его на три. Таким образом, указанный переход возможен в пределах от -128 до +127 относительно начального адреса следующей команды, при этом отрицательное значение rel представляется двоичным числом в дополнительном коде. Флаг переноса C сбрасывается в "0",
если содержимое A больше (равно) содержимого (содержимому) используемой ячейки или используемого регистра, в противном случае флаг устанавливается в "1". Команда не изменяет (A) и (direct) и имеет время выполнения 2 цикла.
Алгоритм |
Пример |
|
|
|
|
если (direct) (A), то |
;(A)=97H, (P2)=0F0H, (C)=0, |
|
(PC) (PC)+3+rel и (C) 0 |
;(PC)=3FFH, MT3 соответству- |
|
если (direct) (A), то |
;ет адресу 41FH, rel=1DH |
|
(PC) (PC)+3+rel и (C) 1 |
CJNE A,P2,MT3 ;(C)=1, |
|
;(A)=97H, (P2)=0F0H, |
||
если (direct)=(A), то (PC) (PC)+3 и |
||
(C) 0 |
;(PC)=41FH |
|
|
||
|
|
CLR A |
1 1 1 0 0 1 0 0 |
|
|
Команда "сброс аккумулятора" сбрасывает (обнуляет) содержимое аккумулятора A, на состояние флагов не влияет и имеет время выполнения 1
цикл.
70
Алгоритм |
Пример |
|
|
|
|
|
;(A)=6CH, (C)=0, (AC)=1 |
|
(A) 0 |
|
|
|
|
CLR A ;(A)=00H, (C)=0, (AC)=1 |
|
|
|
CLR C |
|
|
|
1 1 0 0 0 0 1 1 |
|
|
|
|
Команда "сброс флага переноса" сбрасывает (обнуляет) содержимое флага переноса C, на состояние других флагов не влияет и имеет время выполнения 1
цикл.
Алгоритм |
|
|
|
Пример |
||
|
|
|
|
|
|
|
(C) 0 |
|
;(C)=1 |
|
|
||
|
|
|
CLR C ;(C)=0 |
|
|
|
|
|
|
|
|
|
|
CLR bit |
|
|
|
|
|
|
|
1 1 0 0 0 0 1 0 |
|
bit |
|||
|
|
|
|
|
|
|
Команда "сброс бита" сбрасывает (обнуляет) содержимое бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных (РПД) или регистров специальных функций,
допускающей побитовое обращение. Команда на состояние не используемых флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм
(bit) 0
CPL A
Команда "инверсия аккумулятора" инвертирует содержимое каждого бита аккумулятора A, на состояние флагов не влияет и имеет время выполнения 1
цикл.
71