Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 17

Записывает значение из порта, номер которого задаётся источником, в приёмник.

Приёмником может быть регистр AL, AX или EAX.

Источником может быть:

—  непосредственный операнд — номер порта от 0 до 255;

—  регистр DX, содержащий номер порта.

OUT            приёмник, источник           записать данные в порт               8086

Записывает значение из источника в порт, номер которого задаётся приёмником.

Источником может быть регистр AL, AX или EAX.

Приёмником может быть:

—  непосредственный операнд — номер порта от 0 до 255;

—  регистр DX, содержащий номер порта.

CBW            преобразование байта AL в слово AX                                    8086

CWD            преобразование слова AX в двойное слово DX:AX              8086

CWDE         преобразование слова AX в двойное слово EAX                80386

CDQ            преобразование двойного слова EAX в четверное EDX:EAX                   80386

Во всех четырёх командах расширение выполняется путём установки всех разрядов старшей половины результата равными старшему биту исходного числа. Таким образом сохраняется знак числа.

Примечание. CBW и CWDE — две мнемоники одной команды с кодом 98H, а CWD и CDQ — две мнемоники одной команды с кодом 99H. Их интерпретация определяется тем, в каком режиме они выполняются. Если команда CWDE или CDQ используется в 16-разрядном режиме, ассемблер записывает перед ней префикс изменения размерности операнда.

MOVSX       приёмник, источник           пересылка с расширением знака                   80386

Копирует содержимое одно- или двухбайтного источника в соответственно двух- или четырёхбайтный приёмник, расширяя знак аналогично вышеприведённым командам.

Источником может быть:

—  регистр общего назначения;

—  память.

Приёмником может быть регистр общего назначения.

MOVZX       приёмник, источник           пересылка с заполнением нулями                   80386

Копирует содержимое одно- или двухбайтного источника в соответственно двух- или четырёхбайтный приёмник, заполняя разряды старшей половины приёмника нулями.

Источником может быть:

—  регистр общего назначения;

—  память.

Приёмником может быть регистр общего назначения.

Например, команда

                MOVZX   AX, BL

эквивалентна паре команд

                MOV     AL, BL
                MOV     AH, 0

Примечание. Для обнуления регистров грамотные программисты используют не команду MOV, а команду XOR — «исключающее или», которая описана ниже. Например, вместо

                MOV     AX, 0

используется

                XOR     AX, AX

Вторая из приведённых команд, во-первых, имеет более короткий код, за отсутствием необходимости хранить значение непосредственного операнда, а во-вторых, зачастую, быстрее выполняется.

XLAT         [таблица]                             трансляция по таблице                8086

XLATB       [таблица]                             то же                                             8086

Помещает в регистр AL байт из одномерной таблицы в памяти по адресу DS:BX в 16-разрядном режиме или DS:EBX — в 32-разрядном со смещением относительно начала таблицы, равным значению в AL. В качестве операнда можно указать:

—  смещение таблицы или её имя, которое по общему правилу ассемблер заменяет на смещение. Такой операнд считается комментарием и игнорируется ассемблером;

—  сегментный регистр и смещение или имя таблицы. Смещение или имя игнорируется, как и в предыдущем случае, но соответственно указанному сегментному регистру ассемблер генерирует префикс замены сегмента и в результате смещение по регистру BX или EBX отсчитывается от другой базы.

LEA            приёмник, источник           вычисление эффективного адреса                   8086

Вычисляет эффективный адрес источника и помещает его в приёмник.

Источником может быть память.

Приёмником может быть 16- или 32-разрядный регистр.

Команда предназначена для вычисления адреса переменной, описанной сложным способом адресации.