fpu

    2熱度

    1回答

    我寫在NASM功能將從32位ANSI C的被稱爲裝入FPU 函數原型用C看起來是這樣的: long double scalar(int n, long double *x) 其中x是一個指向long doubles數組的指針。 mov ecx, [esp+8] ; n mov eax, [esp+12] ; *x fld [eax] ; ERROR: operation siz

    0熱度

    1回答

    由於學術原因,我正在AArch64上使用sqrt函數的性能。 代碼爲單精度浮點數sqrtf功能: fsqrt s0, s0 ret 代碼雙精度浮點數開方功能: fsqrt d0, d0 ret 我指的是理論上的潛伏期爲FSQRT從這裏: http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Softwa

    3熱度

    1回答

    section .data qVar1: dq 1 section .bss var28: resb 28 section .text _main: ; Use an MMX instruction movq mm0, [qVar1] ; Move quadword from r/m64 to mm. ; Rea

    0熱度

    1回答

    我試圖創建一個基準ARM在隨後的指令循環(組裝),單獨和組合: 整數加法 整數乘法 浮點加法 浮點乘法 這是我的整數運算代碼: int additions_int(int n) { int i, dummyValue = n; __asm ( "MOV R0, #2\n" "MOV R1, #6\n" ); for (i = 0;

    3熱度

    1回答

    我正在爲Cortex M4F編寫線程代碼。一切正常,我正在研究通過延遲堆棧使FPU上下文切換更高效。 我讀過ARM的AN298,我實現了基於禁用FPU和處理UsageFault的替代方法,但較低的(S0-S15)寄存器沒有被硬件正確保存/恢復。我認爲問題在於圖11: 根據這一點,當PendSV的運行FPCAR應該指向任務A的堆棧保留的空間。但就我所見,由於CONTROL.FPCA在任務C中很高,因

    1熱度

    2回答

    由於我的主要操作系統是Linux,並在Visual Studio上有項目,我決定使用聯機編譯器來實現它。我發現許多人建議使用this。因此,這裏是我的代碼: #include <iostream> using namespace std; int main(void) { float a = 1; float b = 20.2; float res = 0; float res1 =

    0熱度

    1回答

    基本上,我想將用戶輸入值乘以設定值。乘以當用戶輸入在一起,但是,如果我預設「號」的值(例如:6)該代碼的作品,它不會做乘法並返回0 _start: finit ; init. the float stack output inprompt ; get radius number input number, 12 ; get (ascii) value of thi

    0熱度

    1回答

    我正在使用FP IEEE-754到MASM程序集上的StrDec。它工作正常,儘管我花了一些時間搞清楚這一點,但我不確定如何在逗號後添加更多數字 - 現在有兩個,例如123.46,但我需要123.456789。我想我需要一個計數器來處理我的額外位,但我得到access violation,同時在逗號和增加字節數之後添加額外的數字。 .data CaptionOut BYTE "Resul

    1熱度

    1回答

    我在讀「每個計算機科學家應該知道的關於浮點運算的知識」,並且遇到了一些我不明白的地方。本文認爲,對於給定的B和E(基數和指數),歸一化浮點數的最大值是B×B^E,最小值是B^E。我不明白它的最大部分。 以B = 10 P = 3,E = 4爲例。這個數字的最小值可以是1.00×10^4,等於10^4(B^E)。最大值爲9.99×10^4,與B×B^E接近但不完全等於它。論文沒有提及任何近似值,所以

    1熱度

    1回答

    我在StackOverflow中搜索了很多其他問題,但是他們都沒有真正解決我的問題。 我寫一個Linux內核模塊,我需要計算潛水百分比值的整數被另一個整數爲了得到一個浮點值範圍介於0和100: int v1 = 5; int v2 = 25; float perc = v1/v2; 對於所有我們已經知道的原因,當我嘗試編譯它時,我得到「SSE寄存器返回,SSE禁用」錯誤。 是否有解決方案來