请教ascii码的汇编问题
我用16号中断的0号功能来得键盘的输入.然后根据al中的ascii码来判断是哪个键
mov ah, 0
int 16h
.IF al==38 ;如果是“向上”键
doA
.ELSEIF al==40 ;如果是"向下"键
doB
.ENDIF
问题是:1。我按下“向上”和“向下”键的时候,程序并没有去doA或doB
反而是按下"shift+&"和"shift+("的时候,程序去doA和doB
2。程序去调用16号中断的时候,如果没有键盘输入,它是不是会一直阻在那里直到有输入才返回?
为什么会出现问题1所描述的状况么.查过资料,说"向上"和"向下"键的ascii码确实是十进制的38和40啊,难道是因为我长的不够帅而影响到程序的执行???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
谢谢各位朋友 ...
不了解 int 16 的用法,LZ 要好好去了解,是返回键盘扫描码? 还是 ASCII 码?
返回值是ax,其中al是ascii码,ah是扫描码
自顶一下 !
推荐《PC奥秘》一书。
这个除了查手册和调试,没有别的手段。