Вопросы по теме 'fpu'

странные результаты простых операций с плавающей запятой - плохое внутреннее состояние FPU?
У меня есть программный проект, в котором я иногда получаю странные результаты от небольших простых операций с плавающей запятой. Я предполагаю, что кое-что я упустил, и хотел бы получить несколько советов о том, как отладить следующие проблемы:...
839 просмотров

Pow реализация для двойного
Я разрабатываю код, который будет использоваться для управления движением, и у меня возникла проблема с функцией pow. Я использую VS2010 в качестве IDE. Вот моя проблема: у меня есть: double p = 100.0000; double d = 1000.0000; t1 =...
771 просмотров
schedule 21.01.2024

Как переместить ST (0) в EAX?
Здравствуйте, я изучаю сборку x86 FPU, и у меня есть простой вопрос, на который я не могу найти ответа: Как переместить значение из ST(0) (верх стека FPU) в EAX ? также: правильный ли этот код: ; multiply (dot) two vectors of 3...
8776 просмотров
schedule 24.11.2022

asm (fpu) normalize - как это оптимизировать
Я написал некоторую подпрограмму x86 asm - fpu для нормализации вектора из трех чисел с плавающей запятой - вот она _asm_normalize10:; Function begin push ebp ; 002E _ 55 mov ebp, esp...
748 просмотров
schedule 30.07.2023

использование FFREE и FDECSTP
Вот этого я понять не могу: зачем такие команды (FFREE, FDECSTP)? Может ли он использоваться для извлечения значения из стека fpu, или это для какой-то другой цели? Я не понимаю :/ Может кто-нибудь объяснить это, спасибо
1267 просмотров
schedule 12.05.2022

x86: задержка и пропускная способность трансцендентных функций
Intel В Справочном руководстве по оптимизации архитектур ® 64 и IA-32 приведены показатели задержки и пропускной способности для различных инструкций ЦП. Для трансцендентных функций ( FSIN и т. д.) некоторые цифры указаны как диапазоны (стр....
498 просмотров
schedule 06.05.2022

Инструкция FLD x64 бит
У меня есть небольшая проблема с инструкцией FLD в x64 бит ... хочу загрузить значение Double в указатель стека FPU в регистре st0, но это кажется невозможным. В Delphi x32 я могу использовать этот код: function DoSomething(X:Double):Double; asm...
2016 просмотров
schedule 22.11.2022

Различные значения в зависимости от установленных флагов исключения с плавающей запятой
Короткий вопрос: Как установка флага исключения _EM_INVALID на FPU может привести к другим значениям? Длинный вопрос: В нашем проекте мы отключили исключения с плавающей запятой в нашей сборке Release, но включили ZERODIVIDE, INVALID и...
291 просмотров

Сборка FASM как использовать FPU в 64 битных программах
У меня есть этот код в FASM, который вычисляет измерение с использованием FPU, который отлично работает в 32-битных программах. Как бы я преобразовал его, чтобы он работал в 64-битной программе. когда я использую этот код в 64-битной программе, он...
1286 просмотров
schedule 13.04.2022

О точности x87 FPU
В руководстве разработчика программного обеспечения Intel IA-32. В нем говорится, что бит 8 и 9 управляющего слова x87 FPU определяет точность вычислений с плавающей запятой. Точность по умолчанию - двойная расширенная точность. После выполнения...
643 просмотров
schedule 07.05.2023

Сравните два числа в сборке Intel x86 (nasm)
У меня есть следующий код сборки: %include 'rw32.inc' [segment .data use32] a dd 2.0 b dd 1.0 [segment .code use32] prologue ; macro -- inicialization fld dword [a] fld dword [b] fcom jc greater jmp less greater:...
1559 просмотров
schedule 01.07.2023

SSE: массовое целочисленное преобразование + умножение с SSE медленнее, чем с FPU?
Я работаю над приложением, которому очень часто требуется преобразовать от 6 до 8 32-битных целых чисел со знаком в 32-битные действительные числа. Я заменил код delphi на собственный код ассемблера, и, к моему большому удивлению, преобразование FPU...
330 просмотров
schedule 12.01.2023

Почему MSVC использует инструкцию SSE2 для такой тривиальной вещи?
Код: double Ret_Value=0; при настройках по умолчанию VS2012 компилируется в: 10112128 xorps xmm0,xmm0 1011212E movsd mmword ptr [Ret_Value],xmm0 Если SSE2 отключен в настройках проекта, он компилируется в:...
391 просмотров
schedule 24.07.2023

Сборка: преобразование в оператор if с использованием двух fld, fcomp, fnstsw и теста 41h
Может ли кто-нибудь помочь мне понять следующий код? fld qword ptr [L1000F168] fcomp qword ptr [L1000A2F0] fld qword ptr [L1000F168] fnstsw ax test ah,41h jnz L100012F0 Это вывод компилятора, преобразованный в ассемблер из...
1346 просмотров
schedule 06.08.2022

Как использовать инструкции VFMA в armv7 (Cortex A5) iOS?
Я хочу использовать инструкцию VFMA в своем проекте. Однако ассемблер сообщит об ошибке, так как инструкция требует VFP4.
256 просмотров
schedule 06.02.2024

Операции FPU, генерируемые GCC во время преобразования целого числа в число с плавающей запятой
Я хочу выполнить деление на FPU в C (используя целочисленные значения): float foo; uint32_t *ptr1, *ptr2; foo = (float)*(ptr1) / (float)*(ptr2); А в NASM (из объекта, скомпилированного через GCC ) он имеет следующее представление:...
859 просмотров
schedule 02.02.2023

Встроенный ассемблер вызывает зависание внутри другой функции
Я заметил, что при использовании моего встроенного ассемблерного кода он либо невероятно медленный, либо останавливается по сравнению с моим кодом на C++, который завершается очень быстро. Мне любопытно, почему это происходит, когда я вызываю...
138 просмотров
schedule 15.06.2022

Жесткие сбои STM32 Cortex-M4F FPU на базовом VLDR
Да, в моем конкретном MCU присутствует FPU. Код компилируется с флагом -mfloat-abi=soft , иначе переменная с плавающей запятой никогда не будет передана в R0. FPU включается через SCB->CPACR |= ((3UL << (10 * 2)) | (3UL << (11 *...
111 просмотров
schedule 18.11.2023