basm

    7熱度

    5回答

    問題 是否有任何資源用於學習如何在Delphi中使用匯編? 背景信息 我已經找到並閱讀一些大會和指令集的引用(X86,MMX,SSE等)。但是我發現很難在Delphi中應用這些信息。一般的東西,如如何獲得一個類屬性的值等 我想有選項優化代碼時使用匯編。 我的理解: 這將是很難被擊敗的編譯器。 高級優化技術比低級彙編優化更有可能將性能提高几個數量級。 (如選擇不同的algorthims,緩存等) 分

    5熱度

    2回答

    我寫的彙編函數在Delphi 7,但其轉換我的代碼到別的東西: function f(x: Cardinal): Cardinal; register; label err; asm not eax mov edx,eax shr edx, 1 and eax, edx bsf ecx, eax jz err mov eax

    7熱度

    2回答

    有時我寫的很短的裝配功能,如 function SeniorBit(Value: LongWord): Integer; asm OR EAX,EAX JZ @@Done BSR EAX,EAX INC EAX @@Done: end; ,這似乎是內聯的最佳人選: function SeniorBit(Value: LongWord): I

    3熱度

    2回答

    我有下面的代碼,我想將它翻譯成ASM,也可以在Delphi中使用。 ​​ 它的工作原理normaly,但是當我嘗試了大會版本: function Function(parameter: Integer): Integer; cdecl; asm mov eax, FunctionAddressList jmp dword ptr [eax + 5 * 4] end; 它

    5熱度

    1回答

    我遇到了一個問題,以訪問程序集(delphi)中的數組元素。 的代碼是: procedure TMaskBit.AllocBuffer; begin SetLength(DataIn, 6); //array of integer DataIn[0] := 1 ; DataIn[1] := 2 ; DataIn[2] := 3 ; DataIn[

    3熱度

    1回答

    這將如何從asm轉爲純德爾福?我無法編譯需要GraphicEx的組件,給我一個JPG格式的錯誤,內聯程序集不支持64位。 function __ftol: Integer; var f: double; begin asm lea eax, f // BC++ passes floats on the FPU stack fstp qword pt

    7熱度

    3回答

    我正在使用Delphi 2010.是否可以告訴Delphi不爲函數生成序言?我正在寫一些純彙編函數是這樣的: procedure SomeAssembly; stdcall; begin asm ... end; end; ,我想告訴德爾福不會產生此功能的開端和結尾,就像C++的__declspec(naked)功能。 所以沒有人浪費他們的時間,我不需要幫助

    2熱度

    2回答

    我想學習Delphi中的內聯彙編編程,爲此我發現this article非常有幫助。 現在我想編寫一個返回一個長字符串的彙編函數,特別是AnsiString(爲簡單起見)。我已經寫 function myfunc: AnsiString; asm // eax = @result mov edx, 3 mov ecx, 1252 call [email p