Скачиваний:
16
Добавлен:
10.05.2014
Размер:
23.84 Кб
Скачать

Пример 5.

Операнд a находится в слове оперативной памяти, адрес которого хранится в регистре BX, а операнд b - в регистре AX. В этом случае адресация операнда a -регистровая косвенная.

Символическая запмсь команды:

ADD [BX],AX

Машинное представление:

коп dw md reg r/m

00000001 00 000 111 b = 0107h

AX

косвенная адресация через регистр BX

операнд - слово

операнд, заданный в поле reg, - источник

Если перед выполнением команды (AX)=1234, (BX)=3474, [3474]=D7, [3475]=11, (IP)=0012, то в результате выполнения команды произойдут следующие изменения: [3474]=0B, [3475]=24, (IP)=0014.

Пример 6.

Операнд a находится в AX. Операнд b адресуется с помощью регистровой относительной адресации относительно регистра BX. Если величина смещения равна 3000h, то символическая запись команды будет сле­ду­ю­щая:

ADD AX,[BX+ 3000h]

а машинный код команды будет иметь вид:

коп dw md reg r/m disp L disp H

00000011 10 000 111 00000000 00110000b = 03870030h

AX

(BX)+disp16

операнд - слово

операнд, заданный в поле reg, - приемник

Если перед выполнением команды (AX)=1234, (BX)=0074, [3474]=E6, [3475]=64, (IP)=0102, то результатом будет: (AX)=771A, (IP)=0106.

Пример 7.

Операнд a находится в регистре AL. Операнд b адресуется посредством базово-индексной адресации с использованием регистров BX и DI В этом случае символическая запись команды имеет вид:

ADD AL,[BX+DI]

Так как первый операнд находится в регистре AL, то он имеет длину 1 байт. Поэтому в машинном представлении команды w=0, и она выглядит следующим образом:

коп dw md reg r/m

000000 10 00 000 001 b = 0201 h

AL

(BX)+(DI)

операнд - байт

операнд, заданный в поле reg, - приемник

Если до начала выполнения команды (AX)=25B7, (BX)=3000, (DI)=0474, [3474]=77, (IP)=2519, то после ее выполнения произойдут следующие изменения: (AX)=252E, (IP)=251B. Обратим внимание на то, что содержимое регистра AL представляет собой младший байт регистра AX. Так как операция проводится над байтами, то перенос в старший байт регистра AX блокируется.

Пример 8.

Операнд a находится в регистре AH. Операнд b адресуется с помощью регистровой относительной адресации относительно регистра BX. Если величина смещения равна 1D25h, то символическая запись команды будет сле­ду­ю­щая:

ADD AH,MAS[BX+DI+ 1D25h]

а машинный код команды имеет вид:

коп dw md reg r/m disp L disp H

00000010 10 100 001 00100101 00011101b = 02A1251Dh

AH

(BX)+(DI)+disp16

операнд - байт

операнд, заданный в поле reg, - приемник

Кодирование других команд IBM PC, например, команд группы вычитания, проводится по такой же схеме. Отличие заключается лишь в представлении кода операции команды, значение которого можно получить из соответствующих таблиц.

Соседние файлы в папке 2 _(раздел Основы архитектуры 1, урок 1)