王爽《汇编语言》17章 乱记

上面是有理解,是有点技巧。

检测点17.1

“在INT 16H中断例程中,一定有设置IF=1的指令。”这说话对吗?

试着去找一下16中断例程汇编代码,没有设置IF=1的指令吧

这边仔细考虑一下,程序执行到INT 16H的时候,会调用16H号中断例程,在调用这个中断例程的时候,如果是没有设置IF=1,这边在执行到INT 16H中断例程的时候,如果是在键盘缓冲区里面没有找到数据,程序有自动的返回到原来的调用INT 16H的指令代码中去执行,这是第一种机制;

当我们在键盘上按下一个键的时候,这边就会有一种机制,就是,如果键盘缓冲区一直是被16H号中断例程给家监视着,或者说,按下键盘上的一个键的时候,机器自动调用INT 9中断例程的时候,将键盘上的数据放到键盘缓冲区的时候,同时会判断机器是否调用过16H中断例程,并且一直是在等待数据,如果是在等待数据的时候,就重新返回到16H号中断例程的指令断点中去执行16号中断例程,然后返回数据,这是第二种机制。

通过上面这个书上的例程来看,我们运行例程的时候,是执行到INT 16H的时候,例程就在等待我们输入数据(此时运行程序之前,键盘缓冲区的内容是空的),上面这样说的通,以此看来,是没有设置IF=1的指令的,但是如果是没有设置的时候,我们按下键盘上的一个键的时候,应该是不会自动去执行INT 9中断例程的,这是是否16H号中断例程就是通过第一种机制的呢,至于第一种机制是怎么实现的,这边应该也是有几种的猜测,准备休息上班,就到这边了……如果有看到本博客的大虾,帮个忙。

字符串处理:

猜你喜欢

转载自blog.csdn.net/qungxue/article/details/6527822