October 19 2017 19:13:23
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
СИСТЕМА КОМАНД МК СЕМЕЙСТВА НС08
МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА НС08

Система команд CPU08 включает 90 инструкций:

  1. 65 инструкций полностью совпадают с инструкциями процессора семейства НС05 фирмы Motorola, но имеют расширенные возможности адресации операндов.

  2. 25 инструкций характерны только для CPU08.


Табл. 3.6. Распределение команд ассемблера CPU08 по типовым группам

Группа команд Число команд в группе
Команды загрузки и пересылки 13
Арифметические команды 14
Логические команды и команды сдвигов 15
Команды битового процессора 6
Команды управления ходом вычислительного процесса 40
Команды перехода к режимам пониженного потребления 2

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

Множество команд делится на 6 традиционных групп, каждая из которых рассмотрена ниже. Распределение команд по группам приведено в Табл. 3.6.

3.3.1. КОМАНДЫ ЗАГРУЗКИ И ПЕРЕСЫЛКИ ДАННЫХ

Команды этой группы осуществляют перемещение данных между ячейками памяти и регистрами центрального процессора (Табл. 3.7). Отличительная особенность команд загрузки и пересылки CPU08 - установка признаков нуля Z и знака N в соответствие со значением перемещаемого числа. Следует также обратить внимание на способы адресации, которые могут быть использованы в команде LDHX: двухбайтовый регистр индексной адресации Н:Х может быть загружен:

• двухбайтовой константой;

• содержимым двух ячеек памяти, но на адрес первой из этих ячеек наложено ограничение. Этот адрес должен быть однобайтовым $00...$FF.

Команда MOV выполняет пересылку данных из одной ячейки памяти в другую, минуя регистры центрального процессора. Команда MOV может быть использована в одной из четырех модификаций:

MOV #data,adr   ;загрузить константу в прямо адресуемую ячейку памяти.

MOV adr1,adr2   ;переслать данные из одной прямо адресуемой ячейки

;памяти в другую прямо адресуемую.

MOV x+,adr       ;переслать данные из ячейки памяти, адрес ;которой указан в

;индексном регистре Н:Х, в прямо адресуемую ячейку

;памяти. Содержимое Н:Х увеличивается на 1 после

;пересылки.

MOV adr,x+       ;переслать данные из прямо адресуемой ячейки ;памяти в

;ячейку, адрес которой указан в индексном регистре Н:Х.

;Содержимое Н:Х увеличивается на 1 после пересылки.

Отметим, что одна из ячеек памяти (источник или приемник операнда) в формате команды обязательно прямо адресуемая, т.е. ее адрес может находиться в пределах от $00 до $FF. Именно это адресное пространство в МК семейства НС08 занимают регистры специальных функций периферийных модулей. Следовательно, команда MOV может быть органично использована для приема или передачи информации в регистры данных портов ввода/вывода, АЦП, последовательных портов и т.д. В частности, наличие именно этой команды позволяет организовать считывание группы последовательных измерений из модуля ADC08, который работает в режиме автоматического перезапуска и производит измерения с интервалом в 17 мкс (см. п. 3.9).

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

Мнемокод Операция Выполняемое действие Способ адресации Влияние на признаки
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

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

А¬(М)

IMM
DIR
ЕХТ
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 константу или содержимое ячейки памяти

Х¬(М)

IMM
DIR
EXT
IX2
IX1
IX
SP1
SP2




0




-




-



­
¯



­
¯




-
LDHX
LDHX #opr
LDHX opr
Загрузить в индексный регистр Н:Х двухбайтовую константу или содержимое двух ячеек памяти
Н:Х¬ (М:М+$0001)

IMM
DIR


0


-


-

­
¯

­
¯


-
STA
STA opr
STA opr
STA opr,X
STA opr,X
STA ,X STA opr,SP
STA opr.SP
Запомнить содержимое аккумулятора АСС в ячейке памяти
М¬(А)

DIR
EXT
IX2
IX1
IX
SP1
SP2




0




-




-



­
¯



­
¯




-
STX
SIX opr
STX opr
STX opr,X
STXopr,X STX ,X STX opr.SP
STXopr.SP
Запомнить содержимое регистра X в ячейке памяти
М¬(Х)

DIR
EXT
IX2
IX1
IX
SP1
SP2




0




-




-



­
¯



­
¯




-
STHX
STHX opr
Запомнить содержимое индексного регистра Н:Х в двух ячейках памяти
(М:М+$0001)¬(Н:Х)

DIR


0


-


-

­
¯

­
¯


-
MOV
MOV opr,opr
MOV opr,X+
MOV #opr,opr
MOVX +,opr
Прислать данные из одной ячейки памяти в другую (M)DESTINATION ¬ (M)SOURSE
Н:Х¬(Н:Х)+ $001 in IX+D and DIX+ Modes

DD
DIX+
IMD
IX+D



0



-



-


­
¯


­
¯



-
TAX

Прислать содержимое аккумулятора АСС в регистр X
Х¬(А)

INH

-

-

-

-

-

-
TXA

Переслать содержимое регистра X в аккумулятор АСС
А¬(Х)

INH

-

-

-

-

-

-
TAP

Переслать содержимое аккумулятора АСС в регистр признаков CCR
CCR¬(A)

INH

­
¯

­
¯

­
¯

­
¯

­
¯

­
¯
TPA

Переслать содержимое регистра признаков в аккумулятор АСС
A¬(CCR)

INH

-

-

-

-

-

-
TSX

Переслать увеличенное на 1 содержимое указателя стека SP в индексный регистр Н:Х
H:X¬(SP) + $0001

INH

-

-

-

-

-

-
TXS

Переслать уменьшенное на 1 содержимое индексного регистра Н:Х в указатель стека SP
(SP)¬(H:X)-$0001


INH

-

-

-

-

-

-

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.03 секунд 2,256,267 уникальных посетителей