x87c

x87c struc
	C0	BYTE ?
	C1	BYTE ?
	C2	BYTE ?
	C3	BYTE ?
	dC0	BYTE ?
	dC1	BYTE ?
	dC2	BYTE ?
	dC3	BYTE ?
x87c ends
	
lpx87c TYPEDEF PTR x87c
	
  • C0,C1,C2,C3 - каждый из этих четырёх байт, которые представляют соответствующие флаги регистра состояния FPU, coдержит код влияния текущей инструкции.

    Возможны следующие значения.

    NA equ 0 - не влияет.
    _0 equ 1 - сбрасывает.
    _1 equ 2 - устанавливает.
    U equ 3 - не предсказуемое значение.
    _Mod equ 4 - изменяет по определённым правилам.

  • dC0,dC1,dC2,dC3 - эти четыре байта содержат коды правил изминения.

    Возможны следующие значения.

    Правило Значение Описание.
    lmem equ 1 - Загружает из памяти.
    _rng equ 2 0 Операнд был в правильном диапозоне.
    1 Операнд не был в правильном диапозоне.
    _ovs equ 3 0 Переполнения x87-стэка не было.
    1 Переполнение x87-cтэка, если было обнаружено исключение с x87-регистрами.
    v0q equ 4 0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами.
    - Принимает значение 0-го бита частного, если не было исключений.
    v1q equ 5 - Принимает значение 1-го бита частного.
    v2q equ 6 - Принимает значение 2-го бита частного.
    fpri equ 7 0 FPREM сделал частичный остаток.
    1 Значение операнда сильно отличается от 2^64, поэтому результат ещё не готов.
    rnup equ 8 0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами. 
    0 Результат был округлён в меньшую сторону, если было исключение с точностью.
    1 Результат был округлён в большую сторону, если было исключение с точностью.
    fexm equ 9 - C3 C2 C1 C0
    0  0  0  0  +не поддерживаемый формат
    0  0  0  1  +NaN не число
    0  0  1  0  –не поддерживаемый формат
    0  0  1  1  –NaN не число
    0  1  0  0  +normal нормализованое
    0  1  0  1  +infinity бесконечность
    0  1  1  0  –normal нормализованое
    0  1  1  1  –infinity бесконечность
    1  0  0  0  +0
    1  0  0  1  +empty пусто
    1  0  1  0  –0
    1  0  1  1  –empty пусто
    1  1  0  0  +denormal не нормализованное
    1  1  1  0  –denormal не нормализованное
    _ous equ 10 0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами. 
    1 Переполнение x87-cтэка, если было обнаружено исключение с x87-регистрами.
    cmp0 equ 11 - C3 C2 C1 C0
    0  0  0  0  ST(0) > source.
    0  0  0  1  ST(0) < source.
    1  0  0  0  ST(0) = source.
    1  1  0  1  Не сравнимые операнды.
    ex00 equ 12 0 Округлений не было.
    0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами. 
    0 Результат был округлён в меньшую сторону, если было исключение с точностью. 
    1 Результат был округлён в большую сторону, если было исключение с точностью. 
    ex01 equ 13 1 Переполнение x87-cтэка, если было обнаружено исключение с x87-регистрами. 
    0 Если нет других установленных флагов.
    ex02 equ 14 0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами. 
    1 Переполнение x87-cтэка, если было обнаружено исключение с x87-регистрами. 
    0 Нет ошибок со стэком.
    ex03 equ 15 0 Антипереполнение x87-стэка, если было обнаружено исключение с x87-регистрами. 
    1 Переполнение x87-cтэка, если было обнаружено исключение с x87-регистрами. 
    0 Результат был округлён в меньшую сторону, если было исключение с точностью. 
    1 Результат был округлён в большую сторону, если было исключение с точностью. 

  • Сайт управляется системой uCoz