Описание обозначения

Описание обозначения. rb, rw, rd Код регистра от 0 до 7, который складыва- ется с указанным слева от знака плюс шестнадцетиричным числом байтом с лбразованием байта кода операции. Регистрам присво- ены следующие коды rb rw rd AL0 AX0 EAX0 CL1 CX1 ECX1 DL2 DX2 EDX2 BL3 BX3 EBX3 AH4 SP4 ESP4 CH5 BP5 EBP5 DH6 SI6 ESI6 BH7 DI7 EDI7 цифра Цифра, стоящая справа от косой черты, имеет, вооб- ще говоря, значение от 0 до 7. Она показывает, что в байте MOD RM указывается только один операнд rm регистрпамять.

Сама цифра помещается в поле reg и образует расширение кода опера- ции. r Обозначение показывает, что байт MOD RM содержит два операнда reg и rm. cb, cw, cd, cp Величина размером 1 байт cb, 2 байта cw, 4 байта cd или 6 байт cp следует за кодом операции и определяет относительный адрес, а также, возможно новое значе- ние программного сегмента. ib, iw, id Непосредственный операнд размером 1 байт id, 2 байта iw или 4 байта id следует за байтами кода опера- ции, MOD RM или SIB. Код операции указывает, является ли опе- ранд знаковой величиной. imm8 Непосредственный операнд размером 1 байт. Величина imm8 является знаковой величиной между -128 и 127 включитель- но. В командах, где размер второго операнда составляет слово или двойное слово, величина imm8 расширяется до слова или - 10 - двойного слова. Старшие байты расширенной величины заполняются старшим битом непосредственного операнда. imm16 Непосредственный операнд размером 1 слово.

Исполь- зуется в командах с атрибутом размера операнда 16 разрядов.

Может иметь значение от -32768 до 32767 включительно. imm32 Непосредственный операнд размером 1 двойное слово. Используется в командах с атрибутом размера операнда 32 разря- да. Может иметь значение от -2147483648 до 2147483647 включи- тельно. m8 Байт памяти.

Адресуется через регистры DSSI или ESDI. m16 Слово памяти. m32 Двойное слово памяти. moffs8, moffs16, moffs32 Относительный адрес. Простая пе- ременная типа BYTE, WORD или DWORD, используемая некоторыми вариантами команды MOV. Фактический адрес записывается в виде простого смещения относительно базы сегмента. Число при аббре- виатуре moffs указывает разрядность смещения определяемую аттрибутом размера адреса в команде. Байт MOD RM в команде не используется. ptr1616, ptr1632 Указатель FAR дальний.

Обычно он на- ходится в другом программном сегменте по отношению к команде. Обозначение 1616 говорит о том, что указатель состоит из двух частей. Величина слева от двоеточия - это смещение в сегменте приемнике. Величина справа от двоеточия - это 16-разрядный се- лектор или величина, предназначенная для регистра программного сегмента. Если атрибут размера операнда команды равен 16, используйте 1616. Для 32-разрядного атрибута используйте 1632. r8 Один из байтовых регистров AL, CL, DL, BL, AH, CH, DH, BH. r16 Один из однословных регистров AX, CX, DX, BX, SP, BP, SI, DI. r32 Один из двухсловных регистров EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI. rel8 Смещение для перехода в диапазоне от 128 байтов пе- ред концом команды до 127 байтов после конца команды. rel16, rel32 Смещение для перехода в том же программном сегменте, что и ассемблируемая команда, rel16 относится к ко- мандам с атрибутом размера операнда 16 разрядов. rel32 от- носится к командам с атрибутом размера операнда 32 разряда. rm8, rm16, rm32 Соответственно одно двух- и четырех- байтовый операнд.

Представляет собой содержимое либо памяти 11 - либо регистра. rrr Когда обозначение rrr появляется в колонке двоичного эквивалента кода операции, оно указывает конкретный адресуемый регистр. 000 AXEAX 100 SPESP 001 CXECX 101 BPEBP 010 DXEDX 110 SIESI 011 BXEBX 111 DIEDI Sreg Регистр сегмента.

Кодирование сегментных регистров в поле reg ES0, CS1, DS3, FS4, GS5. 5.3.