“在int 16h中断例程中,一定有设置IF=1的指令。”这种说法对吗?
逛了下论坛,最后我认为这种说法是对的! -_-!!!有点像蒙!
在int 16h中断中,CPU一定还执行了int 9h号中断
下面是分析:(以我目前知识,只能这样分析,有点带猜)
int 9h号中断例程是向键盘缓冲区写入数据,int 16H号中断例程是向缓冲区读取键盘输入。
int 16h号中断有一特点:int 16h号中断例程检测键盘缓冲区,发现缓冲区空,则循环等待,直到缓冲区中有数据。停,先说这,这说明在int 16h中断过程中(int 16h中断在循环等待)能进行键盘输入,说明CPU响应了int 9h中断。且,int 16号中断没返回。
现在说到IF的值,CPU在响应int 16h中断例程后,为关闭单步中断,要将IF值置0。
int 9h号中断为可屏蔽中断,如果IF=0,CPU则不响应可屏蔽中断!
而CPU响应了int 9h号中断,说明在int i6h中断过程中一定有设置IF=1的指令。
- [游客] 飘过 06/11 13:31
- [fpamc] 貌似我正在步入你的路线……`(*∩_∩*)′Up!Up! 05/24 07:46
- [782936509] 敢问高手你是什么基础开始学的,我没有基础想学编程可以的吗?很想成为一个编程员,希望多多指教,呵呵 12/24 19:26
- [aten] 上面的程序我忘记设置要写入的扇区数了,……-_-~! 08/07 15:50
- [keyia] 啊,如梦初醒!万分感谢 05/28 01:32
- [aten] 好久没来汇编网了,拿你调试的结果来说吧! F:\dosimg\>debug c0s.exe - 05/26 22:52
- [keyia] keyia:变成游客了 05/22 19:42
- [游客] 向您请教: (8)从上我们可以看出tc.exe把c0s.obj和用户obj文件一同进行连接,生成e 05/22 19:40
- [aten] dw 定义的应该是10个字单元,我写成了8个了!所以答案就成了20H 04/26 22:01
- [aten] 恩,^_^ 04/24 18:36
- [游客] 这个,你的那个安装INT9中断程序的程序有一点错误,以下这个是我改正后的: assume cs:c 10/08 07:28
- [游客] 没想到我想走的路和正在走的路你已经走过一遍了,可以的话请加865650570——凌陶 愿我们在同一 10/07 23:30
- [keyia] 向您请教: (8)从上我们可以看出tc.exe把c0s.obj和用户obj文件一同进行连接,生成 05/22 19:44
[ 游客 发表于 2009-04-15 09:33 ]
分析的很有道理。我也这么认为。