Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
CBW
Влияние команды на флаги и форматы команды:
98 |
CBW |
AX = Знакорасширенный AL |
8086 |
cbw |
98 |
CWDE |
EAX = Знакорасширенный AX |
Intel386 |
cwde |
Описание:
Команда CBW преобразует знаковый байт из регистра AL в знаковое слово в регистре AX путем расширения наиболее значащего бита регистра AL (знаковый бит) во все биты регистра AH.
Команда CWDE преобразует знаковое слово в регистре AX в знаковое двойное слово в регистре EAX путем расширения наиболее значащего бита регистра AX (знаковый бит) в два наиболее значащих байта регистра EAX.
И CBW и CWDE используют один и тот же код операции. Выполняемая команда зависит от атрибута размера операнда. Для 16-битного атрибута применяется CBW, для 32-битного — CWDE. Некоторые ассемблеры при встрече мнемоники CBW/CWDE применяют соответствующие префиксы размера операнда перед кодом команды, некоторые — просто вставляют код операции, так что будет выполняться действие в соответствии с текущим размером операнда по умолчанию.
Заметьте, что команда CWDE отличается от команды CWD тем, что CWD использует регистровую пару DX:AX, а не EAX в качестве назначения.
Операция:
IF OperandSize = 16 (* Команда типа CBW *)
THEN AX = SignExtend(AL);
ELSE (* OperandSize = 32, команда типа CWDE *)
EAX = SignExtend(AX);
FI;
Особые ситуации защищенного режима:
Нет.
Особые ситуации режима реальной адресации:
Нет.
Особые ситуации режима V86:
Нет.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru