Микропроцессор Intel 486

2.5. Примеры на использование методов адресации
в различных командах

Регистровая

MOV AX, BX
ADD CX, AX
PUSH CX

Непосредственная

MOV AX, 100
ADD AX, 5
MOV CX, 0FFFFh

Прямая

В классическом ассемблере

X DW 5
B DB 1
- - - - -
MOV AX, X
ADD AH, B
MOV X, AX

Во встроенном ассемблере Turbo Pascal

VAR X : WORD; B : BYTE;
- - - - -
ASM
     MOV AX, X
     ADD AH, B
     MOV X, AX
END;

Косвенная (косвенно-регистровая)

Исполнительный адрес операнда (точнее, его смещение – offset) находится в одном из регистров – BX, BP, SI, DI. Важно отметить, что каждый из этих регистров по умолчанию работает со своим сегментным регистром, а именно:
DS:BX, SS:BP, DS:SI, ES:DI.

В команде допускается явное указание сегментного регистра, если он отличается от умалчиваемого:

MOV AX, [BX]
MOV AX, ES:[BX]

Базовая

MOV AX, [BX]+10 или
MOV AX, [BX+10]

Здесь в АХ записывается 10-й по счету байт от начала базы в DS:BX.

Индексная

ABC DB 10, 20, 30
- - - - -
MOV SI, 1
MOV AH, ABC[SI]     ; Второй по порядку байт в массиве АВС
MOV SI, 0
ADD AH, ABC[SI]     ; Самый первый байт в АВС

Назад Содержание Вперёд