不要把offset Label2-offset Label1作为invoke参数
win32asm吧
全部回复
仅看楼主
level 1
chunfeng3457 楼主
我有一个程序:
Label1 equ this byte
...
...
Label2 equ this byte
invoke _Align,offset Label2-offset Label1 ;A
mov eax,offset Label2-offset Label1 ;B
经调试器反汇编得到,其中语句A和B:
PUSH 388
CALL 004012C6
MOV EAX,27E
我证实,27E是正确值,388是错误值
经测试,当Label1和Label2之间的代码越简短,误差量会越小。
经测试,有时,当Label1和Label2之间的代码简短时,能得到正确结果,比如:
PUSH 1A
CALL 004012C6
MOV EAX,1A
所以,为了绝对正确,可以使用如下代码:
mov ecx,offset Label2-offset Label1
invoke _Align,ecx
2019年09月15日 02点09分 1
1