汇编学习笔记33

中断传送方式:

中断和中断源

中断是一种使CPU挂起正在执行的程序而去处理特殊事件的操作。引起中断的事件称为中断源

中断源可能是来自外设的输入输出请求,也可能是计算机异常事件或其他内部原因。

中断的传送

当CPU需要输入或输出数据时,先作出一些必要的准备工作,然后继续执行程序。当外设完成一个数据的输入或输出后,向CPU发送中断请求,CPU挂起正在执行的程序,转去执行输入或输出操作。完成输入或输出后,返回程序继续执行。

中断的缺点是每次中断,只能传送一次数据,数据传送速度不高。

中断向量表

IBM PC支持256种类型的中断 0~0FFH。每种类型中断由相应中断处理程序处理。中断向量表就是各种中断类型的处理程序地址表。

存储器低1.5K字节由系统占用,其中低1K字节存放中断向量,每项占用4个字节,共能存放256个中断向量。其中每项的低字存放向量的偏移地址,高字存放向量的段值。每个中断向量地址由中断类型号乘4可以算出。

中断向量号的分配

保留60H~68H和0F1H~0FFH中断向量号,其他向量号都可以认为已经被占用。

CLI指令,将中断标志清0

STI指令,将中断标志置1

设置和存取中断向量

如果新的中断功能只供自己使用,或自己编写的中断处理程序替代了系统中的处理程序时,应保存替代前的中断向量,在程序结束时还原。

一般利用DOS提供的25H系统功能调用来设置中断向量,35H功能调用来取出中断向量

25H格式为 AL=中断向量类型号  DS=入口段值 DX=入口偏移

35H格式为 AL=中断向量类型号  ES=出口段值  BX=出口偏移

例: 利用DOS功能调用来存取中断向量

MOV AL, N

MOV AH, 35H

INT 21H

PUSH EX

PUSH BX

PUSH DS

MOV AX, SETMENT INTHAND

MOV DS, AX

MOV DX OFFSET INTHAND

MOV AL 25H

INT 21H

POP DS

……

POP DX

POP DS

MOV AL, N

MOV AH, 25H

INT 21H

RET

INTHAND……

原文地址:https://www.cnblogs.com/hailong/p/1922480.html