Приложение 1. Система команд ассемблера HCS08

(Руководство разработчика по микроконтроллерам семейства HCS08)

Система команд CPU08 включает 94 команды. Длина кода команды в байтах определяется типом команды и способом адресации. Команды CPU08 могут иметь однобайтный, двухбайтный, трехбайтный и четырехбайтный формат. Однобайтными командами в соответствие с теорией являются команды с неявной адресацией (INH) и с индексной адресацией без смещения (IX). В двухбайтном формате представлены команды с непосредственной (IMM), прямой (DIR) и индексной с однобайтным смещением (IX1) адресацией. Трехбайтный формат имеют команды с прямой расширенной адресацией (EXT), индексной адресацией со смещением на два байта (IX2) и адресацией по указателю стека со смещением на один байт (SP1). Четырехбайтными командами являются только команды с адресацией по указателю стека со смещением в два байта (SP2).

Далее приведен полный перечень команд ассемблера процессорного ядра HCS08. Для каждой команды указан синтаксис записи для каждого из доступных способов адресации. В Ассемблерах от компании Freescale Semiconductor принято шестнадцатеричный код обозначать префиксом $. Поэтому именно это обозначение использовано в колонке «Выполняемое действие». Символ «(» в колонке признаков означает, что данная команда устанавливает отмеченный признак, но значение признака (0 или 1) определяется кодом результата команды.

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

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
LDA
LDA #opr
LDA opr
LDA opr
LDA opr,x
LDA opr,x
LDA ,x
LDA opr,SP
LDA opr,SP

Загрузить в АСС константу или содержимое ячейки памяти


A ( (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


LDX
LDX #opr
LDX opr
LDX opr
LDX opr,x
LDX opr,x
LDX ,x
LDX opr,SP
LDX opr,SP

Загрузить в регистр Х константу или содержимое ячейки памяти


X ( (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


LDHX
LDHX #opr
LDHX opr
LDНX opr
LDНX opr,x
LDНX opr,x
LDНX ,x
LDНX opr,SP
Загрузить в индексный регистр Н:X двухбайтную константу или содержимое двух ячеек памяти
H:X ((M:M+$0001)

IMM
DIR
EXT
IX2
IX1
IX
SP1

0



(

(

STA
STA opr
STA opr
STA opr,X
STA opr,X
STA ,X
STA opr,SP
STA opr,SP

Запомнить содержимое аккумулятора АCC в ячейке памяти


M ( (A)

DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


STX
STX opr
STX opr
STX opr,X
STX opr,X
STX ,X
STX opr,SP
STX opr,SP

Запомнить содержимое регистра X в ячейке памяти


M ( (X)

DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


STHX
STHX opr
STHX opr
STНX opr,SP

Запомнить содержимое индексного регистра H:X в двух ячейках памяти

(M:M+$0001) ( (H:X)

DIR
EXT
SP1

0



(

(

MOV
MOV opr1,opr2
MOV #opr1,opr2
MOV opr1,X+
MOV X+,opr2

Переслать данные из одной ячейки памяти в другую

(M)opr2 ( (M)opr1
H:X ( (H:X)+$0001 в двух последних командах

DIR и DIR
IMD и DIR
DIR и IX+
IX+ и DIR

0



(

(

TAXПереслать содержимое аккумулятора АСС в регистр ХX ( (A)INH
TXAПереслать содержимое регистра Х в аккумулятор АССA ( (X)INH
TAPПереслать содержимое аккумулятора АСС в регистр признаков CCR
CCR ( (A)
INH((((((
TPAПереслать содержимое регистра признаков в аккумулятор АССA ( (CCR)INH
TSXПереслать увеличенное на 1 содержимое указателя стека SP в индексный регистр H:XH:X ( (SP)+$0001INH
TXSПереслать уменьшенное на 1 содержимое индексного регистра H:X в указатель стека SP(SP) ( (H:X)–$0001INH

Арифметические команды

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
ADD
ADD #opr
ADD opr
ADD opr
ADD opr,X
ADD opr,X
ADD ,X
ADD opr,SP
ADD opr,SP

Сложить содержимое аккумулятора АСС с байтом данных памяти М (или константой). Результат поместить в АСС


A ( (A) + (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(


(




(


(


(
ADC
ADC #opr
ADC opr
ADC opr
ADC opr,X
ADC opr,X
ADC ,X
ADC opr,SP
ADC opr,SP

Сложить содержимое аккумулятора АСС с байтом данных памяти М (или константой) и значением бита переноса С. Результат поместить в АСС


A ( (A) + (M) + (С)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(


(




(


(


(
SUB
SUB #opr
SUB opr
SUB opr
SUB opr,X
SUB opr,X
SUB ,X
SUB opr,SP
SUB opr,SP

Вычесть байт данных памяти М (или константу) из содержимого аккумулятора АСС. Результат поместить в АСС


A ( (A) – (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(






(


(


(
SBC
SBC #opr
SBC opr
SBC opr
SBC opr,X
SBC opr,X
SBC ,X
SBC opr,SP
SBC opr,SP

Вычесть байт данных памяти М (или константу) и бит переноса С из аккумулятора АСС. Результат поместить в АСС


A ( (A) – (M) – (С)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(






(


(


(
MULУмножить содержимое АСС на содержимое регистра Х. Произведение представлено в двухбайтном формате. Старший байт содержится в регистре Х, младший байт — в АСС
X:A ( (X) ( (A)

INH


0




0
DIVРазделить двухбайтное делимое на однобайтный делитель. Старший байт делимого находится в регистре Н, младший байт — в АСС. Однобайтный делитель находится в регистре Х. Целое частное помещается в АСС, остаток от деления — в регистр Н

A ( (H:A)/(X)
H ( Остаток


INH










(


(
CMP
CMP #opr
CMP opr
CMP opr
CMP opr,X
CMP opr,X
CMP ,X
CMP opr,SP
CMP opr,SP

Сравнить содержимое аккумулятора АСС с байтом памяти М (или константой). По результату сравнения установить признаки. Содержимое АСС и ячейки памяти М после операции не изменяется


(A) – (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(






(


(


(
CPX
CPX #opr
CPX opr
CPX opr
CPX ,X
CPX opr,X
CPX opr,X
CPX opr,SP
CPX opr,SP

Сравнить содержимое регистра Х с байтом памяти М (или константой). По результату сравнения установить признаки. Содержимое регистра Х и ячейки памяти М после операции не изменяется


(Х) – (М)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


(






(


(


(
CPHX
CPHX #opr
CPHX opr
CPHX opr
CPНX opr,SP
Сравнить содержимое индексного регистра H:X с двухбайтной константой или содержимым двух ячеек памяти М:М+1. По результату сравнения установить признаки. Содержимое H:X и ячеек памяти после операции не изменяется
(H:X) – (M:M+$0001)

IMM
DIR
EXT
SP1


(






(


(


(
INC
INC opr
INCA
INCX
INC opr,X
INC ,X
INC opr,SP

Увеличить на 1 содержимое аккумулятора АСС, регистра Х, ячейки памяти М

M ( (M) + $01
A ( (A) + $01
X ( (X) + $01
M ( (M) + $01
M ( (M) + $01
M ( (M) + $01

DIR
INH
INH
IX1
IX
SP1


(






(


(


DEC
DEC opr
DECA
DECX
DEC opr,X
DEC ,X
DEC opr,SP

Уменьшить на 1 содержимое аккумулятора АСС, регистра Х, ячейки памяти М

M ( (M) – $01
A ( (A) – $01
X ( (X) – $01
M ( (M) – $01
M ( (M) – $01
M ( (M) – $01

DIR
INH
INH
IX1
IX
SP1


(






(


(


DAAДесятичная коррекция содержимого аккумулятора(A)10INH(((
AIX
AIX #opr
Сложить содержимое индексного регистра Н:Х с однобайтной константой, представленной в дополнительном коде со знаком. Результат поместить в Н:Х
H:X ( (H:X) + #opr

IMM






AIS
AIS #opr
Сложить содержимое указателя стека SP и однобайтной константой, представленной в дополнительном коде со знаком. Результат поместить в SP
SP ( (SP) + #opr

IMM







Логические команды

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
AND
AND #opr
AND opr
AND opr
AND opr,X
AND opr,X
AND ,X
AND opr,SP
AND opr,SP

Побитовое логическое И над содержимым аккумулятора АСС и байтом данных М. Результат поместить в АСС


A ( (A) & (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


ORA
ORA #opr
ORA opr
ORA opr
ORA opr,X
ORA opr,X
ORA ,X
ORA opr,SP
ORA opr,SP

Побитовое логическое ИЛИ над содержимым аккумулятора АСС и байтом данных М. Результат поместить в АСС


A ( (A) ( (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


EOR
EOR #opr
EOR opr
EOR opr
EOR opr,X
EOR opr,X
EOR ,X
EOR opr,SP
EOR opr,SP

Побитовое Исключающее ИЛИ над содержимым аккумулятора АСС и байтом данных. Результат поместить в АСС


A ( (A M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


COM
COM opr
COMA
COMX
COM opr,X
COM ,X
COM opr,SP

Инверсия содержимого аккумулятора АСС или регистра Х или ячейки памяти М

M ( (M)=$FF–(M)
A ( (A)=$FF–(M)
X ( (X)=$FF–(M)
M ( (M)=$FF–(M)
M ( (M)=$FF–(M)
M ( (M)=$FF–(M)

DIR
INH
INH
IX1
IX
SP1


0






(


(


1
NEG
NEG opr
NEGA
NEGX
NEG opr,X
NEG ,X
NEG opr,SP

Получение дополнительного кода содержимого аккумулятора АСС или регистра Х или ячейки памяти М

M ( –(M)=$00–(M)
A ( –(A)=$00–(A)
X ( –(X)=$00–(X)
M ( –(M)=$00–(M)
M ( –(M)=$00–(M)

DIR
INH
INH
IX1
IX
SP1


(






(


(


(
CLR
CLR opr
CLRA
CLRX
CLRH
CLR opr,X
CLR ,X
CLR opr,SP

Очистить (сбросить в 0) аккумулятор АСС или регистр Х или регистр Н или ячейку памяти М

M ( $00
A ( $00
X ( $00
H ( $00
M ( $00
M ( $00
M ( $00

DIR
INH
INH
INH
IX1
IX
SP1


0






0


1


BIT
BIT #opr
BIT opr
BIT opr
BIT opr,X
BIT opr,X
BIT ,X
BIT opr,SP
BIT opr,SP

Выполняет операцию побитового логического И над содержимым аккумулятора АСС и байтом памяти М. Результат операции никуда не записывается. По результату операции устанавливаются признаки N и Z


(A) & (M)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2


0






(


(


TST
TST opr
TSTA
TSTX
TST opr,X
TST ,X
TST opr,SP

Устанавливает признаки N и Z по содержимому аккумулятора АСС или регистра Х или ячейки памяти М. Содержимое последних не изменяется

(A) – $00
(X) – $00
(M) – $00

DIR
INH
INH
IX1
IX
SP1


0






(


(


NSAПоменять местами тетрады (полубайты) аккумулятора АССA ( (A[3:0]:A[7:4])INH

Команды сдвига

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
ASL
ASL opr
ASLA
ASLX
ASL opr,X
ASL ,X
ASL opr,SP

Арифметический сдвиг влево содержимого аккумулятора ACC или регистра Х или байта памяти М. В бит b0 загружается 0, бит b7 загружается в бит переноса С

DIR
INH
INH
IX1
IX
SP1


(






(


(


(
ASR
ASR opr
ASRA
ASRX
ASR opr,X
ASR opr,X
ASR opr,SP

Арифметический сдвиг вправо содержимого аккумулятора АCC или регистра Х или байта памяти М. Бит b7 не изменяется, бит b0 загружается в бит переноса С

DIR
INH
INH
IX1
IX
SP1


(






(


(


(
LSL
LSL opr
LSLA
LSLX
LSL opr,X
LSL ,X
LSL opr,SP
Логический сдвиг влево содержимого аккумулятора АCC или регистра Х или байта памяти М. В бит b0 загружается 0, бит b7 загружается в бит переноса С (аналог ASL)
DIR
INH
INH
IX1
IX
SP1


(






(


(


(
LSR
LSR opr
LSRA
LSRX
LSR opr,X
LSR ,X
LSR opr,SP

Логический сдвиг вправо содержимого аккумулятора АCC или регистра Х или байта памяти М. В бит b7 загружается 0, бит b0 загружается в бит переноса С

DIR
INH
INH
IX1
IX
SP1


(






0


(


(
ROL
ROL opr
ROLA
ROLX
ROL opr,X
ROL ,X
ROL opr,SP

Циклический сдвиг влево содержимого аккумулятора АCC или регистра Х или байта памяти М через бит переноса С

DIR
INH
INH
IX1
IX
SP1


(






(


(


(
ROR
ROR opr
RORA
RORX
ROR opr,X
ROR ,X
ROR opr,SP

Циклический сдвиг вправо содержимого аккумулятора АCC или регистра Х или байта памяти М через бит переноса С

DIR
INH
INH
IX1
IX
SP1


(






(


(


(

Команды битового процессора

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
BSET
BSET n, opr

Установить в 1 бит с номером n в байте данных. Данные могут располагаться в ячейке ОЗУ или регистре специальных функций. В команде используется только прямая адресация. Диапазон адресов байтов данных $00($FF


Mn ( 1

DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)












BCLR
BCLR n, opr

Сбросить в 0 бит с номером n в байте данных. Данные могут располагаться в ячейке ОЗУ или регистре специальных функций. В команде используется только прямая адресация. Диапазон адресов байтов данных $00($FF


Mn ( 0

DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)












SECУстановить бит переноса С в 1C ( 1INH1
CLCСбросить бит переноса С в 0C ( 0INH0
SEIУстановить в 1 глобальную маску прерываний I. Запретить прерыванияI ( 1INH1
CLIУстановить в 0 глобальную маску прерываний I. Разрешить прерыванияI ( 0INH0

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

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
Команды безусловного перехода
JMP
JMP opr
JMP opr
JMP opr,X
JMP opr,X
JMP ,X
Безусловный переход по адресу, указанному в ячейке памяти (ОЗУ или ПЗУ). Адрес ячейки задан используемым в команде способом адресации
PC ( код адреса

DIR
EXT
IX2
IX1
IX












BRA
BRA rel
Безусловный переход по адресу, код смещения которого указан во втором байте команды
PC ( (PC) + $0002 + rel

REL






BRN
BRN rel
Перейти к следующей команде. Эквивалентна двум командам NOP. Полезна в режиме отладки в абсолютном коде для замены команд условного перехода без изменения абсолютных адресов

PC ( (PC) + $0002


REL












NOPПустая операция. Счетчик команд PC увеличивается на 1. Другие регистры не изменяются
Нет

INH






Команды ветвления
BCS
BCS rel
Перейти по метке, если бит переноса С установлен. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (С) = 1

REL






BCC
BCC rel
Перейти по метке, если бит переноса С сброшен. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (С) = 0

REL






BEQ
BEQ rel
Перейти по метке, если r = m. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (Z) = 1

REL






BNE
BNE rel
Перейти по метке, если r ( m. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (Z) = 0

REL






BHCS
BHCS rel
Перейти по метке, если бит дополнительного переноса H установлен. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (H) = 1

REL






BHCC
BHCC rel
Перейти по метке, если бит дополнительного переноса H сброшен. Иначе перейти к следующей команде
PC ( (PC) + $0002 + rel,
если (H)=0

REL






CBEQ
CBEQ opr,rel
CBEQA #opr,rel
CBEQX #opr,rel
CBEQ opr,X+,rel
CBEQ X+,rel
CBEQ opr,SP,rel

Сравнить содержимое аккумулятора ACC или регистра Х с содержимым ячейки памяти M (или константой) и перейти по метке, если они равны

PC ( (PC)+$0003+rel,
если (A)–(M)=$00
PC ( (PC)+$0003+rel,
если (A)–(M)=$00
PC ( (PC)+$0003+rel,
если (X)–(M)=$00
PC ( (PC)+$0003+rel,
если (A)–(M)=$00
PC ( (PC)+$0002+rel,
если (A)–(M)=$00
PC ( (PC)+$0004+rel,
если (A)–(M)=$00

DIR
IMM
IMM
IX1+
IX+
SP1












DBNZ
DBNZ opr,rel
DBNZA rel
DBNZX rel
DBNZ opr,X,rel
DBNZ X,rel
DBNZ opr,SP,rel

Вычесть единицу из содержимого ячейки памяти M или аккумулятора ACC или регистра X и перейти по метке, если результат не равен 0
A((A)–$01 или M((M)–$01 или X((X)–$01,
PC((PC)+$0003+rel, если (result)(0 для DBNZ DIR и IX1
PC((PC)+$0002+rel если (result)(0 для DBNZA, DBNZX и IX
PC((PC)+$0004+rel, если (result) (0 для DBNZ SP1

DIR
INH
INH
IX1
IX
SP1












BIH
BIH rel
Перейти по метке, если на входе IRQ ВЫСОКИЙ логический уровень. Иначе перейти к следующей команде
PC((PC) + $0002 + rel,
если IRQ=1

REL






BIL
BIL rel
Перейти по метке, если на входе IRQНИЗКИЙ логический уровень. Иначе перейти к следующей команде
PC((PC) + $0002 + rel,
если IRQ =0

REL






BMS
BMS rel
Перейти по метке, если бит маски I установлен. Иначе перейти к следующей команде. Условие: I = 1
PC((PC) + $0002 + rel,
если (I)=1

REL






BMC
BMC rel
Перейти по метке, если бит маски I сброшен. Иначе перейти к следующей команде. Условие: I = 0
PC((PC) + $0002 + rel,
если (I)=0

REL






BRSET
BRSET n, opr, rel
Перейти по указанному адресу, если бит n в байте данных установлен. Иначе перейти к следующей команде. Для указания байта данных используется только прямая адресация. Диапазон адресов $00 ( $FF

PC ( (PC) + $0003 + rel,
если (Mn) = 1

DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)












(
BRCLR
BRCLR n, opr, rel
Перейти по указанному адресу, если бит n в байте данных равен 0. Иначе перейти к следующей команде. Для указания байта данных используется только прямая адресация. Диапазон адресов $00 ( $FF

PC ( (PC) + $0003 + rel,
если (Mn) = 0

DIR (b0)
DIR (b1)
DIR (b2)
DIR (b3)
DIR (b4)
DIR (b5)
DIR (b6)
DIR (b7)












(
Команды ветвления при сравнении чисел без знака
BHI
BHI rel
Перейти по метке, если r > m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (C) & (Z) =0

REL






BHS
BHS rel
Перейти по метке, если r ( m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (C)=0

REL






BLO
BLO rel
Перейти по метке, если r < m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (C)=1

REL






BLS
BLS rel
Перейти по метке, если r ( m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel
(C) ( (Z) =1

REL






Команды ветвления при сравнении чисел со знаком
BPL
BPL rel
Перейти по метке, если бит знака установлен в 0, т.е число положительное. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (N) =0

REL






BMI
BMI rel
Перейти по метке, если бит знака установлен в 1, т.е число отрицательное. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (N) =1

REL






BGE
BGE rel
Перейти по метке, если r ( m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (N ( V)=0

REL






BGT
BGT rel
Перейти по метке, если r > m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (Z) & (N ( V)=0

REL






BLE
BLE rel
Перейти по метке, если r ( m. Иначе перейти к следующей команде
PC ( (PC) +$0002 + rel,
если (Z)( (N(V)=1

REL






BLT
BLT rel
Перейти по метке, если r < m. Иначе перейти к следующей команде
PC ( (PC)+$0002 + rel,
если (N(V)=1

REL







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

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
JSR
JSR opr
JSR opr
JSR opr,X
JSR opr,X
JSR ,X

Вызов подпрограммы. Адрес подпрограммы хранится в ячейке памяти (ОЗУ или ПЗУ). Адрес ячейки задан используемым в команде способом адресации
PC = PC + n,
где n = 1,2,3
в зависимости от способа адресации. (SP) ( PCL
SP = SP – 1
(SP) ( PCH
SP = SP – 1
PC ( адрес подпрограммы

DIR
EXT
IX2
IX1
IX












BSR
BSR rel

Вызов подпрограммы, записанной по адресу, код смещения которого указан во втором байте команды
PC = PC +$0002
(SP) ( PCL
SP = SP – 1
(SP) ( PCH
SP = SP – 1
PC = PC + rel, где
rel — код смещения

REL






CALL
CALL page,opr

Вызов подпрограммы, записанной по адресу, который располагается в расширенном адресном пространстве, превышающем 64КБ
PC = PC +$0004
(SP) ( PCL
SP = SP – 1
(SP) ( PCH
SP = SP – 1
(SP) ( PPAGE
SP = SP – 1
PPAGE=page
PC = opr

EXT






SWIПрограммное прерывание.
Счетчик команд загружается вектором программного прерывания из ячеек памяти $FFFC и $FFFD. Предварительно в стек загружаются регистры в том же порядке, если бы прерывание было вызвано на аппаратном уровне по запросу какого-либо устройства
PC = PC +$0001
(SP) ( PCL
SP = SP – 1
(SP) ( PCH
SP = SP – 1
(SP) ( X
SP = SP – 1
(SP) ( A
SP = SP – 1
(SP) ( CCR
SP = SP – 1
I = 1, установка глобальной маски прерывания
PCH ( ($FFFC)
PCH ( ($FFFD)

INH



1



RTSВозврат из подпрограммы.
Адрес возврата загружается из стека в счетчик команд
SP = SP + 1,
PCH ( (SP)
SP = SP + 1,
PCL ( (SP)

INH






RTCВозврат из подпрограммы, которая была вызвана командой CALLSP = SP + 1,
PPAGE ( (SP)
SP = SP + 1,
PCH ( (SP)
SP = SP + 1,
PCL ( (SP)

INH






RTIВозврат из прерывания.
Восстанавливается содержимое регистров CPU и счетчика команд
SP = SP + 1
CCR ( (SP)
SP = SP + 1
A ( (SP)
SP = SP + 1
X ( (SP)
SP = SP + 1
PCH ( (SP)
SP = SP + 1
PCL ( (SP)

INH

(

(

(

(

(

(
RSPУстановить регистр-указатель стека в состояние $FFSP ( $FFINH
PSHAЗагрузить аккумулятор ACC в стекPush (A);
SP ( (SP) – $0001
INH
PSHHЗагрузить старший байт индексного регистра H в стекPush (H);
SP ( (SP) – $0001
INH
PSHXЗагрузить младший байт индексного регистра X в стекPush (X);
SP ( (SP) – $0001
INH
PULAВосстановить аккумулятор ACC из стекаSP ( (SP+$0001); Pull (A)INH
PULHВосстановить старший байт индексного регистра H из стекаSP ( (SP+$0001); Pull (H)INH
PULXВосстановить младший байт индексного регистра X из стекаSP ( (SP+$0001); Pull (X)INH

Команды перехода к режимам пониженного энергопотребления и в режим отладки

МнемокодОперацияВыполняемое действиеСпособ адресацииВлияние на признаки
VHINZC
WAITПереводит МК в режим ожидания (Wait).Бит I ( 0INH0
STOPПереводит МК в режим останова (Stop).Бит I ( 0; StopINH0
BKGDПереводит МК в режим отладкиМК ожидает поступления команд отладки по однопроводному интерфейсуINH0

Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>