Команды передачи управления

Команды пересылки данных

Команды пересылки обеспечивают передачу данных между ресурсами микроконтроллера. Состояние флагов не изменяют.

Команда MOVработает с внутренней памятью данных.

Mov A,Rn Mov A,Direct Mov A,@Rii=0,1 Mov A,#Data Mov Rn,A Mov Rn,Direct Mov Rn,#Data Mov Direct,A Mov Direct,Rn Mov Direct1, Direct2 Mov Direct,@Rii=0,1 Mov Direct,#Data Mov @Ri,A,i=0,1 Mov @Ri,Directi=0,1 Mov @Ri,#Datai=0,1 Mov Dptr,#Data (A)=(Rn) (A)=(Direct) (A)=((Ri)) (A)=(#Data) (Rn)=(A) (Rn)=(Direct) (Rn)=(#Data) (Direct)=(A) (Direct)=(Rn) (Direct1)=(Direct2) (Direct)=((Ri)) (Direct)=(#Data) ((Ri))=(A) ((Ri))=(Direct) ((Ri))=(#Data) (Dptr)=(#Data)

Команда MOVC пересылает в аккумулятор байт из памяти программ. Адрес ячейки вычисляется.

Movc A,@A+Dptr Movc A,@A+PC (A)=((A)+(Dptr)) (A)=((A)+(PC))

 

Команда MOVX пересылает в аккумулятор байт из внешней памяти данных или из аккумулятора во внешнюю память данных. Адрес в регистре Dptr

Movx A,@Dptr Movx @Dptr,A (A)=((Dptr)) ((Dptr))=(A)

 

Команда записи в стек

Пересылает в стек содержимое регистра специального назначения или ячейки памяти. Состояние флагов не изменяет.

Push Direct (SP)=(SP)+1 ((SP))=(Direct)

Команда чтения из стека

Считывает байт из стека в регистр специального назначения или ячейку памяти. Состояние флагов не изменяет.

Pop Direct (Direct)=((SP)) (SP)=(SP)-1

Команды безусловного перехода

Передает управление на команду, обозначенную меткой Met. Состояние флагов не изменяет.

Ajmp Met Sjmp Met Ljmp Met Адрес перехода должен находиться внутри одной страницы объемом 2Кбайт Адрес перехода должен находиться в диапазоне от –128 до +127 байт от команды перехода Передача управления в диапазоне всей памяти программ

 

Команды перехода на подпрограмму

Передает управление подпрограмме с именем Name. Состояние флагов не изменяет.

Acall Name Scall Name Lcall Name Адрес перехода должен находиться внутри одной страницы объемом 2Кбайт Адрес перехода должен находиться в диапазоне от –128 до +127 байт от команды перехода Передача управления в диапазоне всей памяти программ

Сравнение с переходом

Сравнить операнды и перейти на метку Met, если не равны. Изменяет состояние разряда С.

Cjne A,Direct,Met Cjne A,#Data,Met Cjne Rn,#Data,Met Cjne @Ri,#Data,Met i=0,1 (A)-(Direct)=0 ? (A)-(#Data) =0 ? (Rn)-(#Data) =0 ? ((Ri))-(#Data) =0 ?

Уменьшение на 1 с переходом

Уменьшить на 1 содержимое операнда. Если после этого оно не равно 0, то перейти на метку Met. Состояние флагов не изменяет.

Djnz Rn,Met Djnz Direct,Met  

 

Сравнение и переход, если аккумулятор не равен 0

Перейти на метку Met, если содержимое аккумулятора не равно 0. Состояние флагов не изменяет.

Jnz Met  

Сравнение и переход, если аккумулятор равен 0

Перейти на метку Met, если содержимое аккумулятора не равно 0. Состояние флагов не изменяет.

Jz Met  

Возврат из подпрограммы

Восстанавливает из стека ранее сохраненный адрес и обеспечивает передачу управления на него. Состояние флагов не изменяет.

Ret Reti Выход из подпрограммы Выход из подпрограммы обработки прерывания.