
Организация эвм / 2 _(раздел Основы архитектуры 1, урок 1) / HELP#3
.RTFПример 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, например, команд группы вычитания, проводится по такой же схеме. Отличие заключается лишь в представлении кода операции команды, значение которого можно получить из соответствующих таблиц.