第七章 输入/输出与中断【微机原理】3

简介: 第七章 输入/输出与中断【微机原理】3

1.中断向量表的建立

1.DOS系统功能调用法(INT 21H)

  功能号:
      (AH)=25H。
  入口参数:
      (AL)=中断类型号
      (DS)=中断服务程序入口地址的段地址
      (DX)=中断服务程序入口地址的偏移地址 

如中断服务子程序名为INT60,中断类型号为60H

PUSH DS           ;保护DS
LEA  DX,INT60    ;取服务程序偏移地址
MOV  AX,SEG INT60;取服务程序段地址
MOV  DS,AX
MOV  AH,25H      ;送功能号
MOV  AL,60H      ;送中断类型号
INT  21H          ;DOS功能调用
POP  DS           ;恢复DS 


2.直接装入法

用传送指令直接将中断服务子程序首地址INT60置入向量表中。设中断类型号为60H(此类型号对应的向量表地址为从00180H即0000H: 0180H开始的四个连续存储单元)。程序段如下:

   XOR  AX,AX
   MOV  DS,AX
   MOV  AX,OFFSET INT60
   MOV  DS:[0180H],AX ;置偏移地址
   MOV  AX,SEG INT60
   MOV  DS:[0180H+2],AX;置段地址 

2.编程举例
编写中断服务程序实现在屏幕上显示字符串“This is a Interruption Service Program!”。设中断类型号取60H,采用DOS功能调用法置中断服务程序入口地址,通过软中断指令INT 60H实现中断服务程序的调用。程序设计如下:
int_1.asm

DATA  SEGMENT
MESG  DB 'This is a Interruption Service Program!$'
DATA  ENDS
CODE  SEGMENT
       ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
PUSH    DS          
MOV   DX,OFFSET DISP60  ;取DISP60的偏移地址
MOV   AX,SEG DISP60   ;取中断服务程序DISP60的段地址
MOV   DS,AX
MOV   AH,25H      
MOV   AL,60H      
INT   21H           
POP   DS    
INT     60H
MOV   AH,4CH
INT     21H
DISP60  PROC  FAR                  ;中断服务程序DISP60
        MOV    DX,OFFSET MESG
        MOV    AH,09H
        INT     21H
        IRET
DISP60  ENDP
CODE   ENDS
         END  START

在本例的中断服务程序中无须保护现场和恢复现场。

结果1

说明:此为VS CODE执行结果

其中,Do you need to keep the DosBox[Y,N]

不是程序本身的输出结果

int_2.asm

DATA  SEGMENT
MESG  DB 'This is a Interruption Service Program!$'
DATA  ENDS
CODE  SEGMENT
       ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
PUSH    DS          
XOR  AX,AX
   MOV  DS,AX
   MOV  AX,OFFSET DISP60
   MOV  DS:[0180H],AX ;置偏移地址
   MOV  AX,SEG DISP60
   MOV  DS:[0180H+2],AX;置段地址          
POP   DS    
INT     60H
MOV   AH,4CH
INT     21H
DISP60  PROC  FAR                  ;中断服务程序DISP60
        MOV    DX,OFFSET MESG
        MOV    AH,09H
        INT     21H
        IRET
DISP60  ENDP
CODE   ENDS
         END  START

结果2

说明:此为VS CODE执行结果

其中,Do you need to keep the DosBox[Y,N]

不是程序本身的输出结果



7.5可编程中断控制器Intel 8259A

7.5.1 8259A的功能

7.5.2 8259A的内部结构及外部引脚

7.5.3 8259A的工作方式

7.5.4 8259A的编程

最后

请您阅读文章声明,默认同意该声明

打赏通道


相关文章
|
9月前
|
芯片
第七章 输入/输出与中断【微机原理】2
第七章 输入/输出与中断【微机原理】2
53 0
|
9月前
第七章 输入/输出与中断【微机原理】1
第七章 输入/输出与中断【微机原理】1
37 0
|
物联网
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
272 0
STM32:TIM输入捕获硬件部分(内含:1.输入捕获简介+2.频率测量+3.通用/高级定时器的输入捕获电路分析(重点)+4.主从触发模式+5.输入捕获基本结构(重点)+6.PWM基本结构)
|
11月前
|
存储 芯片
【微机原理笔记】第 6 章 - 输入输出和中断技术
【微机原理笔记】第 6 章 - 输入输出和中断技术
174 0
汇编语言与微机原理实验四:8259单脉冲触发中断
汇编语言与微机原理实验四:8259单脉冲触发中断
113 0
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
357 0
STM32:TIM输入捕获模式测频率并在OLED上显示频率(内含:1.接线图/实物图+2.代码部分+3.输入捕获模式使用到的STM32库函数)
STM32:输入捕获模式测频率和占空比(内置1.实物图+2.代码部分/注释)
STM32:输入捕获模式测频率和占空比(内置1.实物图+2.代码部分/注释)
358 0
STM32:输入捕获模式测频率和占空比(内置1.实物图+2.代码部分/注释)
|
芯片
复习单片机:矩阵按键(内含1 矩阵按键介绍+2 硬件设计+3 软件设计+4原始代码+5 实验现象)
复习单片机:矩阵按键(内含1 矩阵按键介绍+2 硬件设计+3 软件设计+4原始代码+5 实验现象)
312 0
复习单片机:矩阵按键(内含1 矩阵按键介绍+2 硬件设计+3 软件设计+4原始代码+5 实验现象)
|
编解码 芯片
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)
474 0
复习单片机:8*8点阵--->点亮第一个点(内含:1LED 点阵介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象)
|
芯片
复习单片机:静态数码管(内含1 数码管介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象) (注:数码管介绍和硬件设计是重点)
复习单片机:静态数码管(内含1 数码管介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象) (注:数码管介绍和硬件设计是重点)
276 0
复习单片机:静态数码管(内含1 数码管介绍+2 硬件设计+3 软件设计+4.原始代码+5 实验现象) (注:数码管介绍和硬件设计是重点)