basm

    5熱度

    2回答

    我想要做的是,使用匯編,創建一個類實例,調用其中一個方法,然後釋放該實例。 我知道我失去了一些東西很重要,可能很簡單,但我不知道是什麼。 program Project2; {$APPTYPE CONSOLE} uses SysUtils; type TSomeClass = class(TObject) private FCreateDateT

    3熱度

    2回答

    我有以下功能在Delphi 2006中工作,但在Delphi XE2下,它在處理RET時給出訪問衝突錯誤或特權指令錯誤。 function Q_TrimChar(const S: string; Ch: Char): string; asm PUSH ESI MOV ESI,ECX TEST EAX,EAX JE @@qt MOV

    6熱度

    3回答

    我有一個問題。我有以下用ASM編寫的x86 delphi代碼。我需要把它移植到AMD64上? type TCPUID = array[1..4] of Longint; function GetCID : TCPUID; assembler; register; asm push ebx push edi mov edi, eax mov eax,

    5熱度

    1回答

    如何實現用非常快的英特爾POPCNT指令16/32/64位字中的1位的計數,在德爾福XE或XE2?是否有一個庫函數直接訪問這條指令?有人可以寫一個演示asm部分說明它的使用嗎? 最後,有什麼選擇64位德爾福(沒有asm可用)? 在此先感謝 t

    4熱度

    1回答

    我正在研究一個JIT編譯器,並試圖弄清楚如何爲託管類型(如字符串)輸出適當的清理塊。 對於具有string類型的一個局部變量的函數清理塊的拆卸是這樣的: 0044333C 648910 mov fs:[eax],edx 0044333F 6854334400 push $00443354 00443344 8D45FC lea eax,[ebp-$04] 00443347 E818

    3熱度

    1回答

    爲了更好地解釋我正在努力完成的任務,我將從一些有用的東西開始。 說,我們有可以調用其他程序並傳遞一個字符串參數給它一個過程: procedure CallSaySomething(AProc: Pointer; const AValue: string); var LAddr: Integer; begin LAddr := Integer(PChar(AValue));

    2熱度

    2回答

    我試圖將CrapWOW散列從http://www.team5150.com/~andrew/noncryptohashzoo/CrapWow.html轉換爲delphi或寧可basm。我的ASM技能非常有限,但我認爲它不會太難... 無論如何,在一些關於asm轉換的網頁的幫助下,我來到這個,但它不工作...尤其是,對於最後一部分我不知道如何轉換。這是寄存器賦值給參數和返回參數嗎? function

    4熱度

    1回答

    我一直在使用IDA中的一些德爾福組件。 我注意到很多系統調用,我不明白,並且無法找到任何關於它們的文檔。例如:我注意到了很多對未知函數LStrClr(void *)的調用。 我能找到的最好的是這個網站http://www.delphibasics.co.uk/ByLetter.asp?Letter=A 但它缺少很多函數調用,包括LStrClr。 非常感謝您的回覆, Michael Engstler

    5熱度

    3回答

    我希望能夠將一行ASM轉換爲shellcode。即: CALL EBX 我如何去這樣做,也能夠正確執行這種轉換的shellcode,這樣我可以將其存儲在一個Delphi應用程序中的變量。即: var ShellCodeArray: array[0..3] of Byte = ($55,$8B,$EC,$81);

    2熱度

    2回答

    我遇到一個問題,同時移植德爾福BASM32代碼FPC: program MulTest; {$IFDEF FPC} {$mode delphi} {$asmmode intel} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} function Mul(A, B: LongWord): LongWord; asm MU