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

Пароль



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

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

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

Примеры:

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

; смещением в два байта в общем виде.

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

; ячейки памяти, адрес которой равен ;(Н:Х) + 512.

LDA $02FF,X       ;Загрузить в аккумулятор АСС содержимое ячейки памяти,

; адрес которой равен (Н:Х)+1023.

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

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

Примеры:

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

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

MOV $68, Х+       ; Записать данные из ячейки памяти с адресом $68 в ячейку

; памяти, адрес которой находится в индексном регистре

; Н:Х. Увеличить на 1 адрес в регистре Н:Х.

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

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

CBEQ X+,m1        ; Сравнить аккумулятор АСС и содержимое ячейки памяти,

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

; Перейти по метке ml в случае равенства. Увеличить на 1

; адрес в регистре Н:Х.

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

Индексная адресация со смещением в один байт и постинкрементированием используется только в команде CBEQ. В определении адреса одного из операндов команды участвует индексный регистр Н:Х, который содержит код базового адреса. Центральный процессор вычисляет адрес операнда путем сложения содержимого индексного регистра Н:Х с байтом кода смещения, который указан во втором байте команды. После сложения адрес операнда представляется в 2-байтовом формате. После выполнения команды содержимое индексного регистра Н:Х увеличивается на 1.

Примеры:

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

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

; общем виде.

CBEQ $80,X+,m1 ;Сравнить аккумулятор АСС и содержимое ячейки

; памяти, адрес которой равен (Н:Х) + 128. Перейти по

; метке ml в случае равенства. Увеличить на 1 адрес в

; регистре Н:Х.

Индексная адресация по указателю стека со смещением в один байт

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

Примеры:

ADD opr,SP  ; 3апись команды ADD с адресацией по указателю

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

ADD $80,SP  ; Сложить содержимое аккумулятора АСС с содержимым

; ячейки памяти, адрес которой равен (SP) + 128.

LDA $1,SP       ; 3агрузить в аккумулятор АСС содержимое ячейки

; памяти, адрес которой равен (SP) + 1.

Индексная адресация по указателю стека со смещением в два байта

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

Примеры:

ADD opr,SP      ; 3апись команды ADD с адресацией по указателю

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

ADD $0100,SP    ; Сложить содержимое аккумулятора АСС с содержимым

; ячейки памяти, адрес которой равен (SP) + 256.

LDA $01FF,SP    ; Загрузить в аккумулятор АСС содержимое ячейки

; памяти, адрес которой равен (SP) + 511.

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

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

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

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