Скачиваний:
23
Добавлен:
11.05.2015
Размер:
998.91 Кб
Скачать

159B:0101 1e push ds

Как мы видим, команда DEC CX уменьшила содержимое CX на единицу. Если выполнить команду еще раз:

-r ip

IP 0101

:100

-t

AX=0000 BX=1234 CX=FFFF DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0101 NV UP EI NG NZ AC PE NC

159B:0101 1e push ds

-

мы увидим, что команда DEC CX еще раз уменьшила регистр CX на единицу.

7.3. Непосредственный метод адресации

При использовании непосредственной адресации МП 8086 в качестве операнда-источника берет константу, которая содержится в команде. Например, команда MOV AL, 31 загружает значение 31 в регистр AL, а команда MOV SI, FFFE загружает значение FFFE в регистр SI.

Рассмотрим команду ADD CX, 00E0:

-a 100

159B:0100 add cx,0e0

159B:0104

-r cx

CX FFFF

:200

-t

AX=0000 BX=1234 CX=02E0 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0104 NV UP EI PL NZ NA PO NC

159B:0104 0400 ADD AL,00

-r ip

IP 0104

:100

-t

AX=0000 BX=1234 CX=03C0 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0104 NV UP EI PL NZ NA PE NC

159B:0104 0400 ADD AL,00

-

После выполнения процессором этой команды в регистре CX окажется значение 02E0, т.е. 0200 + 00E0 = 02E0. Если выполнить эту команду еще раз, то в регистре CX окажется уже значение 03C0, т.е. 02E0+00E0 = 03C0.

7.4. Прямая адресация

При использовании прямой адресации МП 8086 берет указанное в команде смещение, добавляет его к сдвинутому содержимому указанного регистра сегмента (по умолчанию берется регистр сегмента данных DS) и по полученному адресу выбирает операнд.

Более поздние процессоры работают так же, за исключением защищенного режима, в котором адрес сегмента берется из таблицы дескрипторов. Это замечание относится и к другим методам адресации.

Рассмотрим команду MOV bx,[00FEh] (реальный режим):

-a 100

159B:0100 mov bx,[00fe]

159B:0104

-r

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0100 NV UP EI PL NZ NA PO NC

159B:0100 8B1EFE00 MOV BX,[00FE] DS:00FE=0000

-d f0 100

159B:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 34 12 ................

159B:0100 8B .

-t

AX=0000 BX=1234 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0104 NV UP EI PL NZ NA PO NC

159B:0104 0400 ADD AL,00

-

После выполнения команды в регистр BX будет занесено значение 1234h.

7.5. Косвенная регистровая адресация

При использовании косвенной регистровой адресации МП 8086 берет в указанном регистре смещение, добавляет к сдвинутому регистру сегмента и по полученному адресу выбирает операнд.

Рассмотрим команду NOT word ptr [BX] (word ptr — префикс размерности операнда 16 бит):

-a 100

159B:0100 not word ptr [bx]

159B:0102

-r bx

BX 1234

:200

-d 200 201

159B:0200 DF D4

Два байта — DF D4 — являются операндом в двоичном виде: 1101 1111 1101 0100.

-r

AX=0000 BX=0200 CX=03C0 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0100 NV UP EI PL NZ NA PE NC

159B:0100 F717 NOT WORD PTR [BX] DS:0200=D4DF

-t

AX=0000 BX=0200 CX=03C0 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=159B ES=159B SS=159B CS=159B IP=0102 NV UP EI PL NZ NA PE NC

Соседние файлы в папке Введение в вычислительную технику.