有关于Win32汇编中的串处理指令

SteveYoung 2004-11-23 12:00:32
大家好,我看到这样一段源代码:(罗sir的Win32教材P346页,有书的朋友麻烦看一下)

szAllowedChar db '0123456789ABCDEFabcdef',08h
.....
.code
.....
mov eax, wParam ;WM_CHAR消息中的一段代码
mov edi, offset szAllowedChar
mov ecx, offset szAllowedChar
repnz scasb
.if ZERO?
.if al > '9'
and al,not 20h
.endif
invoke CallWindowProc, lpOldProcEdit, hWnd, uMsg, eax, lParam
ret
.endif

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
在这里有几个问题,不太清楚:
1.在这句:mov eax, wParam中,wParam中是否存放的是键盘输入的字符?如果是的话,那么是ah还是al中存放的字符?

2.这句“.if ZERO?”是什么意思?是对谁的判断?PSW吗?

谢谢,请高手明示!
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
SteveYoung 2004-11-25
  • 打赏
  • 举报
回复
谢谢wangziz(zi),那个上边的确有一个函数调用的,获取到了WM_CHAR消息,谢谢你的回答!
谢谢mydo(坎道斯),哪个地方是我打错了,非常抱歉,也感谢你的回答,这个问题我想我弄明白了!

非常感谢2位!
大熊猫侯佩 2004-11-24
  • 打赏
  • 举报
回复
首先楼主你打错了一个地方:

mov ecx, offset szAllowedChar

应该是:

mov ecx, sizeof szAllowedChar

1 一般若 RegisterWindowClas 的版本是:

Unicode TM 则 在wParam 中提供Unicode码(双字节)
否则 提供 ASCII 码(单字节)。

2 应该是对 repnz scasb 跳出条件的判断
wangziz 2004-11-24
  • 打赏
  • 举报
回复
mov eax, wParam
这句上面是不是有个call?如果是看看那个函数名不就可以知道是干什么了么?
而且在msdn2000上搜搜就可以了。
SteveYoung 2004-11-24
  • 打赏
  • 举报
回复
还有人补充一下吗?自己up一下
wangziz 2004-11-23
  • 打赏
  • 举报
回复
2。zero? 零标志设置时返回为真

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧