这是 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
但是他没办法在字串中定义换行符号,
请问有其他方法可以达成吗?