Дата последнего обновления файла 7.11.2009

Описание машинных команд микроконтроллеров семейства 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

Литература:

  1. В.В. Сташин А.В. Урусов О.Ф. Мологонцева Е. П. Проектирование цифровых устройств на однокристальных микроконтроллерах 1990.

Вместе со статьей "Описание машинных команд микроконтроллеров семейства MCS-48 (1816ВЕ48)" читают:

Состав семейства MCS-48
http://digteh.ru/MCS48/tablms.php


Автор Микушин А. В. All rights reserved. 2001 ... 2017

Предыдущие версии сайта:
http://neic.nsk.su/~mavr
http://digital.sibsutis.ru/

Поиск по сайту сервисом Яндекс

Поиск по сайту сервисом ГУГЛ

пЕИРХМЦ@Mail.ru


Rambler's Top100