Прямая расширенная адресация
Команды с прямой расширенной адресацией имеют длину 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!