Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Система команд ассемблера HCS08.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
63.57 Кб
Скачать

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

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

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

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

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

Мнемокод

Операция

Выполняемое действие

Способ адресации

Влияние на признаки

V

H

I

N

Z

C

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:X

H:X ( (SP)+$0001

INH

TXS

Переслать уменьшенное на 1 содержимое индексного регистра H:X в указатель стека SP

(SP) ( (H:X)–$0001

INH