Алгоритм

Пример

(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