Алгоритм

Пример

(A):=((A)+(DPTR))

;(A)=01H, (DPTR)=30FFH,

;в ПП (3100H)=22H

MOVC A,@A+DPTR ;(A)=22H, ;(DPTR)=30FFH

MOVC A,@A+PC

1 0 0 0 0 0 1 1

Команда "переслать байт" загружает в аккумулятор A содержимое ячейки памяти программ (ПП), причем адрес используемой ячейки вычисляется как сумма исходного содержимого A и содержимого программного счетчика PC, которое увеличено на единицу. Таким образом, в указанной пересылке может участвовать любая ячейка из памяти программ объемом до 64 Кбайт. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.

Алгоритм

Пример

(A):=((A)+(PC)+1)

;(A)=11H, (PC)=2300H,

;в ПП (2312H)=44H

MOVC A,@A+PC ;(A)=44H,

;(PC)=2301H

MOVX A,@Ri ;где iÎ{0,1}

1 1 1 0 0 0 1 i

Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки внешней памяти данных (ВПД), адресуемой содержимым заданного регистра Ri выбранного банка, при этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 256 байт.

Алгоритм

Пример

(A):=((Ri)), где iÎ{0,1}

;(A)=0CCH, (R0)=44H,

;в ВПД (44H)=3EH

MOVX A,@R0 ;(A)=3EH, (R0)=44H,

;в ВПД (44H)=3EH

MOVX A,@DPTR

1 1 1 0 0 0 0 0

Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки внешней памяти данных (ВПД), адресуемой содержимым 16-битового указателя данных DPTR, при этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 64 Кбайт.

НЕ нашли? Не то? Что вы ищете?

Алгоритм

Пример

(A):=((DPTR))

;(A)=76H, (DPTR)=6D44H,

;в ВПД (6D44H)=88H

MOVX A,@DPTR ;(DPTR)=6D44H,

;(A)=88H, в ВПД (6D44H)=88H

MOVX @Ri, A ;где iÎ{0,1}

1 1 1 1 0 0 1 i

Команда "переслать байт" копирует содержимое аккумулятора A в ячейку внешней памяти данных (ВПД), адресуемую содержимым заданного регистра Ri выбранного банка. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 256 байт.

Алгоритм

Пример

((Ri)):=(A), где iÎ{0,1}

;(A)=0C6H, (R1)=22H,

;в ВПД (22H)=33H

MOVX @R1,A ;(A)=0C6H, (R1)=22H,

;в ВПД (22H)=0C6H

MOVX @DPTR, A

1 1 1 1 0 0 0 0

Команда "переслать байт" копирует содержимое аккумулятора A в ячейку внешней памяти данных (ВПД), адресуемую содержимым 16-битового указателя данных DPTR. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 64 Кбайт.

Алгоритм

Пример

((DPTR)):=(A)

;(A)=55H, (DPTR)=1234H,

;в ВПД (1234H)=11H

MOVX @DPTR, A ;(DPTR)=1234H,

;(A)=55H,

;в ВПД (1234H)=55H

MUL AB

1 0 1 0 0 1 0 0

Команда "умножение" умножает 8-битовую переменную из аккумулятора A на 8-битовую переменную из регистра B, при этом старший и младший байты произведения загружаются соответственно в B и A. Содержимое флага переноса C сбрасывается в "0". Содержимое флага переполнения OV устанавливается в "1" если результат умножения больше 0FFH, в противном случае - также сбрасывается. Содержимое флага AC не изменяется. Команда имеет время выполнения 4 цикла.

Алгоритм

Пример

(A)×(B)=data16

(A):=data16[7-0], (B):=data16[15-8]

(C):=0

если data16 £ 0FFH, то (OV):=0

если data16 > 0FFH, то (OV):=1

;(A)=50H=80, (B)=0A0H=160,

;(C)=1, (OV)=0

MUL AB ;(C)=0, (OV)=1,

;(A)=00H, (B)=32H

NOP

0 0 0 0 0 0 0 0

Команда "нет операции" увеличивает содержимое программного счетчика PC на единицу, при этом состояние всех остальных программно доступных элементов микроконтроллера не изменяется. Команда имеет время выполнения 1 цикл.

Алгоритм

Пример

(PC):=(PC)+1

;(PC)=1FFH

NOP

NOP ;(PC)=201H

ORL A, Rn ;где n=0-7

0 1 0 0 1 r r r

где rrrB=000B-111B

Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию содержимого аккумулятора A с содержимым заданного регистра Rn выбранного банка, помещая результат в A. Содержимое используемого регистра не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

Пример

(A):=(A)Ú(Rn), где n=0-7

;(A)=0FH, (R4)=0F3H

ORL A, R4 ;(A)=0FFH,

;(R4)=0F3H

ORL A,@Ri ;где iÎ{0,1}

0 1 0 0 0 1 1 i

Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

Пример

(A):=(A)Ú((Ri)), где iÎ{0,1}

;(A)=22H, (R0)=55H,

;в РПД (55H)=11H

ORL A,@R0 ;(A)=33H, (R0)=55H, ;в РПД (55H)=11H

ORL A, direct

0 1 0 0 0 1 0 1

direct

Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается в A. Содержимое используемой ячейки или используемого регистра не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

Пример

(A):=(A)Ú(direct)

;(A)=23H, (PSW)=14H

ORL A, PSW ;(A)=37H,

;(PSW)=14H

ORL A,#data8

0 1 0 0 0 1 0 0

data8

Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию содержимого аккумулятора A с байтом данных data8, непосредственно указанным в команде. Результат размещается в A. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

Пример

(A):=(A)Údata8

;(A)=36H

ORL A,#41H ;(A)=77H

ORL direct, A

0 1 0 0 0 0 1 0

direct

Команда "логическое ИЛИ" выполняет поразрядную дизъюнкцию содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр. Содержимое A не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22