"在int 16h中断例程中,一定有设置IF=1的指令." 这种说法对吗?
不对.
8086CPU的中断系统具有256个中断(0-255),其中分为
(1)外部中断:又分为 1. 可屏蔽中断,可以由标志寄存器中的IF位控制是否屏蔽(IF=0则屏蔽);
2. 不可屏蔽中断, 中断向量号为02;
(2)内部中断: 包括除法溢出中断,int指令中断,溢出中断,单步中断, 不受标志寄存器的IF位控制;
题意中设置为1是为了保证在读取键盘缓冲区的第一个字节内容时,键盘中断可以响应, 以便将相应按键加入键盘缓冲区中,
但是按下键即调用 int 9h, 属于内部中断, 不受IF位的控制, 故不需要将IF设置为1。
故这种说法错误。