Система команд x86 |
|
Программирование - Архитектура и система команд микропроцессоров x86 |
FBSTP
Влияние команды на флаги и форматы команды:
* |
* |
|
|
|
|
* |
DF /6 |
FBSTP m80dec |
Преобразовать ST(0) в двоично-десятичное и занести в m80dec, ST(0) выдвинуть из регистрового стека |
8087 |
fbstp [ebx] |
Описание:
Команда FBSTP преобразует значение в ST в упакованное двоично-десятичное число, сохраняет его в памяти, а затем выталкивает ST из стека. Нецелочисленные значения сперва округляются согласно полю CW.RC.
Если входное значение в ST(0) слишком велико (мало для отрицательных чисел) для представления в форманте операнда-назначения, SNaN, QNaN или представлено в неподдерживаемом формате, то возникает исключение #IA. Если маска иэтого исключения не установлена, то в память никакого значения не записывается и вызывается обработчик исключений. Если же маска установлена, в операнд назначение помещается неопределенность в формате BCD.
Флаги C0, C2, C3 регистра SW после выполнения команды неопределены, флаг C1 устанавливается равным 0 в случае возникновения стековой ошибки #IS, а также указывает направление округления в случае возникновения исключения #P (неточный результат): 0 – округление к меньшему, 1 – округление к большему.
Операция:
DEST = ST(0);
Pop(ST);
Особые ситуации защищенного режима:
#GP(0), если операнд-назначение находится в сегменте, запрещенном для записи, если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#NM, если CR0.EM = 1 или CR0.TS = 1.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память при текущем уровне привилегий равном 3.
Особые ситуации режима реальной адресации:
#GP, если любая часть операнда находится вне пространства эффективных адресов в сегментах CS, DS, ES, FS или GS.
#SS, если любая часть операнда находится вне пространства эффективных адресов в сегменте SS.
#NM, если CR0.EM = 1 или CR0.TS = 1.
Особые ситуации режима V86:
Такие же, как и в режиме реальной адресации.
#PF(Код ошибки) при страничной ошибке.
#AC(0) при невыровненной ссылке в память.
Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru