這是 win32 的組合語言問題,
發在這裡應該可以吧?
在 Windows 下編寫組合語言,
用 MASM 編譯成執行檔後用 OllyDbg 打開執行檔,
發現裡面所有呼叫外部模組的方式都是:
call <jmp.&kernel32.GetTickCount>
jmp dword ptr [<&kernel32.GetTickCount>]
也就是說程式在執行時並非直接進入 API 的入口,
而是多了一步 jmp 的程序,
以我個人來說我很不喜歡這樣的結果,
有沒有方法讓編譯器直接輸出成:
call dword ptr [<&kernel32.GetTickCount>]
呢?
另外,
有些程式碼我經常會使用到,
但是我不想把它做成副程式去呼叫,
能不能自定義一些指令,
比方說:
aaa
指令就代表
mov ecx,eax
shr eax,4
and ecx,0Fh
and eax,0Fh
這四個指令。
我試過用 textequ
但是他沒辦法在字串中定義換行符號,
請問有其他方法可以達成嗎?