Алгоритм | Пример |
(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 |


