实验16(P289)程序
说明:
在进行这个实验时,往往会参考16.4给出的代码(四个子程序和直接定址表功能选择程序)如果安装16.4给出的功能子程序的安装程序习惯采用下面图1安装结构会出问题,问题有两个:
1:table dw sub1……中SUB1存放的应该是子程序的偏移地址,这个偏移地址是相对于中断程序入口的,而此时Sub1中存放的是相对于安装程序入口的地址。所以应该将被安装代码放到code段标号Start前边。
2:中断程序被调用时 table[bx]默认的段存器为cs,所以在安装程序中设置中断向量表时,应设:cs 200h ip 0 而不是cs 0 ip200 h,
assume cs:code
code segment
start:
安装程序
;--------------------------
被安装代码:
;--------------------------
code ends
end start
== 图1 ==
其它问题:
P287(第五行)第三个子程序左移多了四位。
P288(第十行)table后冒号去掉
P288(第十九行)ret改为iret
P289(第二行)ret改为iret |