问个汇编中断的问题,我想通过中断来判断输入enter时屏幕暂停
时间:2011-06-16
来源:互联网
我是想通过16H的0号功能来实现暂停,等待输入的,但在调用中断的时候有问题,有哪位大虾能帮我看下,谢谢
如题:我是想通过键盘16H的0号功能来实现让屏幕等待输入的,但是不可以,不知道哪里出错了,有高手可以帮忙看一下吗?谢谢~
;-中断处理程序,通过中断调用该中断子程序来检测键盘的状态---
keyboardtest proc near
push ds
push ax
push cx ;保存寄存器
mov ax, data
mov ds, ax ;初始化ds为数据段data的首地址
sti ;开中断,允许中断嵌套
dec cnt ;递减计数
jnz exitz ;计数值不为0则直接结束,否则就检测键盘是否有内容输入
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in al,60h
cmp al,1ch ;判断键盘是否输入了一个回车
jnz cc1
mov al,11111101b ;关闭定时器中断
out 21h, al
mov ah,0 ;如果输入的是回车的话,则让正在运行的程序暂停,等待键盘输入,当键盘输入了任意键以后,程序继续运行
int 16h ;就这里,程序运行的时候并没有暂停,这是为什么呢?
cc1:
mov cnt,4 ;重新进行计数
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
exitz:
cli ;关中断
pop cx
pop ax
pop ds ;恢复寄存器
iret
keyboardtest endp
如题:我是想通过键盘16H的0号功能来实现让屏幕等待输入的,但是不可以,不知道哪里出错了,有高手可以帮忙看一下吗?谢谢~
;-中断处理程序,通过中断调用该中断子程序来检测键盘的状态---
keyboardtest proc near
push ds
push ax
push cx ;保存寄存器
mov ax, data
mov ds, ax ;初始化ds为数据段data的首地址
sti ;开中断,允许中断嵌套
dec cnt ;递减计数
jnz exitz ;计数值不为0则直接结束,否则就检测键盘是否有内容输入
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in al,60h
cmp al,1ch ;判断键盘是否输入了一个回车
jnz cc1
mov al,11111101b ;关闭定时器中断
out 21h, al
mov ah,0 ;如果输入的是回车的话,则让正在运行的程序暂停,等待键盘输入,当键盘输入了任意键以后,程序继续运行
int 16h ;就这里,程序运行的时候并没有暂停,这是为什么呢?
cc1:
mov cnt,4 ;重新进行计数
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
exitz:
cli ;关中断
pop cx
pop ax
pop ds ;恢复寄存器
iret
keyboardtest endp
作者: love277369986 发布时间: 2011-06-16
自己先顶了~~~~~~
作者: love277369986 发布时间: 2011-06-16
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28