




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,输入输出和中断程序设计,中断系统端口输入输出,.,2,输入过程输入设备把数据送到接口,由CPU执行输入程序把接口中的数据读入CPU,再根据需要放入存储器或寄存器中。处理程序完成对数据的处理并将处理结果放入指定的寄存器或存储器中。输出过程CPU执行输出程序,将存储器或寄存器中等待输出的内容送到输出接口中,然后启动输出设备,将接口中的数据通过输出设备输出。输入/输出的基本条件连接CPU与外设的接口电路和相应的软件-驱动程序。,输入输出,.,3,微机端口,通过总线与CPU相连的芯片除了存储器外,还有以下3种芯片:(1)各种接口卡上的接口芯片.(独立显卡等)(2)主板上接口芯片,CPU通过它们对部分外设进行访问.(USB,键盘、鼠标接口)(3)其它芯片,用来存储相关的系统信息,或进行相关的输入输出处理.(CMOS,BIOS)这些芯片都有一组可以被CPU读写的寄存器这些寄存器叫做端口。这些寄存器在物理上处于不同的芯片中,但它们都是与CPU的总线相连,CPU通过控制线向它们所在的芯片发出端口读写命令。,.,4,端口,每个接口由一组寄存器组成,这些寄存器都分配有一个称为I/O端口的地址编码。计算机的CPU和内存就是通过这些端口和外部设备进行通信的。,.,5,I/O接口部件中一般有三种寄存器:1.用作数据缓冲的数据寄存器;2.用来保存设备和接口的状态信息,供CPU对外设进行测试的状态寄存器;3.用来保存CPU发出的命令,以控制接口和设备操作的控制寄存器。这些寄存器都分配有各自的端口号,CPU就是通过不同的端口号来选择各种外部设备的。(端口地址),.,6,端口编址,I/O端口编址一般分两种方法:1.将I/O与内存单元统一编址,其优点是节省了输入/输出指令,但缺点是占用了内存单元的有效地址空间;2.将I/O独立编址。在80 x86微机中,I/O端口编址在一个独立的地址空间中,.,7,端口的读写(CPU访问端口),在访问端口时,CPU通过端口地址(端口号)来定位端口。因为端口所在的芯片和CPU通过总线相连,所以端口地址和内存地址一样,通过地址总线来传送。对端口的读写不能用mov,push,pop等指令。端口的读写指令只要两条:in和out,分别用于从端口读取数据和向端口写入数据,.,8,(1)端口读写命令IN和OUT,例:INAL,20H;端口CPUOUT20H,AL;CPU端口在IN和OUT指令中,只能用AX或AL寄存器来存放从端口读入的数据或者要发到端口中的数据。访问8位端口时用AL访问16位端口时用AX。,端口的读写,.,9,(2)对0255的端口进行读写inal,20h;从20h端口读取一个字节out20h,al;向20h端口写入一个字节(3)对25665535的端口进行读写时,端口号放在dx中movdx,3f8h;将端口号3f8h送入dxinal,dx;从3f8h端口读入一个字节outdx,al;向3f8h端口写入一个字节,端口的读写,.,10,(4)inal,60h指令的CPU执行过程CPU通过地址线将地址信息60h发出.CPU通过控制线发出端口读命令,选中端口所在的芯片,并通知它,将要从中读取数据.端口所在的芯片将60h端口中的数据通过数据线送入CPU.,端口的读写,.,11,对CMOSRAM的读写来体会对端口的访问CMOSRAM芯片有一个128个存储单元的RAM存储器,其中0-0DH单元用来保存时间信息,其余大部分单元用于存放系统配置信息,供系统启动时BIOS程序读取。CMOSRAM芯片内部有2个端口,端口地址为70h和71h。70h为地址端口,存放CPU要访问的CMOS单元地址,71h为数据端口,存放从选定的CMOS单元中读写的数据。,CMOSRAM芯片的读写,.,12,对CMOSRAM的读写来体会对端口的访问,CMOSRAM芯片的读写,其中0-0DH单元用来保存时间信息,其余大部分单元用于存放系统配置信息,供系统启动时BIOS程序读取。,1个128个存储单元的RAM存储器,2个端口(端口地址为70h和71h),70h为地址端口:存放CPU要访问的CMOS单元地址;71h为数据端口:存放从选定的CMOS单元中读写的数据。,CMOSRAM芯片,.,13,例:读CMOS的2号单元数据,要分2步:将2送端口70h从71h读出2号单元的内容MOVAL,2OUT70H,AL;将2送端口70hINAL,71H;从71h读出2号单元数据到AL寄存器中,.,14,例1、将CMOS中用BCD码表示的月份,以十进制的形式显示到屏幕上。在CMOSRAM中,存放着当前的时间:年,月,日,时,分,秒这6个信息的长度都是1个字节,存放单元为:秒:0分:2时:4日:7月:8年:9这些数据是以BCD码存放的,.,15,.,16,例2.将CMOS中的时间信息存于MSG开始的内存空间leasi,msgmovdl,0jj:moval,dl;从CMOS中地址为0到9的单元内容读出out70h,al;向70H端口写入要访问的单元地址inal,71h;从数据端口71H取出指定单元的数据movsi,alincsiincdlcmpdl,09hjnajj,.,17,中断,中断信息任何一个通用的CPU都具备有一种能力,可以检测到从CPU外部发送来或者内部产生的一种特殊信息,并且可以立即对接收到的信息进行处理。这种特殊的信息称为:中断信息中断CPU不再接着向下执行指令,而是转去处理这个特殊信息。,.,18,中断,中断信息任何一个通用的CPU都具备有一种能力,可以检测到从CPU外部发送来或者内部产生的一种特殊信息,并且可以立即对接收到的信息进行处理。这种特殊的信息称为:中断信息中断CPU不再接着向下执行指令,而是转去处理这个特殊信息。,.,19,中断,当CPU的内部有下面情况发生时,将产生中断信息:(1)除法错误;比如div指令产生除法溢出(2)单步执行(3)into溢出中断(4)int指令对于不同的信息要进行不同的处理,在处理前,CPU首先要知道,所接收到的中断信息的来源,所以中断信息中必须包含识别来源的编码,即中断类型码:(1)除法错误:0(2)单步执行:1(3)执行into指令:4(4)执行int指令:指令格式intn,n即为提供给cpu的中断类型码,.,20,中断处理中断处理程序就是对中断信息进行处理的一段指令。CPU要执行某个中断处理程序必须获得该程序的入口地址。因此必须在中断信息(中断类型号)与中断处理程序入口地址间建立某种联系。中断向量表中断向量表保存在内存中,CPU用中断类型码,通过查找中断向量表,就可以得到中断处理程序的入口地址。,.,21,中断向量表即中断类型号*4开始的4个单元存放着该类型号所对应的中断处理程序的入口地址,CS:IP,类型0中断处理程序入口IP类型0中断处理程序入口CS类型1中断处理程序入口IP类型1中断处理程序入口CS类型2中断处理程序入口IP类型2中断处理程序入口CS.,00000H00001H00002H00003H00004H00005H00006H00007H00008H00009H0000AH0000BH,.,22,3、中断过程中断指令INTn:(1)取中断类型号n(2)标志寄存器内容入栈(保护标志寄存器内容)(3)当前CS,IP入栈(4)禁止外部中断(5)取(n*4)IP,(n*4+2)CS(6)转去中断处理程序中断返回指令IRET:中断处理程序的最后一条指令,.,23,4、中断处理程序与子程序相同点:都必须保存返回的断点CS,IP不同点:中断处理程序需要保存标志寄存器内容.中断处理程序不允许再产生中断.中断可以驻留内存,不依赖于调用它的程序.,.,24,5、用户中断的设置(1)编写中断子程序(2)将程序传送到指定空间(0:200H这个空间一般情况下为空)(3)设置中断向量表,这个过程可以直接向中断向量表写数据,也可以由DOS的AH=25,INT21H来完成,.,25,6、BIOS和DOS的装载过程:(1)开机后,CPU加电,初始化CS0FFFFH,IP=0,自动从0FFFFH:0单元开始执行程序。0FFFFH:0处有一跳转指令,转去执行BIOS中的硬件自检和初始化程序(2)初始化程序将BIOS所支持的中断例行程序的入口地址登记在中断向量表中(程序是固化在ROM中)(3)硬件系统检测和初始化完成后,调用INT19H进行操作系统的引导(4)DOS启动后,将DOS中断例行程序装入内存,并建立中断向量,.,26,例:编写、安装中断7ch的中断例程,求一个字数据的平方,AX中是要计算的数(0:200H这个空间一般情况下为空),.,27,例:编写、安装中断7ch的中断例程,求一个字数据的平方,AX中是要计算的数codesegmentassumecs:codestart:;将中断程序传送到0:200处movax,csmovds,axmovsi,offsetsqr;设置DS:SI指向源地址movax,0moves,axmovdi,200h;设置ES:DI指向目的地址movcx,offsetsqrend-offsetsqr;设置CX为传输长度cldrepmovsb,.,28,;设置中断向量表,将程序的入口地址保存到7CH表项中movax,0moves,axmovwordptres:7ch*4,200hmovwordptres:7ch*4+2,0movax,4c00hint21h;求平方的功能中断程序sqr:mulaxiretsqrend:nopcodeendsendstart,.,29,例4调用7CH中断求ax的平方codesegmentassumecs:codestart:movax,3456int7chmovah,4chint21hcodeendsendstart,.,30,BIOS功能调用,.,31,BIOS功能调用(课本P.241),BIOS(BasicInput/OutputSystem)BIOS是一组固化到计算机主板上的ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。主要以中断处理程序的形式提供I/O设备的处理程序和常用例行程序。,表8.4BIOS中断调用表,.,32,用户程序和操作系统关系示意图,BIOS中断程序处于DOS功能调用和硬件环境之间,和DOS功能调用相比其优点是效率高,缺点是编程相对复杂。,.,33,DOS系统功能调用,DOS系统功能调用和BIOS中断调用DOS操作系统或ROM-BIOS程序提供的一组子程序,用“INTN”指令调用。DOS系统功能调用:DOS操作系统提供,主要用于I/O设备管理、目录及文件管理BIOS中断调用:ROM提供,主要用于系统加电自检、引导装入初始化程序等。这些子程序给用户编程带来了方便,直接调用相应的功能即可。,.,34,DOS系统功能调用的步骤及实例最常用的:INT21H21H为子程序的总入口,进入后可调用各种功能步骤:1.设置入口参数2.将功能号放入AH寄存器3.使用指令INT21H转入子程序入口一般:2、3步必须有;1视情况而定,.,35,BIOS中断调用方法,(1)设置分功能号。按实现的操作功能的要求,给指定寄存器(通常为AH)送入分功能号。(2)设置入口参数。按操作要求,给寄存器填写相应参数的内容(某些调用无参数)。(3)使用中断语句INTn。执行调用的功能,其中n为中断号。(4)分析出口参数。如:MOVAH,0;分功能号为0MOVAL,10H;置入口参数INT1AH;1AH为中断号,功能为读时间计数器的值,.,36,显示器中断调用(10H中断调用),DOS中断和BIOS中断存在同样的功能如:打印机输出一个字符的功能,可以用DOS中断21h的功能5,可以用BIOS中断17h的功能0.对BIOS和DOS调用的选择原则是:无法使用DOS功能调用或者DOS没有提供而BIOS提供了功能的情况下可以考虑使用BIOS中断。如:有关显示输出的DOS功能调用不多而BIOS调用(INT10H)的功能很强,主要包括设置显示方式,设置光标大小和位置,设置调色板号,显示字符和显示图形等,见p249表8.5。,.,37,设置显示方式(0号功能)入口参数:AH=0,AL=设置方式,见表8.6出口参数:无设置光标类型(1号功能)入口参数:AH=1,CH=光标开始行,CL=光标结束行。出口参数:无。根据CX给出光标的大小。(要在纯DOS下才能实现)movch,1movcl,3movah,1int10h,显示器中断调用(10H中断调用),.,38,设置光标位置(2号功能)入口参数:AH=2,BH=页号,DH=行号,DL=列号.出口参数:无.根据DX给出确定光标的位置.在当前光标位置写字符和属性(9号功能)入口参数:AH=9,BH=页号,AL=字符的ASCII码BL=字符属性,CX=写入字符数.出口参数:无.在当前光标处,可连续写CX个字符.,如何在某个位置显示某些字符呢?,.,39,例1:在第0页(20,25)的位置显示3个*MOVBH,0;第0页MOVDH,20MOVDL,25;坐标MOVAH,2;设置光标位置INT10HMOVAL,*;要显示的字符MOVBH,0;第0页MOVBL,0C3H;颜色MOVCX,3;字符个数MOVAH,9;功能调用在光标位置显示字符INT10HMOVAH,4CHINT21H,.,40,初始始窗口或向上滚动(6号功能)入口参数:AH=6,AL=上滚行数,CX=上滚窗口左上角的行、列号,DX=上滚窗口右上角的行、列号,BH=空白行的属性.(例青底白字,BH=37h)出口参数:无.当滚动后,顶部为空白输入行.,.,41,初始窗口或向下滚动(7号功能)入口参数:AH=7,AL=下滚行数,CX=下滚窗口左上角的行、列号,DX=下滚窗口右上角的行、列号,BH=空白行的属性.出口参数:无.当滚动后,底部为空白输入行.BH属性见表8.7-表8.10,.,42,例2.清屏幕的左半边,呈反相显示(白底黑字BH=70H),见P251,表8.9、8.10。MOVAH,7;下滚MOVAL,0;行数,0为全屏MOVBH,70H;属性白底黑字MOVCH,0;从0行0列开始MOVCL,0MOVDH,24;到24行39列为止MOVDL,39INT10H,.,43,.,44,写字符串到指定的页面(功能号13H)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 针织技艺在环保袋设计中的创新应用考核试卷
- 针织品生产成本分析与控制考核试卷
- 危重病人麻醉前评估要点
- 制冷离心压缩机叶轮设计
- 妇科疾病科普课件
- 公共卫生儿童保健知识
- 儿童呼吸心跳骤停的护理
- 计量员工作汇报
- 第21课《古代诗歌五首:望岳》课件 2024-2025学年统编版语文七年级下册
- Hypelcin-A-II-生命科学试剂-MCE
- 食材配送服务方投标方案(技术标)
- 内河船舶船员健康检查记录
- 大学生应急救护智慧树知到课后章节答案2023年下西安欧亚学院
- 《高中生物必修3课件:细胞分裂和遗传》
- 言语障碍送教上门教案20次
- QGW 203008-2018 风力发电机组通用技术规范 紧固件-C
- 《运动技能学习与控制》考试复习题库(更新)
- 个人理财理论与实务李杰辉课后参考答案
- 医院总务科工作职责
- 保育师考试题与答案
- 自查自纠整改台账
评论
0/150
提交评论