- •1.Способи адресації
- •3.Пряма адресація пам'яті. .
- •6. Сторінкова пам'ять.
- •7.Сегмента адресація.
- •8. Опосередкована адресація з масштабуванням
- •9.Адресація по базі з сувом.
- •10.Адресація по базі з індексуванням
- •11. Адресація по базі з індексуванням та масштабуванням
- •12.Вирівнювання даних та коду.
- •13. Регістри загального призначення
- •14. Сегментні регістри.
- •15.Індексні регістри.
- •16. Спеціальні регістри
- •17. Флаги ознак.
- •18. Регистры управления (Control Registers)
- •19.20. Стек, регітсри стека.
- •22. Флаг нуля zf
- •23. Флаг знака sf
- •25. Флаг четности.
- •26. Флаг полупереносу.
- •27. Флаг трассировки.
- •28. Флаг напрямку.
- •29. Флаг переривание.
- •35. Арифметические команды
- •36. Команди блочної обробки даних
- •37. Команды ввода и вывода
- •38. Команды управления флагами
- •39. Команда пересылки данных: возможности и ограничения
- •40. Команди керування
- •41. Стек математичного співпроцесора
- •42.Команди пересилки співпроцесора
- •43. Арифметические команды сопроцессора
- •46. Різновиди чисел
- •47. Способи округлення
- •48.Трансцендентні команди
- •49. Команди завантаження констант співпроцесора
- •50. Порівняння чисел з плаваючою комою
- •51. Структура жёсткого диска
- •58. Структура каталогов Linux
- •59. Структура ufs
- •60. Суперблок. Ufs
- •61. Индексный дескриптор ufs
- •62. Основні механізми передачі параметрів
- •63. Основні місця передачі параметрів
- •64. Вкладені обчислення
- •65. Різновиди комбінацій сегментів
- •66. Порядок завантаження сегментів, директиви
- •67. Оптимізація обчислень
- •68. Математична оптимізація
- •69. Алгоритмічна оптимізація
- •70 .Низькорівнева оптимізація
- •71. Основні методи алгоритмічної оптимізації
- •72. Основні рекомендації низького рівня
- •74. Особенности архитектуры процессоров Pentium Pro и Pentium II
- •76. Конвеєр fpu
- •77. Принципи роботи кешу
- •79. Регистры управления (Control Registers)
- •80. Індексні регістри дескрипторів
- •81. Віртуалізація пам’яті
- •82. Переривання, маскування та обробка.
- •84. Кеш з зворотнім записом
- •85. Кеш з відкладеним записом
- •86. Наскрізний кеш
- •87. Кеш читання
- •88. Повністю асоціативний кеш
- •91. Структура кешу
- •92. Теги, призначення
- •93. Конвеєри mmx та sse
49. Команди завантаження констант співпроцесора
Команда выполняет обмен содержимым верхушки стека ST(0) и численного регистра, указанного в качестве операнда команды.
Загрузка констант
FLDZ 0 -> ST(0) - Загрузить нуль
FLD1 1 -> ST(0) - Загрузить единицу
FLDPI p -> ST(0) - Загрузить число p ("пи")
FLDL2T loge10 -> ST(0) - Загрузить loge10
FLDL2E log2e -> ST(0) - Загрузить log2e
FLDLG2 log102 -> ST(0) - Загрузить log102
FLDLN2 loge2 -> ST(0) - Загрузить loge2
Загрузка констант выполняется намного быстрее специальными командами, нежели командами загрузки данных из оперативной памяти.
50. Порівняння чисел з плаваючою комою
Команды сравнений чисел
В центральном процессоре команды условных переходов выполняются в соответствии с установкой отдельных битов регистра флагов процессора. В арифметическом сопроцессоре существуют специальные команды сравнений, по результатам выполнения которых устанавливаются биты кодов условий в регистре состояния:
Команда |
Описание |
FCOM |
Сравнение |
FICOM |
Целочисленное сравнение |
FCOMP |
Сравнение и извлечение из стека |
FICOMP |
Целочисленное сравнение и извлечение из стека |
FCOMPP |
Сравнение и двойное извлечение из стека |
FTST |
Сравнение операнда с нулем |
FXAM |
Анализ операнда |
Команда FCOM вычитает содержимое операнда, размещенного в оперативной памяти, из верхушки стека ST(0). Результат вычитания никуда не записывается и указатель верхушки стека ST не изменяется.
Обозначим операнд команды сравнения как "x". В следующей таблице приведем значения битов кодов условия после выполнения команды "FCOM x":
C3 |
C0 |
Условие |
0 |
0 |
ST(0) > x |
0 |
1 |
ST(0) < x |
1 |
0 |
ST(0) = x |
1 |
1 |
ST(0) и x не сравнимы |
Последняя комбинация возникает при попытке сравнения нечисел, неопределенностей или бесконечностей, а также в некоторых других случаях.
Команда FICOM работает с 16- или 32-разрядными числами, в остальном она аналогична команде FCOM.
Команды FCOMP и FICOMP аналогичны, соответственно, командам FCOM и FICOM, за исключением того, что после выполнения операнд извлекается из стека.
Команда FCOMPP выполняет те же действия, что и FCOM, но она после выполнения извлекает из стека оба операнда, участвовавших в сравнении.
Для сравнения операнда с нулем предназначена команда FTST. После ее выполнения коды условий устанавливаются в соответствии со следующей таблицей:
C3 |
C0 |
Условие |
0 |
0 |
ST(0) > 0 |
0 |
1 |
ST(0) < 0 |
1 |
0 |
ST(0) = 0 |
1 |
1 |
ST(0) и 0 не сравнимы |
Команда FXAM анализирует содержимое ST(0). После ее выполнения устанавливаются коды условий, по которым можно судить о знаке числа, о его конечности или бесконечности, нормализованности и так далее.
Бит C1 содержит знак анализируемого числа:
C1 |
Знак числа |
0 |
Положительный |
1 |
Отрицательный |
С помощью бита C0 можно определить, является число конечным или бесконечным:
C0 |
Описание |
0 |
Конечное число |
1 |
Бесконечное число |
Для конечных чисел дальнейшая классификация может проводиться по содержимому кодов условий C2 и C3:
C3 |
C2 |
Описание числа |
0 |
0 |
Ненормализованное число |
0 |
1 |
Нормализованное число |
1 |
0 |
Нулевое число |
1 |
1 |
Число денормализовано |
Аналогично, для бесконечных чисел коды условий C2 и C3 имеют следующие значения:
C3 |
C2 |
Описание числа |
0 |
0 |
Нечисло |
0 |
1 |
Бесконечное число |
1 |
0 |
Пустое число |
1 |
1 |
Пустое число |
С помощью команды "FSTSW AX" программа может переписать содержимое регистра состояния сопроцессора в регистр AX центрального процессора. Далее содержимое регистра AH можно переписать в регистр флагов центрального процессора при помощи команды SAHF. Биты кодов условий сопроцессора отображаются на регистр флагов центрального процессора таким образом, что для анализа кодов условий можно использовать команды условных переходов.
Например, в следующем фрагменте программы выполняется переход к метке error, если операнды несравнимы:
.286
. . .
fcom
fstsw ax
sahf
je error