Материал: kniga_mikroprotsessory

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
Пример
;(A)=55H, (C)=0
ADDC A,#55H ;(A)=0AAH, ;(AC)=0, (C)=0, (OV)=1
0 1 0 1 0 1 1 i

Алгоритм

(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

Пример
;(P1)=5EH=01011110B ;в РПД (28H)=31H
CLR P1.3 ;(P1)=56H=01010110B
CLR 40H ;(28H)=30H
1 1 1 1 0 1 0 0

Алгоритм

Пример

 

 

 

 

;(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

Источник: https://studfile.net/preview/15934500/