x87

    0熱度

    1回答

    我在讀this,我注意到他們的例子顯示fld加載值到不同的位置(st0,st1,然後回到st0),而沒有指定加載到哪裏。我假設fild以類似的方式工作,因爲它只是加載整數的手段(或者這是我的理解),但我可能是錯的。所以我的問題是這樣的:fld在哪裏,更具體地說是fild加載值?有沒有一個參數來指定要使用哪個fpu寄存器,還是隻是循環使用8,還是有一些完全不同的方式,我錯過了? 我特別使用的代碼試圖

    2熱度

    1回答

    我正在處理一個分配,我必須將C代碼片段轉換爲內聯彙編。該代碼是呈現Julia分形的程序的一部分。 我已經測試了兩個代碼片段的輸出,並且它們完全匹配,但是我的程序仍然輸出不同的圖像(適用於C代碼的Julia分形,內聯彙編代碼的扁平粉色屏幕)。 這是函數的開始部分以及返回 COLORREF render_point(const double &a, const double &b,

    2熱度

    1回答

    這個例子是寫在NASM: section .bss var28: resb 28 section .text _main: ; Initialize finit fldpi ; Read Tag Word fstenv [var28] mov ax, [var28 + 8] ; move t

    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

    1熱度

    1回答

    我有一對存儲在eax和ecx中的32位浮點數。我可以直接將它們加載到FPU中進行操作,而不必先存儲到內存中?這會顯着簡化一些編譯器代碼,但fld似乎只能在內存上運行。

    5熱度

    4回答

    當我使用CreateProcessAsUser在C#中由服務 我的服務需要等待進程退出啓動一個進程,但我不知道我能做到這一點退出, 我不想使用檢查進程列表中的進程existion

    0熱度

    1回答

    我在讀關於數學協處理器(Paul Carters PC Assembly Book)及其指令以進行浮點計算(在ASM i386上)。然後,我跑到下面的代碼應該返回兩個給定double值的大雙(C調用公約): 1 %define d1 ebp+8 2 %define d2 ebp+16 3 global dmax 4 5 segment .text 6 dmax: 7 enter 0

    0熱度

    1回答

    當Intel首次設計8087時,他們爲什麼選擇將浮點寄存器組織爲堆棧?從這樣的設計中可以獲得什麼樣的優勢?與允許任意寄存器用作源操作數和目標操作數相比,它看起來更不靈活和難以操作。

    4熱度

    1回答

    我們的課程練習要求我們在GNU彙編中創建delta = b2-4ac函數,並從C中訪問它。由於這是一門關於編譯器的課程,而不是彙編,所以教授選擇只展示整數功能,並期望一個整數函數。 但是,我希望個人學習稍微超出責任範圍,創建一個返回浮點而不是整數的可用函數。 我想出了這個C(dont't介意全局,下一個練習的目的是有參數的適當功能): # include <stdio.h> extern fl

    3熱度

    1回答

    我試圖弄清楚在C中的某些代碼中使用浮點數是否足夠滿足我的需求,但是在搜索之後並沒有真正理解如何將精度轉換爲實際數字,我決定爲我的測試用例寫一點代碼,看看結果如何。 漂浮看起來足夠精確,但我非常驚訝,漂浮物在我的17 4700hq haswell處理器(windows 8.1 x64,C,MSVS v120)上運行時間延長了大約70%。我會預計運行時間會相似或浮動速度更快。但顯然不是。所以我關掉了所