注册 登录
编程论坛 汇编论坛

问题:显示鼠标的坐标,奇怪的错误?

hwbnet 发布于 2008-03-06 23:21, 1126 次点击
显示鼠标的坐标:获得坐标后调用自定义的函数转换成字符。
鼠标限制在窗口内,不会小于100。
z10 dd 10
sbx dd ?
dz dd 3 dup(?);转换成字符后存储在此。

invoke GetCursorPos,addr sbx
sub dword ptr sbx,100;;;;;;;;;;;;;;;;;;;;;;;;;;;这里注释掉,显示的坐标正确,减100后则会显示错误的坐标。
push dword ptr sbx
push offset dz
call zfzh
……
……
……
zfzh:
 mov ebx,DWORD ptr [esp+4]
 mov eax,DWORD ptr [esp+8]
 mov ecx,9
 cmp eax,1000000000
 jnc @f
 dec ecx
 cmp eax,100000000
 jnc @f
 dec ecx
 cmp eax,10000000
 jnc @f
 dec ecx
 cmp eax,1000000
 jnc @f
 dec ecx
 cmp eax,100000
 jnc @f
 dec ecx
 cmp eax,10000
 jnc @f
 dec ecx
 cmp eax,1000
 jnc @f
 dec ecx
 cmp eax,100
 jnc @f
 dec ecx
 cmp eax,10
 jnc @f
 dec ecx
@@:
 xor edx,edx
 div DWORD ptr z10
 add edx,30h
 mov BYTE ptr [ebx+ecx],dl
 dec ecx
 cmp ecx,0ffffffffh
 jnz @B
 add esp,12
 jmp DWORD ptr [esp-12]
0 回复
1