Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
XLATB
Влияние команды на флаги и форматы команды:
|
|
|
|
|
|
|
|
|
D7 |
XLAT m8 |
AL = DS:[(E)BX + AL] |
8086 |
xlat ES:[ebx] |
D7 |
XLATB |
AL = DS:[(E)BX + AL] |
8086 |
xlatb |
Описание:
Команда XLAT, используя индекс из регистра AL, выбирает элемент из таблицы, расположенной в памяти по адресу DS:(E)BX, и помещает его в AL. Регистр AL должен содержать беззнаковый индекс элемента в таблице. Сама таблица адресуется регистровой парой DS:BX (для атрибута размера адреса равного 16 бит), или регистровой парой DS:EBX (для атрибута размера адреса равного 32 бита).
Для операнда команды XLAT допускается замещение сегмента по умолчанию.
Мнемоника XLATB является синонимом XLAT и используется для краткости, а также для того, чтобы показать размерность операции выборки (байт).
Операция:
IF AddresSize = 16
THEN
AL = DX:[BX + ZeroExtend(AL)];
ELSE (* AddressSize = 32 *)
AL = DX:[EBX + ZeroExtend(AL)];
FI;
Особые ситуации защищенного режима:
#GP(0), если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#PF(Код ошибки) при страничной ошибке.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#SS, если любая часть операнда находится вне пространства эффективных адресов в сегменте SS.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru