+ -
当前位置:首页 → 问答吧 → 问个汇编中断的问题,我想通过中断来判断输入enter时屏幕暂停

问个汇编中断的问题,我想通过中断来判断输入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

作者: love277369986   发布时间: 2011-06-16

自己先顶了~~~~~~

作者: love277369986   发布时间: 2011-06-16

热门下载

更多