微机实验课-实验三中断程序设计

微机实验三操作参考

2018年11月 William

〇,实验目的

结合实验指导书,1)掌握中断概念,掌握中断程序设计方法;2)掌握中断程序调试方法。

一,建立本次实验的工程文件

如前面实验一样,复制实验指导书上的代码,建立如 shiyan3.asm文件,放在带汇编工具的目标文件夹下。详细操作,参见前面的实验。

提醒一点:在使用命令[ MASM shiyan3.asm ] 进行汇编时,出现一个警告,说我们使用了保留字wait。解决方法:1,警告可以不管他。2,或者,将程序中 wait变一下,如变成wait1 就ok了。

微机实验课-实验三中断程序设计_第1张图片

二,完成本次实验的基本要求

1,观察并记录00H中断向量的变化

思路:要记录00H中断向量的变化,则需分析源程序,知道00H中断向量在程序中是如何使用的。程序分析注释如下图。

微机实验课-实验三中断程序设计_第2张图片

         首先观察,当DS和ES初始化时,内存地址中的值,执行命令-g 076B:000A如下。

微机实验课-实验三中断程序设计_第3张图片

可以看到,只运行源程序的前四行代码时,即初始化时,DS地址中的内容为0,ES地址中内容为代码段CS的初始地址,和一个偏己地址,即【076B:005B】。

接下来,执行命令-g 076B:0010 ,即执行完“call init”之后,得到如下图中结果。

微机实验课-实验三中断程序设计_第4张图片

可见DS、ES数据段中,已存好00H中断向量的偏移地址和基地址,即【076B:005B】

微机实验课-实验三中断程序设计_第5张图片

以上便是00H中断向量的变化情况。

2,设置断点在newint行,观察结果

多次使用—U命令,可以找到076B:005B 对应地址的代码,如下图。可知005B对应即为子程序newinit的偏移地址。即,当中断产生时,将调用newinit子程序。

微机实验课-实验三中断程序设计_第6张图片

 当输出ABCD等健值时,无反应,只有当输入“I”时,程序运行到“断点”,如下图,此时程序已经进入“MOV BP,SP”这一行了,即将执行newinit子程序。

微机实验课-实验三中断程序设计_第7张图片

         继续使用-G 命令,将程序全部执行。会观察到,回显一个“A”值,即成功执行了newinit子程序的功能。如下图。

微机实验课-实验三中断程序设计_第8张图片

        此时程序回到wait主程序循环中,若键入I,则在此进入00H中断,键入Q,则退出到DOS界面,键入其他,则无反应。如下图所示。

微机实验课-实验三中断程序设计_第9张图片

到此完成任务一的内容。

欢迎交流提问,请留言,或加笔者的扣扣1021100382~

你可能感兴趣的:(微机原理实验课)