输入输出和中断程序设计.ppt
《输入输出和中断程序设计.ppt》由会员分享,可在线阅读,更多相关《输入输出和中断程序设计.ppt(48页珍藏版)》请在三一办公上搜索。
1、输入输出和中断程序设计,中断系统端口输入输出,输入过程输入设备把数据送到接口,由CPU执行输入程序把接口中的数据读入CPU,再根据需要放入存储器或寄存器中。处理程序完成对数据的处理并将处理结果放入指定的寄存器或存储器中。输出过程CPU执行输出程序,将存储器或寄存器中等待输出的内容送到输出接口中,然后启动输出设备,将接口中的数据通过输出设备输出。输入/输出的基本条件连接CPU与外设的接口电路和相应的软件-驱动程序。,输入输出,微机端口,通过总线与CPU相连的芯片除了存储器外,还有以下3种芯片:(1)各种接口卡上的接口芯片.(独立显卡等)(2)主板上接口芯片,CPU通过它们对部分外 设进行访问.(
2、USB,键盘、鼠标接口)(3)其它芯片,用来存储相关的系统信息,或 进行相关的输入输出处理.(CMOS,BIOS)这些芯片都有一组可以被CPU读写的寄存器这些寄存器叫做端口。这些寄存器在物理上处于不同的芯片中,但它们都是与CPU的总线相连,CPU通过控制线向它们所在的芯片发出端口读写命令。,端口,每个接口由一组寄存器组成,这些寄存器都分配有一个称为I/O端口的地址编码。计算机的CPU和内存就是通过这些端口和外部设备进行通信的。,I/O接口部件中一般有三种寄存器:1.用作数据缓冲的数据寄存器;2.用来保存设备和接口的状态信息,供 CPU对外设进行测试的状态寄存器;3.用来保存CPU发出的命令,以
3、控制接 口和设备操作的控制寄存器。这些寄存器都分配有各自的端口号,CPU就是通过不同的端口号来选择各种外部设备的。(端口地址),端口编址,I/O端口编址一般分两种方法:1.将I/O与内存单元统一编址,其优点是节省了输入/输出指令,但缺点是占用了内存单元的有效地址空间;2.将I/O独立编址。在80 x86微机中,I/O端口编址在一个独立的地址空间中,端口的读写(CPU访问端口),在访问端口时,CPU通过端口地址(端口号)来定位端口。因为端口所在的芯片和CPU通过总线相连,所以端口地址和内存地址一样,通过地址总线来传送。对端口的读写不能用mov,push,pop等指令。端口的读写指令只要两条:in
4、和out,分别用于从端口读取数据和向端口写入数据,(1)端口读写命令IN 和OUT,例:IN AL,20H;端口CPU OUT 20H,AL;CPU端口在IN和OUT指令中,只能用AX或AL寄存器来存放从端口读入的数据或者要发到端口中的数据。访问8位端口时用AL访问16位端口时用AX。,端口的读写,(2)对0255的端口进行读写 in al,20h;从20h端口读取一个字节 out 20h,al;向20h端口写入一个字节(3)对25665535的端口进行读写时,端口号放在dx中 mov dx,3f8h;将端口号3f8h送入dx in al,dx;从3f8h端口读入一个字节 out dx,al;
5、向3f8h端口写入一个字节,端口的读写,(4)in al,60h指令的CPU执行过程CPU通过地址线将地址信息60h发出.CPU通过控制线发出端口读命令,选 中端口所在的芯片,并通知它,将要 从中读取数据.端口所在的芯片将60h端口中的数据 通过数据线送入CPU.,端口的读写,对CMOS RAM的读写来体会对端口的访问CMOS RAM芯片有一个128个存储单元的RAM存储器,其中0-0DH单元用来保存时间信息,其余大部分单元用于存放系统配置信息,供系统启动时BIOS程序读取。CMOS RAM芯片内部有2个端口,端口地址为70h和 71h。70h为地址端口,存放CPU要访问的CMOS单元地址,7
6、1h为数据端口,存放从选定的CMOS单元中读写的数据。,CMOS RAM芯片的读写,对CMOS RAM的读写来体会对端口的访问,CMOS RAM芯片的读写,其中0-0DH单元用来保存时间信息,其余大部分单元用于存放系统配置信息,供系统启动时BIOS程序读取。,1个128个存储单元的RAM存储器,2个端口(端口地址为70h和 71h),70h为地址端口:存放CPU要访问的CMOS单元地址;71h为数据端口:存放从选定的CMOS单元中读写的数据。,CMOS RAM芯片,例:读CMOS的2号单元数据,要分2步:将2送端口70h 从71h读出2号单元的内容 MOV AL,2 OUT 70H,AL;将2
7、送端口70h IN AL,71H;从71h读出2号单 元数据到AL寄存 器中,例1、将CMOS中用BCD码表示的月份,以十进制的形式显示到屏幕上。在CMOS RAM中,存放着当前的时间:年,月,日,时,分,秒这6个信息的长度都是1个字节,存放单元为:秒:0 分:2时:4日:7月:8年:9 这些数据是以BCD码存放的,例2.将CMOS中的时间信息存于MSG开始的内存空间 lea si,msg mov dl,0jj:mov al,dl;从CMOS中地址为0到9的单元内容读出 out 70h,al;向70H端口写入要访问的单元地址 in al,71h;从数据端口71H取出指定单元的数据 mov si
8、,al inc si inc dl cmp dl,09h jna jj,中断,中断信息任何一个通用的CPU都具备有一种能力,可以检测到从CPU外部发送来或者内部产生的一种特殊信息,并且可以立即对接收到的信息进行处理。这种特殊的信息称为:中断信息中断CPU不再接着向下执行指令,而是转去处理这个特殊信息。,中断,中断信息任何一个通用的CPU都具备有一种能力,可以检测到从CPU外部发送来或者内部产生的一种特殊信息,并且可以立即对接收到的信息进行处理。这种特殊的信息称为:中断信息中断CPU不再接着向下执行指令,而是转去处理这个特殊信息。,中断,当CPU的内部有下面情况发生时,将产生中断信息:(1)除法
9、错误;比如div指令产生除法溢出(2)单步执行(3)into溢出中断(4)int指令对于不同的信息要进行不同的处理,在处理前,CPU 首先要知道,所接收到的中断信息的来源,所以中断 信息中必须包含识别来源的编码,即中断类型码:(1)除法错误:0(2)单步执行:1(3)执行into指令:4(4)执行int指令:指令格式int n,n即为提供给cpu的中断类型码,中断处理中断处理程序就是对中断信息进行处理的一段指令。CPU要执行某个中断处理程序必须获得该程序的入口地址。因此必须在中断信息(中断类型号)与中断处理程序入口地址间建立某种联系。中断向量表中断向量表保存在内存中,CPU用中断类型码,通过查
10、找中断向量表,就可以得到中断处理程序的入口地址。,中断向量表 即中断类型号*4开始的4个单元存放着该类型号所 对应的中断处理程序的入口地址,CS:IP,类型0中断处理程序入口IP类型0中断处理程序入口CS类型1中断处理程序入口IP类型1中断处理程序入口CS类型2中断处理程序入口IP类型2中断处理程序入口CS.,00000H00001H00002H00003H00004H00005H00006H00007H00008H00009H0000AH0000BH,3、中断过程 中断指令INT n:(1)取中断类型号n(2)标志寄存器内容入栈(保护标志寄存器内容)(3)当前CS,IP入栈(4)禁止外部中断
11、(5)取(n*4)IP,(n*4+2)CS(6)转去中断处理程序 中断返回指令IRET:中断处理程序的最后一条指令,4、中断处理程序与子程序相同点:都必须保存返回的断点CS,IP不同点:中断处理程序需要保存标志寄存器内容.中断处理程序不允许再产生中断.中断可以驻留内存,不依赖于调用它的 程序.,5、用户中断的设置(1)编写中断子程序(2)将程序传送到指定空间(0:200H这个空间一般情况下为空)(3)设置中断向量表,这个过程可以直接向中断向量表写数据,也可以由DOS的AH=25,INT 21H来完成,6、BIOS和DOS的装载过程:(1)开机后,CPU加电,初始化 CS0FFFFH,IP=0,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出 中断 程序设计
链接地址:https://www.31ppt.com/p-2244907.html