Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory.doc
Скачиваний:
29
Добавлен:
18.03.2015
Размер:
1.51 Mб
Скачать

6) Система комманд и методы адрессации

Способы адресации. МК выполняет набор операций над операндами, размещенными в регистрах A, X и памяти. Команды имеют длину от 1 до 4 байтов. Для выборки операнда используются следующие способы адресации. Регистровая (операнд располагается в регистре A или X).

INCA; А+1→А

Непосредственная (8-разрядный операнд задается во втором байте команды).

Пример: сложить непосредственные данные #$03 и #$F1

LDA #$03;

ADD #$F1;

LDHX #$F100.

Прямая (8- или 16-разрядный адрес операнда задается во втором и третьем байте команды). При прямой адресации с 8-разрядным адресом обращение возможно только к 256 начальным позициям адресного пространства, в котором располагаются регистры интерфейсных и периферийных модулей и часть ОЗУ.

укороченная:

ADD $31; ячейка (31) + (А) → А, работают с адресами (00-FF);

расширенная:

LDX $01E1; из ячейки с адр. $01E1 переслать информ. в регистр Х.

Индексные методы адресации.

- индексная (адресом операнда служит содержимое регистра H:X) LDA; Команда однобайтовая, адрес находится в HX.

- индексная со смещением в один байт (адрес операнда образуется сложением содержимого регистра H:X и 8-разрядного смещения, заданного во втором байте.

INC $D8,X; увеличивается на 1 содержимое ячейки памяти, адрес ;которой получается сложением содержимого Н:Х и D8. При ;индексной адресации смещение является числом без знака.

- индексная со смещением в два байта (адрес операнда образуется сложением содержимого регистра H:X и 16-разрядного смещения, заданного во втором и третьем байте команды); 3 байта .

ADD $0200, X; ((Адрес ячейки = (HX+0200))

Индексная адресация и прямая адресация с 16-разрядным адресом позволяют обращаться к любой позиции адресного пространства, однако при этом необходимо, чтобы значение адреса не превышало $FFFF.

- индексная с пост - инкрементом (используется только в командах MOV и CBEQ - адресом операнда служит содержимое регистра

H:X, которое после выполнения команды автоматически увеличивается на 1);

MOV $68, X+; записать данные из ячейки пам. с адресом $68 в яч. ;памяти, адрес которой нах-ся в Н:Х, затем увеличить на 1 адрес в Х.

- индексная со смещением в один байт и пост-инкрементом (используется только в команде CBEQ - адрес операнда образуется сложением содержимого регистра H:X и 8-разрядного смещения, заданного во втором байте команды, после выполнения команды содержимое регистра H:X автоматически увеличивается на 1);

CBEQ $80, X+, m1; Сравнить А и содержимое ячейки памяти, адрес ;которой (HX )+128 и отправить по метке m1 в случае равенства. ;Увеличить содержимое индексного регистра на единицу.

- индексная по указателю стека со смещением (адрес операнда образуется сложением содержимого регистра SP и 8- или 16-разрядного смещения, заданного во втором и третьем байте команды); 3-4 байта,

LDA $80, SP;

LDA $01FF,SP;

-- относительная (используется только в командах ветвления - адрес команды образуется сложением текущего содержимого PC и заданного во втором байте команды 8-разрядного смещения, которое является числом со знаком).

При относительной адресации возможен переход к командам, расположенным в пределах 127 позиций ниже или выше очередной команды программы. 2- байтовая команда.

BCS M2; перейти по метке М2, если бит С установлен,

;(PC) + 2 + М2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]