汇编程序设计PPT.ppt
《汇编程序设计PPT.ppt》由会员分享,可在线阅读,更多相关《汇编程序设计PPT.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、新新新新 编编编编汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计1 1第八章第八章 输入输出与中断输入输出与中断8.1 .1 输入输入/输出输出 8.2 8.2 中断中断 8.3 .COM8.3 .COM文件文件 习题八习题八2 2输入输出输入输出:计算机系统必须有信息的输入输出。计算机系统必须有信息的输入输出。中断中断:中断是一种计算机非常常用而且重要的工作方式。中断是一种计算机非常常用而且重要的工作方式。3 3 8.1 8.1 输入输入/输出输出 8.1.1 8.1.1 外部设备和接口外部设备和接口 8.1.2 8.1.2 输入输入/输出指令输出指令 8.1.3 8.1.
2、3 程序控制输入程序控制输入/输出输出 4 4接口:接口:计计 算算 机机 与与 外外 部部 设设 备备 的的 信信 息息 交交 换换 是是 通通 过过“接接 口口(Interface)”电路间接实现的。电路间接实现的。总线:总线:计算机与接口之间通过计算机与接口之间通过“总线(总线(BUS)”连接。连接。8.1.1 8.1.1 外部设备和接口外部设备和接口5 51.CPU1.CPU与接口之间的信号与接口之间的信号CPU与接口之间传送三种类型的信号与接口之间传送三种类型的信号:(1 1)数据信号)数据信号 (2 2)状态信号状态信号 (3 3)控制信号控制信号 6 62.端口端口端端口口:为为
3、了了使使CPU能能对对接接口口电电路路内内部部寄寄存存器器进进行行读读写写,这这些些寄寄存存器器都都分分配配到到一一个个专专用用的的地地址址,这这种种分分配配了了地地址址的的寄寄存存器器称为称为“端口(端口(Port)端口的种端口的种类:(1 1)数据输入端口数据输入端口 (2 2)数据输出端口数据输出端口 (3 3)状态端口状态端口(输入)入)(4 4)控制端口控制端口(输出)出)7 7IN和和OUT指指令令的的共共同同特特点点是是:必必须须使使用用累累加加器器AL、AX或或EAX进行数据的传送。进行数据的传送。输输入入时时,IN指指令令把把端端口口的的数数据据/状状态态信信息息读读入入AL
4、(8位)、位)、AX(16位)或位)或EAX(32位)中。位)中。输输出出时时,要要输输出出的的数数据据/命命令令先先放放人人AL(8位位)、AX(16位位)或或EAX(32位位)中中,然然后后执执行行OUT指指令,将令,将AL、AX或或EAX中信息向端口输出中信息向端口输出 8.1.2 8.1.2 输入输入/输出指令(输出指令(IN/OUTIN/OUT)8 81.IN/OUT(输入输入/输出)指令输出)指令(1)IN(输入)指令输入)指令 指令格式:指令格式:INACC,PORT INACC,DX操作:操作:AL/AX/EAX(PORT)AL/AX/EAX(DX)功能:把指定端口中的数据读入
5、功能:把指定端口中的数据读入AL、AX或或EAX中中 9 9输入指令举例:输入指令举例:端口地址在端口地址在0255之间:之间:IN AL,35H;将将地地址址为为35H的的端端口口数数据据送送AL 端口地址在端口地址在065535之间之间:MOV DX,21H;端口地址放入端口地址放入DX IN AL,DX;把地址为把地址为21H的端口数据送的端口数据送AL中中 1010(2)输出指令输出指令 指令格式:指令格式:OUTPORT,ACC OUTDX,ACC操作:(操作:(PORT)AL/AX/EAX (DX)AL/AX/EAX 功能:把功能:把AL、AX或或EAX中的数据从指定端口输出中的数
6、据从指定端口输出 1111输出指令举例:输出指令举例:端口地址在端口地址在0255之间:之间:OUT60H,AL ;将将AL中中数数据据送送到到地地址址;为为60H的的8位端口中位端口中 端口地址在端口地址在065535之间之间:MOV DX,21H OUT DX,AL;将将AL中中数数据据从从DX所所;指定的指定的8位端口输出位端口输出 12122.串输入串输入/输出指令输出指令串输入串输入/输出指令的源操作数和目的操作数都是隐含的输出指令的源操作数和目的操作数都是隐含的串串输输入入指指令令把把DX指指定定的的端端口口数数据据送送入入ES:DI所所指指向向的的存储单元,自动修改存储单元,自动
7、修改DI以指向下一个存储单元以指向下一个存储单元 串串输输出出指指令令把把DS:SI 所所指指向向的的存存储储单单元元的的数数据据向向DX指定的端口输出,自动修改指定的端口输出,自动修改SI以指向下一个存储单元以指向下一个存储单元 1313(1)串输入指令串输入指令INS指令格式:指令格式:INSB/INSW/INSD操操 作:作:ES:DI(DX)修改修改DI值以指向下一个数据单元值以指向下一个数据单元 INSB、INSW、INSD分分别别表表示示从从端端口口读读入入一一个个字字节节、字字或或双双字字,存存人人ES:DI所所指指向向的的存存储储单单元元。如如果果方方向向标标志志DF0,指指令
8、令执执行行后后,DI分分别别增增加加1、2、4,如如果果DF1,则则DI分分别别减减少少1、2、4 1414(2)串输出指令串输出指令OUTS 指令格式:指令格式:OUTSB/OUTSW/OUTSD 操操 作:作:(DX)DS:SI修改修改SI值以指向下一个数据单元值以指向下一个数据单元 OUTSB、OUTSW、OUTSD分分别别表表示示把把DS:SI所所指指向向的的一一个个字字节节、字字或或双双字字数数据据向向指指定定的的端端口口输输出出,同同时时根根据据DF的的值值,将将SI增加或减少增加或减少1、2、4 1515输入输出方式:输入输出方式:编编写写输输入入、输输出出程程序序,必必须须根根
9、据据外外设设的的工工作作方方式式来来决决定定输入输入/输出采用的方式输出采用的方式 三种基本的程序控制输入输出方式:三种基本的程序控制输入输出方式:(1)无条件输入)无条件输入/输出输出 (2)查询式输入)查询式输入/输出输出 (3)中断方式)中断方式 8.1.3 8.1.3 程序控制输入程序控制输入/输出输出16161.无条件方式输入无条件方式输入/输出输出外外设设始始终终处处于于就就绪绪状状态态,CPU在在需需要要时时可可随随时时与与外外设设交交换换数数据据,而而无无须须知知道道外外设设所所处处的的状状态态,就就可可以以使用无条件输入使用无条件输入/输出方式进行数据的传输输出方式进行数据的
10、传输 举例:扬声器发声举例:扬声器发声 1717有两种方法使扬声器发声:有两种方法使扬声器发声:1.1.将将61H61H端口端口D0D0置为置为0 0,关闭,关闭Timer2Timer2,D1D1交替置为交替置为1/01/0,使,使扬声器发声;扬声器发声;2.2.将将61H61H端口端口D0D0、D1D1均置为均置为1 1,使,使“Timer2Timer2”工作,产生固工作,产生固定频率的信号,使扬声器发声。定频率的信号,使扬声器发声。下面的子程序使用第一种方法使扬声器发声,声音频率由下面的子程序使用第一种方法使扬声器发声,声音频率由DXDX寄存器的值决定,声音的延续时间由寄存器的值决定,声音
11、的延续时间由BXBX寄存器内的值决定。寄存器内的值决定。1818SOUNDSOUNDPROCPROCPUSHPUSHAXAX;保护现场保护现场PUSHPUSHCXCXININAL,61HAL,61H;读读61H61H端口端口“当前值当前值”ANDANDAL,11111110BAL,11111110BOUTOUT61H,AL61H,AL;使使D0=0D0=0,关闭,关闭Timer2Timer2TRIG:TRIG:ININAL,61HAL,61H;读读61H61H端口端口“当前值当前值”XORXORAL,2AL,2OUTOUT61H,AL61H,AL;D1;D1取反后输出,产生周期性信号取反后输出
12、,产生周期性信号MOVMOVCX,DXCX,DXLOOPLOOP$;延时,控制延时,控制1/01/0输出时间,控制发声频率输出时间,控制发声频率1919DEC BXDEC BXJNZJNZTRIGTRIG;延时,控制发声的总时间延时,控制发声的总时间POPPOPCXCX;恢复现场恢复现场POPPOPAXAXRETRETSOUNDSOUND ENDPENDP2020 2.查询方式输入查询方式输入/输出输出CPU必必须须通通过过“读读”外外部部设设备备的的状状态态端端口口,了了解解外外部设备的当前状态,确定能否进行部设备的当前状态,确定能否进行“数据传输数据传输”2121(1)查询式输入查询式输入
13、 查查询询式式输输入入的的接接口口电电路路中中,除除了了有有一一个个数数据据输输入入端端口,还必须有一个用于反映外设状态的状态端口口,还必须有一个用于反映外设状态的状态端口状状态态端端口口的的每每一一位位反反映映设设备备的的一一种种状状态态,例例如如,用用D7=1表表示示设设备备已已经经完完成成了了数数据据准准备备,可可以以传传输输数数据据,D7=0则则表表示示尚尚未未完完成成数数据据准准备备,不不能能进进行行数数据据传传输输。这一位常常被称为这一位常常被称为“READY”。2222(2 2)查询式输出查询式输出 采采用用查查询询方方式式进进行行输输出出的的接接口口电电路路中中,有有一一个个用
14、用于于数据输出端口,还有一个用于反映外设状态的端口数据输出端口,还有一个用于反映外设状态的端口 外外设设状状态态位位称称作作“BUSY”,BUSY=1表表示示设设备备正正处处于于数数据据准准备备阶阶段段(“忙忙”);BUSY=0表表示示设设备备已已经完成数据准备(经完成数据准备(“空闲空闲”),可以进入数据传输),可以进入数据传输2323 8.2 8.2 中断中断 8.2.1 8.2.1 中断的概念中断的概念 8.2.2 8.2.2 中断服务程序中断服务程序 8.2.3 8.2.3 定时中断定时中断8.2.4 8.2.4 驻留程序驻留程序24241.1.中断与中断源中断与中断源中断:中断:由于
15、某种事件的发生,使由于某种事件的发生,使CPU中断(暂时停止)中断(暂时停止)正在执行的程序而转去执行该事件的处理程序,为该事正在执行的程序而转去执行该事件的处理程序,为该事件服务结束后,继续执行原来被中断的程序,这个过程件服务结束后,继续执行原来被中断的程序,这个过程称为中断称为中断 中断源中断源:引起中断的事件称为中断源:引起中断的事件称为中断源 断点:断点:由于中断,将要执行但尚未执行的指令地址称为由于中断,将要执行但尚未执行的指令地址称为“断点断点”,包括,包括16位段基址和位段基址和16位偏移地址位偏移地址8.2.1 8.2.1 中断的概念中断的概念25252.2.中断分类中断分类中
16、断可以划分为外部中断和内部中断两大类中断可以划分为外部中断和内部中断两大类(1)内部中断)内部中断中断指令中断指令INT引起的中断(软件中断)引起的中断(软件中断)由于由于CPU的某些错误引起的中断,如除法错中断、溢出的某些错误引起的中断,如除法错中断、溢出中断(异常中断)中断(异常中断)为调试程序设置的中断(陷阱中断)为调试程序设置的中断(陷阱中断)2626(2)外部中断)外部中断不可屏蔽中断(不可屏蔽中断(NMI),),通常代表通常代表CPU外部的故障外部的故障 外设完成数据准备,请求进行数据传输引起的可屏蔽中断外设完成数据准备,请求进行数据传输引起的可屏蔽中断 3.3.中断类型中断类型
17、为了区分不同的中断源,为了区分不同的中断源,80X86给每一个中断源一个编号,给每一个中断源一个编号,称为中断类型称为中断类型27274.4.中断向量表中断向量表中断向量:中断向量:每种类型的中断都有一个相应的中断服务程每种类型的中断都有一个相应的中断服务程序来进行处理,中断服务程序的入口地址称为序来进行处理,中断服务程序的入口地址称为“中断向中断向量量”中断向量表中断向量表:80 x86微机系统中把微机系统中把256个中断向量按照它个中断向量按照它们中断类型的顺序组织成一张表,存放在内存最低的们中断类型的顺序组织成一张表,存放在内存最低的1KB中,地址范围中,地址范围000H3FFH,这张表
18、称为这张表称为“中断向中断向量表量表”(图(图8-5)28285.5.中断处理过程中断处理过程中断发生时,计算机中断机构自动完成如下操作中断发生时,计算机中断机构自动完成如下操作:(1)取中断类型号)取中断类型号N(2)标志寄存器(标志寄存器(FLAGS)内容入栈内容入栈(3)当前代码段寄存器()当前代码段寄存器(CS)内容入栈内容入栈(4)当前指令计数器()当前指令计数器(IP)内容入栈内容入栈(5)禁止外部中断和单步中断()禁止外部中断和单步中断(TF=0,IF=0)(6)从从中中断断向向量量表表中中取取地地址址4N的的2字字节节内内容容送送IP,取取地地址址4N+2的的2字节内容送字节内
19、容送CS(7)进入中断处理程序。进入中断处理程序。29296.6.中断优先级和中断嵌套中断优先级和中断嵌套中断优先级中断优先级:给各个中断源安排一个中断响应的先后:给各个中断源安排一个中断响应的先后次序,即中断优先级次序,即中断优先级 中断嵌套中断嵌套:中断服务程序执行过程中,被优先级更高:中断服务程序执行过程中,被优先级更高的中断请求所中断,称为中断嵌套的中断请求所中断,称为中断嵌套 3030使用中断方式进行输入使用中断方式进行输入/输出时,用户需要编制两个程输出时,用户需要编制两个程序模块序模块:“主程序主程序”和和“中断服务程序中断服务程序”主程序主程序:主要任务是为进入中断服务程序进行
20、各种准备:主要任务是为进入中断服务程序进行各种准备,输入输出完成后进行结束处理输入输出完成后进行结束处理 中断服务程序中断服务程序:中断发生时由:中断发生时由CPU执行该程序,进行所执行该程序,进行所需要的输入输出处理需要的输入输出处理 8.2.2 8.2.2 中断服务程序中断服务程序31311.主程序主程序(1)设置中断向量)设置中断向量:设置中断向量就是把中断服务程序的入口地址放入中断设置中断向量就是把中断服务程序的入口地址放入中断向量表中向量表中 设置中断向量有两种可选的方法:设置中断向量有两种可选的方法:用用MOV指令将中断向量直接写入中断向量表中,称指令将中断向量直接写入中断向量表中
21、,称为直接写入法为直接写入法 用用DOS功能调用,设置中断向量功能调用,设置中断向量 3232例例8-2:用直接写入法设置中断向量。假设中断类型为用直接写入法设置中断向量。假设中断类型为N,中断中断 服务程序入口标号为服务程序入口标号为INTERRUPT PUSHPUSHDSDS;保护保护DSDS寄存器内容寄存器内容MOV MOV AX,0AX,0MOV MOV DS,AX DS,AX ;数据段指向中断向量表数据段指向中断向量表MOV MOV BX,4*NBX,4*N;中断向量安放位置(偏移地址)送中断向量安放位置(偏移地址)送BXBXMOV MOV WORD PTR BX,OFFSET IN
22、TERRUPT;WORD PTR BX,OFFSET INTERRUPT;写入偏移地址写入偏移地址MOV MOV WORD PTR BX+2,SEG INTERRUPT ;WORD PTR BX+2,SEG INTERRUPT ;写入段基址写入段基址POPPOPDSDS;恢复恢复DSDS寄存器寄存器 3333用用DOS功能调用功能调用25H用来设置中断向量:用来设置中断向量:入口参数为:入口参数为:AH25H AL中断类型号中断类型号 DS:DX中断向量中断向量用用DOS功能调用功能调用35H用来读中断向量用来读中断向量:入口参数为:入口参数为:AH25H AL中断类型号中断类型号 DS:DX
23、中断向量中断向量 出口参数为:出口参数为:ES:BX中断向量中断向量8.2.2 8.2.2 中断服务程序中断服务程序3434例例8-3:使用使用DOS功能调用设置中断向量功能调用设置中断向量 PUSHPUSHDSDSMOVMOVAX,SEG INTERRUPTAX,SEG INTERRUPTMOVMOVDS,AXDS,AXMOVMOVDX,OFFSET INTERRUPTDX,OFFSET INTERRUPTMOVMOVAL,NAL,NMOVMOVAH,25HAH,25HINTINT21H21HPOPPOPDSDS3535(2)设置设备的中断屏蔽位)设置设备的中断屏蔽位:“中断屏蔽中断屏蔽”:
24、外部设备的中断请求由中断控制器外部设备的中断请求由中断控制器8259A8259A统一管理统一管理 ,在,在8259A8259A内部,有一个内部,有一个“中断屏蔽寄中断屏蔽寄存器存器”,该寄存器的,该寄存器的8 8位二进制对应于位二进制对应于8259A8259A的的8 8个中断个中断请求输入,寄存器某一位设置为请求输入,寄存器某一位设置为“1”1”时,对应引脚上时,对应引脚上的中断请求不能被传送到的中断请求不能被传送到CPUCPU,该中断因此无法得到相该中断因此无法得到相应。对中断请求的这种管理方法称为应。对中断请求的这种管理方法称为“中断屏蔽中断屏蔽”。3636(3)设置中断允许位)设置中断允
25、许位IF,开放中断开放中断:STI指令可以将中断允许位指令可以将中断允许位IF置置1,打开中断。只有中断,打开中断。只有中断打开时,打开时,CPU才会响应从才会响应从INTR引脚输入的,也就是从引脚输入的,也就是从8259A发来的可屏蔽中断请求发来的可屏蔽中断请求 3737(4)其他设置)其他设置:主程序还应该为中断服务程序使用的指针、计数器等设主程序还应该为中断服务程序使用的指针、计数器等设置初值。在中断方式输入输出结束后,进行必要的结束置初值。在中断方式输入输出结束后,进行必要的结束处理处理 38382.中断服务程序中断服务程序中断服务程序的主要操作步骤中断服务程序的主要操作步骤:(1)保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序 设计 PPT
限制150内