🌴 2022.6.9 早八 实验四

实验四 子程序及中断实验

1.1 实验要求

熟悉emu8086仿真系统

  1. 实现子程序和中断服务子程序的设计

  2. 编写子程序设置40H中断为自定义中断服务子程序

  3. 编写中断服务子程序实现AX=AX+BX

  4. 编写主程序调用子程序和中断

1.2 理论分析

编写子程序设置40h为自定义中断服务子程序,修改中断向量表存放中断服务程序的偏移地址和段地址。之后通过INT 40H跳转中断服务程序计算AX+BX的值

1.3 汇编语言

💻提示:所有实验源码已在Github整理

;AX+BX
CALL P ;跳转P
MOV AX,1
MOV BX,2
INT 40H ;跳转中断服务程序
HLT ;JMP $

;子程序P 修改中断向量
P PROC NEAR
MOV AX,0
MOV ES,AX ;段地址
MOV DI,40H*4 ;偏移地址
MOV AX,OFFSET INT40H
MOV ES:[DI],AX
MOV AX,CS
MOV ES:[DI+2],AX
RET
P ENDP

;中断服务子程序
INT40H PROC FAR
ADD AX,BX
IRET
INT40H ENDP

1.4 实验结果

微机原理与接口技术09

AX=01,BX=02。执行ADD后,AX=3

微机原理与接口技术10

思考内容:

  1. 中断向量表结构优缺点

    硬件电路实现中断优先权排队的优点是中断响应快,使用灵活。每个中断源都有自己的中断服务子程序,不会相互影响,增加或者减少中断源都很方便。

    缺点是接口电路比较复杂。特别是每个中断源需要有自己的标识,在8086CPU系统中这个标识称为中断类型号,还必须建立这个中断类型号和中断服务子程序的一一对应关系。

  2. 中断服务子程序调试方法

    调用前,设置中断向量,将已经编写好的中断服务程序的入口地址写入中断向量表中。利用DOS功能调用