Описание машинных команд микроконтроллеров семейства MCS-48 (продолжение)
JNI <адрес> - переход, если сигнал на ножке запроса прерывания равен нулю.
Описание: Если на ножке запроса прерывания сигнал равен нулю, то производится переход к указанному во втором
байте команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое проверяемого бита.
Пример: JNI LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (INT) = 0 THEN (PC0..7) = Address
Машинный код:
1 0 0 0 0 1 1 0
A d d r e s s
JNT0 <адрес> - переход, если сигнал ножке микроконтроллера T0 равен нулю.
Описание: Если на ножке микроконтроллера T0 сигнал равен нулю, то производится переход к указанному во втором
байте команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое проверяемого бита.
Пример: JNT0 LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (T0) = 0 THEN (PC0..7) = Address
Машинный код:
0 0 1 0 0 1 1 0
A d d r e s s
JNT1 <адрес> - переход, если бит переноса сброшен.
Описание: Если на ножке микроконтроллера T1 сигнал равен нулю, то производится переход к указанному во втором
байте команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги.
Пример: JNT1 LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (T1) = 0 THEN (PC0..7) = Address
Машинный код:
0 1 0 0 0 1 1 0
A d d r e s s
JNZ <адрес> - переход, если
содержимое аккумулятора не равно нулю.
Описание: Если любой бит аккумулятора равен единице, то производится переход к указанному во втором байте
команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое аккумулятора.
Пример: JNZ LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (A) <> 0 THEN (PC0..7) = Address
Машинный код:
1 0 0 1 0 1 1 0
A d d r e s s
JTF <адрес> - переход, если
содержимое аккумулятора не равно нулю.
Описание: Если флаг переполнения таймера установлен, то производится переход к указанному во втором байте
команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги.
Пример: JTF LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (A) <> 0 THEN (PC0..7) = Address
Машинный код:
0 0 0 1 0 1 1 0
A d d r e s s
JT0 <адрес> - переход, если бит переноса сброшен.
Описание: Если на ножке микроконтроллера T0 сигнал равен единице, то производится переход к указанному во
втором байте команды адресу. В противном случае выполняется следующая команда. Новое значение программного
счетчика при переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое проверяемого бита.
Пример: JT0 LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (T0) = 1 THEN (PC0..7) = Address
Машинный код:
0 0 1 1 0 1 1 0
A d d r e s s
JT1 <адрес> - переход, если бит переноса сброшен.
Описание: Если на ножке микроконтроллера T1 сигнал равен единице, то производится переход к указанному во
втором байте команды адресу. В противном случае выполняется следующая команда. Новое значение программного
счетчика при переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое проверяемого бита.
Пример: JT1 LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (T1) = 1 THEN (PC0..7) = Address
Машинный код:
0 1 0 1 0 1 1 0
A d d r e s s
JZ <адрес> - переход, если
содержимое аккумулятора не равно нулю.
Описание: Если все биты аккумулятора равны нулю, то производится переход к указанному во втором байте
команды адресу. В противном случае выполняется следующая команда. Новое значение программного счетчика при
переходе вычисляется соединением содержимого старших бит программного счетчика с вторым операндом (вторым
байтом команды). Таким образом осуществляется переход в пределах страницы размером в 256 байт. Если команда
окажется на границе двух страниц, то переход осуществляется в пределах страницы, где расположен второй байт
команды. Команда не воздействует на флаги и не изменяет содержимое аккумулятора.
Пример: JZ LABEL1
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
IF (A) = 0 THEN (PC0..7) = Address
Машинный код:
1 1 0 0 0 1 1 0
A d d r e s s
MOV <приемник>,<источник> - скопировать байтовую переменную.
Описание: переменная, указанная во втором операнде, копируется в ячейку, указываемую первым операндом. Байт
источник не изменяется. Другие регистры и флаги не изменяются. Для каждого операнда используется свой вид
адресации.
Команда допускает следующие виды адресации:
первый операнд -
неявная, второй операнд -
неявная адресация;
Пример: MOV A, PSW
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (PSW)
Машинный код:
1 1 0 0 0 1 1 1
Пример: MOV A, T
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (T)
Машинный код:
0 1 0 0 0 0 1 0
Пример: MOV PSW, A
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(PSW) = (A)
Машинный код:
1 1 0 1 0 1 1 1
Пример: MOV T, A
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(T) = (A)
Машинный код:
0 1 1 0 0 0 1 0
первый операнд -
неявная, второй операнд -
регистровая адресация;
Пример: MOV A, R3
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (Rn) , n=0,1,2,3,4,5,6,7
Машинный код:
1 1 1 1 1 r r r
первый операнд -
неявная, второй операнд -
косвенно-регистровая адресация;
Пример: MOV A, @R0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = ((Ri)) , i=0,1
Машинный код:
1 1 1 1 0 0 0 i
первый операнд -
неявная, второй операнд -
непосредственная адресация;
Пример: MOV A, #38h
Количество байт: 2
Количество циклов: 1
Действие команды:
(PC) = (PC) + 2
(A) = (data 8)
Машинный код:
0 0 1 0 0 0 1 1
i i i i i i i i
первый операнд -
регистровая, второй операнд -
неявная адресация;
Пример: MOV R3, A
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(Rn) = (A) , n=0,1,2,3,4,5,6,7
Машинный код:
1 0 1 0 1 r r r
первый операнд -
неявная, второй операнд -
непосредственная адресация;
Пример: MOV R3, #38h
Количество байт: 2
Количество циклов: 1
Действие команды:
(PC) = (PC) + 2
(Rn) = (data 8) , n=0,1,2,3,4,5,6,7
Машинный код:
1 0 1 1 1 r r r
i i i i i i i i
первый операнд -
косвенно-регистровая, второй операнд -
неявная адресация;
Пример: MOV @R0, A
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
((Ri)) = (A), i=0,1
Машинный код:
1 0 1 0 0 0 0 i
первый операнд -
косвенно-регистровая, второй операнд -
непосредственная адресация;
Пример: MOV @R0, #80
Количество байт: 2
Количество циклов: 1
Действие команды:
(PC) = (PC) + 2
((Rn)) = (data 8) , n=0,1,2,3,4,5,6,7
Машинный код:
1 0 1 1 0 0 0 i
i i i i i i i i
MOVD A,<источник> - считать порт микросхемы расширителя портов.
Описание: содержимое порта расширителя портов копируется в младшую тетраду аккумулятора. Старшая тетрада
обнуляется. Команда не воздействует на флаги. В обоих операндах используется
неявная адресация.
Пример: MOVD A, P4
Количество байт: 2
Количество циклов: 1
Действие команды:
(PC) = (PC) + 2
(A) = (Pp), p=4,5,6,7
Машинный код:
0 0 0 0 1 1 p p
MOVP A, @A - переслать байт из текущей страницы памяти программ в аккумулятор.
Описание: загружает аккумулятор константой из памяти программ. Адрес считываемого байта задаётся исходным
содержимым аккумулятора. Команда не воздействует на флаги.
Пример: MOVP A, @A
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC0..PC7) = (A)
(A) = ((PC))
Машинный код:
1 0 1 0 0 0 1 1
MOVP3 A, @A - переслать байт из третьей страницы памяти программ в аккумулятор.
Описание: загружает аккумулятор константой из памяти программ. Адрес считываемого байта задаётся исходным
содержимым аккумулятора. Команда не воздействует на флаги.
Пример: MOVP3 A, @A
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC0..PC7) = (A)
(PC8..PC11) = 0011
(A) = ((PC))
Машинный код:
1 1 1 0 0 0 1 1
MOVX <приемник>,<источник> - переслать байтовую переменную во внешнюю память (из внешней памяти)
Описание: пересылает данные между аккумулятором и байтом внешней памяти.
В первом случае регистр R0 или R1 текущего банка регистров обеспечивает 8- битный адрес, который
мультиплексируется с данными на выводах порта P0.
первый операнд -
неявная, второй операнд -
косвенно-регистровая адресация;
Пример: MOVX A, @R1 ;Скопировать данные из внешней памяти данных в аккумулятор
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC) = (PC) + 1
(A) = ((Ri)), i=0,1
Машинный код:
1 0 0 0 0 0 0 i
первый операнд -
косвенно-регистровая, второй операнд -
неявная адресация;
Пример: MOVX @R0, A ;Скопировать данные из аккумулятора во внешнюю память
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC) = (PC) + 1
((Ri)) = (A), i=0,1
Машинный код:
1 0 0 1 0 0 0 i
NOP - нет операции
Описание: Кроме программного счетчика не изменяет ни одного регистра, на флаги не воздействует.
Пример: NOP
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
Машинный код:
0 0 0 0 0 0 0 0
ORL <приемник>,<источник> - "логическое ИЛИ" для байтовых переменных
Описание: выполняет операцию побитового "логического ИЛИ" между указанными переменными.
Результат сохраняется в приемнике. Команда не воздействует на флаги.
Для команды ORL с аккумулятором в качестве байта назначения разрешены следующие режимы адресации байта -
источника:
первый операнд -
неявная, второй операнд -
регистровая адресация;
Пример: ORL A, R3
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (A) V (Rn) , n=0,1,2,3,4,5,6,7
Машинный код:
0 1 0 0 1 r r r
первый операнд -
неявная, второй операнд -
косвенно-регистровая адресация;
Пример: ORL A, @R0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (A) V ((Ri)), i=0,1
Машинный код:
0 1 0 0 0 0 0 i
первый операнд -
неявная, второй операнд -
непосредственная адресация;
Пример: ORL A, #100
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
(A) = (A) V (date 8)
Машинный код:
0 1 0 0 0 0 1 1
i i i i i i i i
Пример: ORL BUS, #100
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
(BUS) = (BUS) V (date 8)
Машинный код:
1 0 0 1 1 0 0 0
i i i i i i i i
Пример: ORL P1, #10010000b
Количество байт: 2
Количество циклов: 2
Действие команды:
(PC) = (PC) + 2
(Pp) = (Pp) V (date 8), p=1,2
Машинный код:
1 0 0 1 1 0 p p
i i i i i i i i
Примечание: при выполнении команды ORL над содержимым внешнего порта используется значение из внутреннего
регистра, а не данные, присутствующие на выводах микросхемы!
ORLD Pp, A - логическое ИЛИ между портом расширителя и аккумулятором.
Описание: выполняет операцию побитового "логического ИЛИ" между портом микросхемы расширителя
портов и аккумулятором. Результат сохраняется в порту. Команда не воздействует на флаги.
Пример: ORLD P5, A
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC) = (PC) + 1
(Pp) = (Pp) V (A0...A3)
Машинный код:
1 0 0 0 1 1 p p
OUTL BUS, A - стробируемый вывод данных из аккумулятора в порт BUS.
Описание: осуществляет стробируемый вывод данных из аккумулятора в порт BUS. Команда не воздействует
на флаги.
Пример: OUTL BUS, A
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC) = (PC) + 1
(BUS) = (A)
Машинный код:
0 0 0 0 0 0 1 0
OUTL Pp, A - стробируемый вывод данных из аккумулятора в порт.
Описание: осуществляет вывод данных через порт. Команда не воздействует на флаги.
Пример: OUTL Pp, A
Количество байт: 1
Количество циклов: 2
Действие команды:
(PC) = (PC) + 1
(Pp) = (A), p=1,2
Машинный код:
0 0 1 1 1 0 p p
RET - возврат из подпрограммы.
Описание: последовательно выгружает старший и младший байты счетчика команд из стека, уменьшая содержимое
указателя стека на 1. Выполнение программы продолжается с нового, только что загруженного в счетчик команд адреса.
Команда не воздействует на флаги.
Пример: RET
Количество байт: 1
Количество циклов: 2
Действие команды:
(SP) = (SP) - 1
(PC) = ((SP))
Машинный код:
1 0 0 0 0 0 1 1
RETR - возврат из подпрограммы обслуживания прерывания и восстановление слова состояния программы.
Описание: последовательно выгружает старший и младший байты счетчика команд из стека, уменьшая содержимое
указателя стека на 1. Кроме того, команда восстанавливает состояние логики прерываний, разрешая обработку
следующего прерывания. Выполнение программы продолжается с того же адреса, что был в программном счетчике (PC) до
начала обработки прерывания (следующий за командой, во время выполнения которой был обнаружен запрос на
прерывание). Команда не воздействует на флаги. Если к этому моменту обнаруживается новый запрос на прерывание, то
до нового вызова подпрограммы обслуживания прерывания выполняется одна команда из основной программы.
Пример: RETR
Количество байт: 1
Количество циклов: 2
Действие команды:
(SP) = (SP) - 1
(PC) = ((SP))
(PSW4...PSW7) = ((SP))
Машинный код:
1 0 0 1 0 0 1 1
RL A - сдвиг содержимого аккумулятора влево.
Описание: сдвигает восемь бит аккумулятора на один бит влево, бит 7 засылается на место бита 0. Команда не
воздействует на флаги.
Пример: RL A
Количество байт: 1
Количество циклов: 1
Действие команды:
(An+1) = (An) n=0..6
(A0) = (A7)
Машинный код:
1 1 1 0 0 1 1 1
RLC A - сдвиг содержимого аккумулятора влево через флаг переноса.
Описание: сдвигает восемь бит аккумулятора и флаг переноса на один бит влево. Содержимое флага переноса
помещается на место бита 0 аккумулятора, а содержимое бита 7 аккумулятора переписывается во флаг переноса. На
остальные флаги команда не воздействует.
Пример: RLC A
Количество байт: 1
Количество циклов: 1
Действие команды:
(An+1) = (An) n=0..6
(A0) = (C)
(C) = (A7)
Машинный код:
1 1 1 1 0 1 1 1
RR A - сдвиг содержимого аккумулятора вправо.
Описание: сдвигает восемь бит аккумулятора на один бит вправо, бит 0 засылается на место бита 7. Команда не
воздействует на флаги.
Пример: RR A
Количество байт: 1
Количество циклов: 1
Действие команды:
(An) = (An+1) n=0..6
(A7) = (A0)
Машинный код:
0 1 1 1 0 1 1 1
RRC A - сдвиг содержимого аккумулятора через флаг переноса.
Описание: сдвигает восемь бит аккумулятора и флаг переноса на один бит вправо. Содержимое флага переноса
помещается на место бита 7 аккумулятора, а содержимое бита 0 аккумулятора переписывается во флаг переноса. На
остальные флаги команда не воздействует.
Пример: RRC A
Количество байт: 1
Количество циклов: 1
Действие команды:
(An) = (An+1) n=0..6
(A7) = (C)
(C) = (A0)
Машинный код:
0 1 1 0 0 1 1 1
SEL MB0 - выбор нулевого банка памяти программ.
Описание: сбрасывает старший бит счетчика команд в нулевое состояние. Команда используется для выбора
нулевого банка памяти программ.
Пример: SEL MB0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(PC11) = 0
Машинный код:
1 1 1 0 0 1 0 1
SEL MB1 - выбор первого банка памяти программ.
Описание: устанавливает старший бит счетчика команд в 1. Команда используется для выбора первого банка
памяти программ.
Пример: SEL MB0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(PC11) = 1
Машинный код:
1 1 1 1 0 1 0 1
SEL RB0 - выбор нулевого банка памяти программ.
Описание: сбрасывает флаг выбора банков в нулевое состояние. Команда используется для выбора нулевого банка
регистров.
Пример: SEL RB0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(BS) = 0
Машинный код:
1 1 0 0 0 1 0 1
SEL RB1 - выбор нулевого банка памяти программ.
Описание: устанавливает флаг выбора банков в 1. Команда используется для выбора первого банка регистров.
Пример: SEL RB0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(BS) = 1
Машинный код:
1 1 0 1 0 1 0 1
STOP TCNT - остановить таймер-счетчик.
Описание: прекращает подачу импульсов на вход таймера-счетчика.
Пример: STOP TCNT
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
остановить таймер-счетчик
Машинный код:
0 1 1 0 0 1 0 1
STRT CNT - запустить счетчик.
Описание: разрешает подачу импульсов со входа микроконтроллера T1 на вход таймера-счетчика.
Пример: STRT CNT
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
запустить счетчик
Машинный код:
0 1 0 0 0 1 0 1
STRT T - запустить таймер.
Описание: разрешает подачу импульсов с выхода предделителя на вход таймера-счетчика.
Пример: STRT CNT
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
запустить таймер
Машинный код:
0 1 0 1 0 1 0 1
SWAP A - обмен тетрадами внутри аккумулятора.
Описание: команда осуществляет обмен между младшей (биты 0..3) и старшей (биты 4..7) тетрадами аккумулятора. (Тетрада
- это четырехбитная переменная). Команду можно интерпретировать как циклический сдвиг на четыре бита. Команда не
воздействует на флаги.
Пример: SWAP A
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A3..A0) <=> (A7..A4)
Машинный код:
0 1 0 0 0 1 1 1
XCH A,<байт> - обмен содержимого аккумулятора с переменной байтом.
Описание: команда загружает аккумулятор содержимым указанной переменной, в то же самое время первоначальное
содержимое аккумулятора заносится по указанному адресу. Команда не воздействует на флаги.
В команде допускается следующие виды адресации:
первый операнд -
неявная, второй операнд -
регистровая адресация;
Пример: XCH A, R7
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) <=> (Rn) , n=0,1,2,3,4,5,6,7
Машинный код:
0 0 1 0 1 r r r
первый операнд -
неявная, второй операнд -
косвенно-регистровая адресация;
Пример: XCH A, @R0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC)= (PC) + 1
(A) <=> ((Ri)) , i=0,1
Машинный код:
0 0 1 0 0 0 0 i
XCHD A, @Ri - обмен цифры.
Описание: команда осуществляет обмен между младшей (биты 0..3) тетрадой (тетрада это четырехбитная переменная)
аккумулятора, где обычно хранится двоично-десятичная цифра с тетрадой ячейки внутреннего ОЗУ. Используется
косвенно регистровая адресация. Старшие тетрады (биты 4..7) обоих операндов не изменяются. Команда не воздействует
на флаги.
Пример: XCHD A, @R0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A3..A0) <=> ((Ri3..Ri0)) , i=0,1
Машинный код:
0 0 1 1 0 0 0 i
XRL <байт приемник>,<байт источник> - исключающее ИЛИ для переменных байтов.
Описание: выполняет операцию побитового "исключающее логического ИЛИ" между указанными переменными.
Результат сохраняется в приемнике. Команда не воздействует на флаги.
Для команды XRL с аккумулятором в качестве байта назначения разрешены следующие режимы адресации:
первый операнд -
неявная, второй операнд -
регистровая адресация;
Пример: XRL A, R3
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (A) xor (Rn) , n=0,1,2,3,4,5,6,7
Машинный код:
1 1 0 1 1 r r r
первый операнд -
неявная, второй операнд -
косвенно-регистровая адресация;
Пример: XRL A, @R0
Количество байт: 1
Количество циклов: 1
Действие команды:
(PC) = (PC) + 1
(A) = (A) xor ((Ri)) , i=0,1
Машинный код:
1 1 0 1 0 0 0 i
первый операнд -
неявная, второй операнд -
непосредственная адресация;
Пример: XRL A, #100
Количество байт: 2
Количество циклов: 1
Действие команды:
(PC)= (PC) + 2
(A) = (A) xor (date 8)
Машинный код:
1 1 0 1 0 0 1 1
i i i i i i i i
Понравился материал? Поделись с друзьями!
Литература:
- В.В. Сташин А.В. Урусов О.Ф. Мологонцева Е. П. Проектирование цифровых устройств на однокристальных микроконтроллерах
1990.
Вместе со статьей "Описание машинных команд микроконтроллеров семейства MCS-48 (1816ВЕ48)" читают:
Состав семейства MCS-48
http://digteh.ru/MCS48/tablms.php
Автор Микушин А. В. All rights reserved. 2001 ... 2024