「汇编语言 第 3 版 王爽」- 参考答案:检测点 15.1

  CREATED BY JENKINSBOT

参考答案

1)
由于这段程序是在中断例程中执行的,因此在进入中断例程时,标志位 IF TF 已经设置为零,无需再次设置:

pushf
call dword ptr ds:[0]

2)
问题出现在 mov word ptr es:[9*4], offset int9 与 mov es:[9*4+2], cs 之间

当执行 mov word ptr es:[9*4], offset int9 以后,发生中断,

此时中断向量表的 9 号中断的偏移地址发生变化,但是段地址还没有修改,因此会去该地址执行未知指令。

核心问题就是 中断向量表的条目改了壹半。解决方法如下:

......
cif
mov word ptr es:[9*4]
offset int9 与 mov es:[9*4+2], cs
sif
......

参考文献

CSDN/汇编语言王爽第三版答案
百度文库/汇编语言实验答案 (王爽)