Адресация
Адресация
Допустимые комбинации элементов
Операции, связанные с адресацией
Специальные операции
Дополнительные операции
Пример
639.50K
Категория: ПрограммированиеПрограммирование

Адресация

1. Адресация

2. Адресация

Уточним понятие "адресация".
Адресация (по Э. Таненбауму) – процесс
определения местоположения операндов
команды МП (их адреса).
Адрес может задаваться с помощью 5 элементов
или их различных допустимых комбинаций.

3.

ЭЛЕМЕНТЫ
REG
IMMED
DISP
BASE
INDEX
<reg8>|
<reg16>
<imm8>|
seg <label>|
offset <label>
[<imm16>]|
<label>|
$
[bx]|
[bp]
[si]|
[di]
Регистровая
mov ax, bx
Непосредственная
Прямая
Индексная
mov ax, 10h
mov bx, offset var
mov ax, var
Относительная
/ косвенная
mov cx, [12h]
add cx, [bx]



sub [si], 2
xchg ax, [di]

Прямая со смещением
add cx, var[10]
mov bx, [var+2]
Относительная с индексацией
mov ax, [bx][si]
mov [bp+di], si


Прямая с индексацией, базированием и смещением
mov var[bx][di+10h], ax
xchg bx, var[bp+si+1234h]

РЕЖИМЫ АДРЕСАЦИИ

4. Допустимые комбинации элементов

REG → ax
IMMED → 4
DISP → var или[4]
BASE → [bx]
INDEX → [si]
DISP+IMMED → var[4]
DISP+BASE → var[bx]
DISP+INDEX → var[si]
BASE+IMMED → [bx+4]
BASE+INDEX → [bx][si]
INDEX+IMMED → [si+4]
DISP+BASE+IMMED →
var[bx+4]
DISP+BASE+INDEX →
var[bx+si]
DISP+INDEX+IMMED →
var[si+4]
BASE+INDEX+IMMED →
[bx][si+4]
DISP+BASE+INDEX+IMMED
→ var[bx][si+4]

5.

Регистровая адресация
.
inc СН; Плюс 1 к содержимому СН
push DS; DS сохраняется в стеке
xchg ВХ,ВР; ВХ и ВР обмениваются содержимым
mov ES, АХ; Содержимое АХ пересылается в ES
Непосредственная адресация
MOV AX, 5 ;загружает значение 5 в РОН AX
MOV AL,'*'; Код ASCII символа "*' загружается в AL
.....
K EQU 1024
MOV CX, K ;загружает в РОН СХ константу 1024, определенную идентификатором К.

6.

Прямая адресация памяти.
Сегмент данных
meml dw 0 ;Слово памяти содержит 0
mem2 db 230 ;Байт памяти содержит 230
;Сегмент команд
…….
inc meml ;Содержимое слова meml увеличивается на 1
mov DX, meml ; Содержимое слова с именем mem1 загружается
в DX
mov AL, mem2 ; Содержимое байта с именем mem2 загружается
в АL

7.

Регистровая косвенная (базовая и индексная).
При использовании регистров ВХ или ВР адресацию называют базовой,
при использовании регистров SI или DI - индексной.
Косвенные регистровые операнды необходимо заключать в квадратные скобки
Пример (косвенной базовой адресации).
mov [bx],al ; Пересылка байта из регистра AL по адресу,
; определяемому регистрами DS:BX
mov dx,[bp] ; Пересылка слова из ячейки памяти, определяемой
; регистрами SS:BP в регистр DX
Пример (косвенной индексной адресации).
mov dx,[si] ; Пересылка слова из ячейки памяти, определяемой
; регистрами DS:SI в регистр DX
mov [si],cx ; Пересылка слова из регистра CX по адресу,
; содержащемуся в регистре DS:SI

8.

Регистровая косвенная адресация со смещением
(базовая и индексная).
MOV AХ,[ВР]+4
MOV AХ,4[ВР]
MOV AХ,[ВР+4]
;3то стандартная форма записи,
; но сдвиг можно указать на первом месте
; или внутри скобок

9.

Базово-индексная адресация.
Пример (адресации по базе с индексированием).
mov ax,[bx][di] ; Адрес второго операнда: (BX)+(DI)
mov ax,[bx+di]
Базово-индексная адресация со смещением.
<Базовый регистр>+<Индексный регистр>+<Константа>
Пример (косвенной базовой индексной адресации со смещением).
mov ax,[si+5h][dx]
mov ax,[bx+di+5]

10.

1. В следующей команде найдите ошибку и предложите способ ее исправления:
MOV[SI],[BX]
2. Объясните, почему ассемблер выдает ошибку в команде
MOV[BX],25?
Исправьте ошибку.
3. В нижеприведенной таблице укажите в пустом столбце, какой режим адресации
используется в командах.
Команда
Режим адресации
LEA BX,TABL
MOV DI,4
MOV CL,[BX]
MOV DL,[BX+3]
MOV AL,[BX+DI]
MOV CH,2[BX+DI]
4. Какой смысл имеют квадратные скобки в командах ассемблера?
5. В чем отличие команд mov ax, [bx+2] и mov ax [bx] + 2?
6. В чем отличие команд mov ax, [bx][si] и mov ax, [si][bx]?
7. В сегменте данных описан вектор TABL
DB12,15,16,10,8,2,5,0.
Напишите команды занесения значения четвертого байта (значение 10) в регистр AL
а) с использованием прямой адресации;
б) с использованием косвенной адресации;
в) с использованием прямой адресации с индексированием.

11. Операции, связанные с адресацией

12. Специальные операции

Операции для
работы с
сегментами и
адресами
Получение
сегментной
составляющей
адреса
Получение
смещения /
исполнительного
адреса
Индексная
(считается
арифметической)
Переопределения
сегмента
seg <op>
[5]
offset <op>
[5]
[<op>]
[1]
<seg>:<addr>
[4]

13. Дополнительные операции

Арифметические операции для формирования
IMMED
Унарные
Бинарные
+ [7]
* [8]
+ [9]
- [7]
/ [8]
- [9]
mod [8]

14. Пример

Простая программа, иллюстрирующая
различные режимы адресации и
применение адресных операций.
English     Русский Правила