- •Микроконтроллер mc68hc908gp32 регистровая структура, способы адресации, команды пересылки
- •Структура микроконтроллераMc68hc908gp32
- •1.1. Общая структура микроконтроллера 68hc908gp32.
- •1.2. Организация и адресация памяти
- •1.3 Регистровая модель
- •1.4 Типы данных
- •2. Способы адресации
- •2.1 Команды пересылки
- •3. Создание программы в среде проектированияWinIdEи её ассемблирование
- •3.1. Интегрированная средаWinIde
- •3.2. Структура ассемблерной строки и ассемблерной программы
- •Упражнения
- •Варианты заданий: Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Пример составления программы:
- •Список литературы:
2.1 Команды пересылки
Команды пересылки (табл.2) осуществляют пересылку операндов между регистрами и ячейками памяти. Команды LDA, LDX, производящие загрузку операнда в регистрыA, X,используют все способы адресации, кроме относительного и индексного с пост-инкрементом. При записи содержимого регистровA, Xв память командамиSTA, STXне используется также непосредственная адресация. КомандаLDHXпозволяет записать в индексный регистрH:Xдвухбайтовый непосредственный операнд #Im, который содержится во втором и третьем байте команды, или загрузить в этот регистр содержимое двух рядом расположенных ячеек памяти. КомандаSTHXпроизводит запись содержимогоH:Xв две рядом расположенные ячейки памяти. При обращении к памяти в командахLDHX,STHXзадается адрес первой ячейки памяти с помощью 8-разрядной прямой адресации.
Таблица 2. Команды пересылки.
Мнемокод |
Команда |
Операция |
LDA (opr) |
Загрузка A |
M A |
LDX (opr) |
Загрузка X |
M X |
LDHX (opr) |
Загрузка H:X |
M:M H:X |
STA (opr) |
Запись A в память |
A M |
STX (opr) |
Запись X в память |
X M |
STHX (opr) |
Пересылка H:X в память |
H:X M:M |
MOV (opr),(opr) |
Пересылка «память-память» |
M1 M2 |
TAX |
Пересылка A в X |
A X |
TXA |
Пересылка X в A |
X A |
TAP |
Пересылка A в CCR |
A CCR |
TPA |
Пересылка CCR в A |
CCR A |
TSX |
Пересылка SP+1 в H:X |
SP+1 H:X |
TXS |
Пересылка H:X-1 в SP |
H:X -1 SP |
CLR (opr) |
Запись 0 в M |
$00 M |
CLRA |
Запись 0 в A |
$00 A |
CLRX |
Запись 0 в X |
$00 X |
CLRH |
Запись 0 в H |
$00 H |
NSA |
Перестановка тетрад в A |
(A7-4) <-> (A3-0) |
PSHA |
Запись A в стек |
A (SP), SP-1 SP |
PSHH |
Запись H в стек |
H (SP), SP-1 SP |
PSHX |
Запись X в стек |
X (SP), SP-1 SP |
PULA |
Загрузка A из стека |
SP+1 SP, (SP) A |
PULH |
Загрузка H из стека |
SP+1 SP, (SP) H |
PULX |
Загрузка X из стека |
SP+1 SP, (SP) X |
Команда MOV обеспечивает пересылку содержимого между двумя ячейками памяти. При этом возможны четыре варианта выполнения команды:
MOV #Im, addr8- пересылка непосредственного операнда Im в прямо адресуемую ячейку памяти;
MOV addr8-s, addr8-d- пересылка между двумя прямо адресуемыми ячейками памяти: источником (адрес addr8-s) и приемником (адрес addr8-d);
MOV addr8, X+- пересылка содержимого прямо адресуемой ячейки в ячейку, адресуемую с помощью регистраH:X, после пересылки производится инкремент содержимогоH:X;
MOV X+, addr8- пересылка содержимого ячейки, адресуемой с помощью регистраH:X, в прямо адресуемую ячейку памяти; после пересылки производится инкремент содержимогоH:X.
Во всех вариантах команды MOVиспользуется только 8-рязрядная прямая адресация.
Команды TAX, TXA выполняют пересылку операндов между регистрамиA и X. КомандыTAP и TPAпозволяют соответственно считать в аккумулятор содержимое регистра признаковCCR для последующего анализа или сохранения и загрузить в этот регистр новое содержимое из аккумулятора.
К этой же группе относятся команды CLRA, CLRX, CLRH, CLR (opr), производящие запись 0 в регистрыA, X, Hи ячейку памяти. В командеCLR (opr) могут использоваться следующие способы адресации: индексная, индексная по указателю стека с 8-разрядным смещением или прямая с 8-разрядным адресом.
Команда NSAменяет местами старшую (биты A7-4) и младшую (биты A3-0) тетрады содержимого аккумулятора.
Отдельную подгруппу составляют команды сохранения в стеке содержимого регистров A, H, Xи загрузки этих регистров из стека. Команды сохраненияPSHA, PSHH, PSHX пересылают содержимое соответствующих регистров в ячейку памяти, адресуемую содержимым регистраSP, затем содержимое этого регистра уменьшается на 1, адресуя следующую свободную ячейку стека. Команды загрузки увеличивают на 1 содержимоеSP, адресуя верхнюю заполненную ячейку стека, после чего содержимое ячейки загружается в соответствующий регистр.