汇编网首页登录博客注册
unixandlinux的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新评论
最新留言
好友圈
友情链接

[2023-08-26 11:36] 第 17 章 检测点 17.1

检测点 17.1

“在 int 16h 中断例程中,一定有设置 IF=1 的指令。”这种说法对吗?
答:正确。int 16h 中断例程的功能是读取键盘缓冲区的信息。当执行该中断例程时,如果键盘缓冲区为空,则该中断例程会处于循环执行状态(即循环检测键盘缓冲区是否存在可读取信息)以等待键盘缓冲区被写入信息;由于引发 int 16h 中断过程中,硬件已经自动执行了 IF=0,因此如果 int 16h 中断例程中没有设置 IF=1 的指令,那么一旦键盘缓冲区在执行 int 16h 中断例程之前的状态为空,使得 int 16h 中断例程处于等待键盘输入的状态,IF=0 会导致 CPU 无法响应 int 9 中断以执行键盘缓冲区写入操作。于是 int 16h 中断例程会成为死循环(即循环等待键盘输入的键盘死锁状态 —— 键盘无论输入什么,其引发的 int 9 中断都会由于 IF=0 而使得 CPU 无法予以响应)。
评论次数(0)  |  浏览次数(285)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码