Алгоритм | Пример |
(A):=(A)Ù(direct) | ;(A)=0A3H, (PSW)=85H ANL A, PSW ;(A)=81H,(PSW)=85H |
ANL A,#data8 | 0 1 0 1 0 1 0 0 | data8 |
Команда "логическое И" выполняет поразрядную конъюнкцию содержимого аккумулятора A с байтом данных data8, непосредственно указанным в команде. Результат размещается в A. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм | Пример |
(A):=(A)Ùdata8 | ;(A)=36H 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 цикла.
Алгоритм | Пример |
(direct):=(direct)Ùdata8 | ;(P1)=0FFH ANL P1,#73H ;(P1)=73H |
ANL C, bit | 1 0 0 0 0 0 1 0 | bit |
Команда "логическое И" выполняет конъюнкцию содержимого флага переноса C с содержимым бита, 8-разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных (РПД) или регистров специальных функций, допускающей побитовое обращение. Результат помещается в С. Содержимое используемого бита не изменяется. Команда на состояние других флагов не влияет и имеет время выполнения 2 цикла.
| Алгоритм | Пример | |
| (C):=(C)Ù(bit) | ;(C)=1, (P1[0])=0, ;в РПД (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 цикла.
Алгоритм | Пример |
(C):=(C) Ù | ;(C)=1, (AC)=0 ANL C,/AC ;(C)=1, (AC)=0 |
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), то (PC):=(PC)+3+rel и (C):=0 если (direct)>(A), то (PC):=(PC)+3+rel и (C):=1 если (direct)=(A), то (PC):=(PC)+3 и (C):=0 | ;(A)=97H, (P2)=0F0H, (C)=0, ;(PC)=3FFH, MT3 соответству- ;ет адресу 41FH, rel=1DH CJNE A, P2,MT3 ;(C)=1, ;(A)=97H, (P2)=0F0H, ;(PC)=41FH |
CJNE A,#data8,addr | 1 0 1 1 0 1 0 0 | data8 | rel |
Команда "сравнение и переход, если не равно" сравнивает содержимое аккумулятора A с байтом данных data8, непосредственно указанным в команде, и выполняет переход по адресу addr, если содержимое A не равно data8, в противном случае выполняется следующая команда. Процедура вычисления адреса перехода, влияние на (A) и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой. Флаг переноса C сбрасывается в "0", если содержимое A больше (равно) data8, в противном случае флаг устанавливается в "1".
Алгоритм | Пример |
если data8<(A), то (PC):=(PC)+3+rel и (C):=0 если data8>(A), то (PC):=(PC)+3+rel и (C):=1 если data8=(A), то (PC):=(PC)+3 и (C):=0 | ;(A)=0FCH, (C)=1, (PC)=3FFH, ;MT4 соответствует адресу ;3F0H, rel=0EEH CJNE A,#0BFH, MT4 ;(C)=0, ;(A)=0FCH, (PC)=3F0H |
CJNE Rn,#data8,addr | 1 0 1 1 1 r r r | data8 | rel |
где n=0-7 | где rrrB=000B-111B |
Команда "сравнение и переход, если не равно" сравнивает содержимое заданного регистра Rn выбранного банка с байтом данных data8, непосредственно указанным в команде, и выполняет переход по адресу addr, если содержимое Rn не равно data8, в противном случае выполняется следующая команда. Процедура вычисления адреса перехода и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой. Флаг переноса C сбрасывается в "0", если содержимое Rn больше (равно) data8, в противном случае флаг устанавливается в "1". Команда не влияет на (Rn).
Алгоритм | Пример |
если data8<(Rn), то (PC):=(PC)+3+rel и (C):=0 если data8>(Rn), то (PC):=(PC)+3+rel и (C):=1 если data8=(Rn), то (PC):=(PC)+3 и (C):=0 | ;(R7)=80H, (C)=0, (PC)=300H, ;MT5 соответствует адресу ;30FH, rel=0CH CJNE R7,#81H, MT5 ;(C)=1, ;(R7)=80H, (PC)=30FH |
CJNE @Ri,#data8,addr | 1 0 1 1 0 1 1 i | data8 | rel |
где iÎ{0,1} |
Команда "сравнение и переход, если не равно" сравнивает содержимое ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка, с байтом данных data8, непосредственно указанным в команде, и выполняет переход по адресу addr, если содержимое используемой ячейки не равно data8, в противном случае выполняется следующая команда. Процедура вычисления адреса перехода и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой. Флаг переноса C сбрасывается в "0", если содержимое используемой ячейки больше (равно) data8, в противном случае флаг устанавливается в "1". Команда не влияет на ((Ri)).
Алгоритм | Пример |
если data8<((Ri)), то (PC):=(PC)+3+rel и (C):=0 если data8>((Ri)), то (PC):=(PC)+3+rel и (C):=1 если data8=((Ri)), то (PC):=(PC)+3 и (C):=0 | ;(R0)=41H, (C)=1, (PC)=200H, ;в РПД (41H)=57H, ;MT6 соответствует адресу ;22AH, rel=27H CJNE @R0,#29H, MT6 ;(C)=0, ;(PC)=22AH, ;в РПД (41H)=57H |
CLR A | 1 1 1 0 0 1 0 0 |
Команда "сброс аккумулятора" сбрасывает (обнуляет) содержимое аккумулятора A, на состояние флагов не влияет и имеет время выполнения 1 цикл.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |


