Прямая расширенная адресация



Команды с прямой расширенной адресацией имеют длину 3 байта. Первый байт предназначен для кода команды, второй и третий байты содержат адрес ячейки памяти, где хранится операнд. Команды с прямой расширенной адресацией позволяют работать со всем адресным пространством МК. Мнемоническое обозначения команд с прямой и прямой расширенной адресацией совпадают. При трансляции программ не следует заботиться о том, что инструкции с прямой и прямой расширенной адресацией имеют одинаковую мнемонику. Программа Ассемблер самостоятельно подставит код необходимой операции, проанализировав численное значение адреса opr.

Примеры:

ADDopr    ;Запись команды ADD с прямой расширенной адресацией в общем виде.

ADD $01E1 ;Сложить содержимое аккумулятора АCC с содержимым ячейки памяти с

;адресом $01E1. Результат поместить в ACC.

LDX $01E1 ;Загрузить в младший байт индексного регистра X содержимое ячейки памяти

                   ;с адресом $01E1.

 

Индексная адресация.

Команды с индексной адресацией имеют длину 1 байт, в котором расположен код операции. Адрес операнда находится в двухбайтовом индексном регистре H:Х.

 

Примеры:

ADD ,X     ;Запись команды ADD с индексной адресацией в общем виде.

ADD ,X     ;Сложить содержимое аккумулятора АCC с содержимым ячейки памяти,

;адрес которой находится в индексном регистре H:X. Результат поместить в ;ACC.

LDA ,X      ;Загрузить в аккумулятор ACC содержимое ячейки памяти, адрес которой ;находится в индексном регистре H:X.

 

Индексная адресация со смещением 1 байт.

Команды с данным типом адресации имеют длину 2 байта. Первый байт содержит код операции, а второй - беззнаковую константу, которая носит название “смещение”. В определении адреса операнда участвует индексный регистр H:Х, который содержит код базового адреса. Центральный процессор вычисляет адрес операнда путем сложения содержимого индексного регистра H:X с кодом второго байта команды. После сложения адрес операнда представляется в двухбайтовом формате.


Примеры:

ADDopr,X ;Запись команды ADD с индексной адресацией со смещением в один байт

;в общем виде.

ADD $80,X ;Сложить содержимое аккумулятора АCC с содержимым ячейки памяти,

;адрес которой равен (H:X)+128. Результат поместить в ACC.

LDA $1,X  ;Загрузить в аккумулятор ACC содержимое ячейки памяти, адрес которой равен  ;(H:X)+1.

Индексная адресация со смещением 2 байта.

Команды с данным типом адресации имеют длину 3 байта. Первый байт содержит код операции, а второй и третий байты - двухбайтовую беззнаковую константу. В определении адреса операнда участвует двухбайтовый индексный регистр H:Х. Центральный процессор вычисляет адрес операнда путем сложения двухбайтового кода смещения с содержимым регистра H:X. После сложения адрес операнда представляется в двухбайтовом формате. Мнемонические обозначения команд с индексной адресацией со смещениями 1 и 2 байта совпадают. Однако не следует беспокоиться об этом при написании программы. При трансляции программа Ассемблер самостоятельно подставит код необходимой операции, проанализировав численное значение адреса opr.

 

Примеры:

ADDopr,X ;Запись команды ADD с индексной адресацией со смещением в два байта

 ;в общем виде.

ADD $0200,X      ;Сложить содержимое аккумулятора АCC с содержимым ячейки памяти,

 ;адрес которой равен (H:X) + 512. Результат поместить в ACC.

LDA $01FF,X ;Загрузить в аккумулятор ACC содержимое ячейки памяти, адрес которой; равен (H:X) + $01FF.

 

Индексная адресация с постинкрементированием

Индексная адресация с постинкрементированием используется только в командах MOV и CBEQ. Адрес одного из операндов этих команд находится в двухбайтовом индексном регистре H:Х. После выполнения команды содержимое индексного регистра H:X увеличивается на 1.

 

Примеры:

MOVX+,opr ;Запись команды MOV с индексной адресацией с

;постинкрементированием в общем виде.

MOVX+,$68         ;Записать данные из ячейки памяти, адрес которой находится в индексном ;регистре H:X в ячейку памяти с адресом $68. Увеличить на 1 содержимое

;регистра H:X.

CBEQX+,rel         ;Запись команды CBEQ с индексной адресацией с

;постинкрементированием в общем виде.

CBEQX+,m1         ;Сравнить содержимое аккумулятора ACC и содержимое ячейки памяти, ;адрес которой находится в индексном регистре H:X. Перейти по метке m1

;в случае равенства. Увеличить на 1 содержимое регистра H:X.

 


Дата добавления: 2018-04-04; просмотров: 403; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!