[問題] MASM Win32 的組合語言問題

看板ASM作者 (翼天)時間10年前 (2014/01/01 13:18), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
這是 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 但是他沒辦法在字串中定義換行符號, 請問有其他方法可以達成嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 101.12.138.56

01/01 13:29, , 1F
第二個問題應該用macro就可以了吧?
01/01 13:29, 1F

01/01 16:04, , 2F
感覺第一個應該是PE檔的限制? 載入DLL時才把位址填入的
01/01 16:04, 2F

01/15 05:53, , 3F
`AAA' is reserved. google `import table', etc.
01/15 05:53, 3F
文章代碼(AID): #1ImwKOC8 (ASM)