中断服务程序的编写课件

上传人:无*** 文档编号:240912009 上传时间:2024-05-17 格式:PPT 页数:49 大小:578KB
返回 下载 相关 举报
中断服务程序的编写课件_第1页
第1页 / 共49页
中断服务程序的编写课件_第2页
第2页 / 共49页
中断服务程序的编写课件_第3页
第3页 / 共49页
点击查看更多>>
资源描述
7.2 内部中断服务程序n编写内部中断服务程序与编写子程序类似编写内部中断服务程序与编写子程序类似n利用过程定义伪指令利用过程定义伪指令PROC/ENDPn第第1条指令通常为开中断指令条指令通常为开中断指令STIn最后用中断返回指令最后用中断返回指令IRETn通常采用寄存器传递参数通常采用寄存器传递参数n主程序需要调用中断服务程序主程序需要调用中断服务程序n调用前,需要设置中断向量调用前,需要设置中断向量n利用利用INT n指令调用中断服务程序指令调用中断服务程序例7.1 内部中断服务程序n编写编写80H号中断服务程序号中断服务程序n功能:显示以功能:显示以“0”结尾字符串的功能结尾字符串的功能n利用显示器功能调用利用显示器功能调用INT 10Hn字符串缓冲区首地址为入口参数字符串缓冲区首地址为入口参数nDS:DX(段地址:偏移地址)传递参数(段地址:偏移地址)传递参数数据段intoffdw?intsegdw?intmsg db A Instruction Interrupt!db 0dh,0ah,0例7.1以以“0”结尾结尾回车、换行回车、换行保存中断向量mov ax,3580hint 21hmov intoff,bx;保存偏移地址保存偏移地址mov intseg,es;保存段基地址保存段基地址例7.1获取中断向量(获取中断向量(DOS功能调用功能调用INT 21H)功能号:功能号:AH35H入口参数:入口参数:AL中断向量号中断向量号出口参数:出口参数:ES:BX中断向量(段地址:偏移地址)中断向量(段地址:偏移地址)设置中断向量push dsmov dx,offset new80hmov ax,seg new80hmov ds,axmov ax,2580hint 21hpop ds例7.1设置中断向量(设置中断向量(DOS功能调用功能调用INT 21H)功能号:功能号:AH25H入口参数:入口参数:AL中断向量号中断向量号DS:DX中断向量(段地址:偏移地址)中断向量(段地址:偏移地址)调用中断服务程序;设置入口参数:;设置入口参数:DS段地址(已设置)段地址(已设置)DX偏移地址偏移地址mov dx,offset intmsgint 80h;调用;调用80H中断服务程序中断服务程序例7.1A Instruction Interrupt!;80H号内部中断服务程序:号内部中断服务程序:;显示字符串(以;显示字符串(以“0”结尾)结尾);入口参数:;入口参数:DS:DX缓冲器首地址缓冲器首地址new80h procsti;开中断开中断push ax;保护寄存器保护寄存器push bxpush si例7.1进入中断服务程序A Instruction Interrupt!显示字符串mov si,dxnew1:mov al,sicmp al,0jz new2mov bx,0mov ah,0ehint 10hinc sijmp new1例7.1A Instruction Interrupt!退出中断服务程序new2:pop si;恢复寄存器恢复寄存器pop bxpop axiret;中断返回中断返回new80h endp例7.1A Instruction Interrupt!主程序结束mov dx,intoffmov ax,intsegmov ds,axmov ax,2580hint 21hmov ax,4c00hint 21h例7.1A Instruction Interrupt!7.3 8259A中断控制器nIntel 8259A是可编程中断控制器是可编程中断控制器PICn可可用用于于管管理理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断的可屏蔽中断n8259A的基本功能的基本功能n一片一片8259A可以管理可以管理8级中断,可扩展至级中断,可扩展至64级级n每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许n在中断响应周期,可提供相应的中断向量号在中断响应周期,可提供相应的中断向量号n8259A设计有多种工作方式,可通过编程选择设计有多种工作方式,可通过编程选择初始化主片8259Amov al,11h;写入写入ICW1out 20h,aljmp intr1intr1:mov al,08h;写入写入ICW2out 21h,aljmp intr2intr2:mov al,04h;写入写入ICW3out 21h,aljmp intr3intr3:mov al,1h;写入写入ICW4out 21h,al中断控制器的初始化程序段初始化从片8259Amov al,11h;写入写入ICW1out 0a0h,aljmp intr5intr5:mov al,70h;写入写入ICW2out 0a1h,aljmp intr6intr6:mov al,02h;写入写入ICW3out 0a1h,aljmp intr7intr7:mov al,01h;写入写入ICW4out 0a1h,al中断控制器的初始化程序段2.操作命令字OCWn8259A工工作作期期间间,可可以以随随时时接接受受操操作作命命令字令字OCWnOCW共有共有3个:个:OCW1OCW3n写写入入时时没没有有顺顺序序要要求求,需需要要哪哪个个OCW就写入那个就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字内容写入中断屏蔽寄存器内容写入中断屏蔽寄存器IMRDiMi对应对应IRi,为,为1禁止禁止IRi中断;中断;为为0允许允许IRi中断。各位互相独立。中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配配合合使使用用产产生生中中断断结结束束EOI命命令和改变优先权顺序令和改变优先权顺序L2L0的的3位编码位编码指定指定IR引脚引脚 7.5 外部中断服务程序编写外部可屏蔽中断服务程序,需注意:编写外部可屏蔽中断服务程序,需注意:n发送中断结束命令发送中断结束命令n一般只能采用存储单元传递参数一般只能采用存储单元传递参数n不要使用不要使用DOS系统功能调用系统功能调用n中断服务程序尽量短小中断服务程序尽量短小7.5 外部中断服务程序(续)编写主程序,需注意:编写主程序,需注意:n修改中断向量修改中断向量n控制控制CPU的中断允许标志的中断允许标志n设置设置8259A的中断屏蔽寄存器的中断屏蔽寄存器例题7.2 可屏蔽中断服务程序n8259A的的IRQ0(向向量量号号为为08H)中中断断请请求求来自定时器来自定时器8253,每隔,每隔55ms产生一次产生一次n本本程程序序的的08H号号中中断断服服务务程程序序,每每次次中中断断显显示一串信息,显示示一串信息,显示10次次n用用内内存存单单元元(共共享享变变量量)在在主主程程序序与与外外部部中断服务程序之间传递参数:中断次数中断服务程序之间传递参数:中断次数n显示信息也安排在共同的数据段中显示信息也安排在共同的数据段中数据段intmsg db A 8259A Interrupt!db 0dh,0ah,0counter db 0例7.2保存中断向量mov ax,3508hint 21hpush bx;保存偏移地址保存偏移地址push es;保存段基地址保存段基地址例7.2设置中断向量clipush dsmov dx,offset new08hmov ax,seg new08hmov ds,axmov ax,2508hint 21hpop ds例7.2设置中断寄存器in al,21hpush axand al,0feh;允许允许IRQ0out 21h,almov counter,0;设置中断次数初值设置中断次数初值sti;开中断开中断例7.2循环等待中断start1:cmp counter,10jb start1;中断中断10次退出次退出例7.2中断中断就在主程序循环当中就在主程序循环当中new08h procsti;开中断开中断push ax;保护寄存器保护寄存器push bxpush dsmov ax,datamov ds,ax;设置数据段设置数据段DS例7.2进入中断服务程序中断处理inc countermov si,offset intmsg;显示信息显示信息call dpstri例7.2显示字符串dpstriproc;显示字符串子程序显示字符串子程序push axpush bxdps1:lodsbcmp al,0jz dps2例7.2显示字符串(续)mov bx,0mov ah,0ehint 10hjmp dps1dps2:pop bxpop axretdpstriendp例7.2退出中断服务程序mov al,20hout 20h,alpop ds;恢复寄存器恢复寄存器pop bxpop axiret;中断返回中断返回new08h endp例7.2主程序结束clipop axout 21h,alpop dxpop dsmov ax,2508hint 21hstimov ax,4c00hint 21h例7.2A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!A 8259A Interrupt!7.6 驻留中断服务程序驻留驻留TSR(Terminate and Stay Resident)程序)程序n用用户户程程序序运运行行后后仍仍然然保保存存在在主主存存中中,可可以以让其他程序使用让其他程序使用n利用利用DOS功能调用功能调用31H代替代替4CH终止程序终止程序n小型驻留程序常编写成小型驻留程序常编写成COM程序程序n驻留程序也可以编写成驻留程序也可以编写成EXE程序程序n需要驻留内存的程序段要写在前面需要驻留内存的程序段要写在前面例题7.3 报时中断驻留服务程序n系统系统08H号中断服务程序调用号中断服务程序调用1CH中断中断n每每隔隔55ms调调用用这这个个报报时时中中断断,中中断断65543次次就是时间过了一个小时就是时间过了一个小时n本本例例编编写写一一个个驻驻留留内内存存的的1CH内内部部中中断断服服务程序务程序n实现每过一小时就显示信息实现每过一小时就显示信息n执执行行此此程程序序后后,报报时时中中断断服服务务程程序序将将驻驻留留内存内存new1ch procsti;开中断开中断push si;保护寄存器保护寄存器push dsmov si,csmov ds,si;设置数据段设置数据段DSadd countl,1adc counth,0例7.3进入中断服务程序中断处理cmp countl,hourljnz n1ch1cmp counth,hourhjnz n1ch1mov countl,0mov counth,0mov si,offset intmsgcall dpstri例7.3退出中断服务程序n1ch1:pop ds;恢复寄存器恢复寄存器pop siiret;中断返回中断返回countldw 0counth dw 0intmsg db One Hour Has Passed!db 0dh,0ah,0new1ch endp例7.3One Hour Has Passed!显示字符串dpstriproc;显示字符串子程序显示字符串子程序push axpush bxdps1:lodsbcmp al,0jz dps2例7.3显示字符串(续)mov bx,0mov ah,0ehint 10hjmp dps1dps2:pop bxpop axretdpstriendp例7.3主程序开始start:mov ax,csmov ds,axmov dx,offset new1chclimov ax,251chint 21hstimov dx,offset tsrmsgmov ah,09hint 21h例7.3主程序结束mov dx,offset startadd dx,15mov cl,4shr dx,cladd dx,10hmov ax,3100h;程序驻留程序驻留int 21htsrmsg db INT 1CH Program Installed!db 0dh,0ah,$end start例7.3INT 1CH Program Installed!第第7 7章教学要求章教学要求1.熟熟悉悉8088的的中中断断类类型型、中中断断响响应应过过程、中断向量表程、中断向量表2.掌握内部中断服务程序的编写掌握内部中断服务程序的编写3.理理解解8259A的的内内部部结结构构、寄寄存存器器作作用、中断过程用、中断过程4.掌掌握握8259A的的普普通通全全嵌嵌套套优优先先权权、普通中断结束、边沿触发方式普通中断结束、边沿触发方式第第7 7章教学要求章教学要求(续)(续)5.了了解解的的8259A的的ICW和和OCW,注意命令字和状态字的区别方法注意命令字和状态字的区别方法6.了了解解8259A在在IBM PC系系列列机机上上的应用情况的应用情况7.掌握外部中断服务程序的编写掌握外部中断服务程序的编写习题习题7(第(第189页)页)7.4 7.6 9.9 9.11 9.13实验实验2 2 中断实验中断实验n 不用实验台,实现例题程序不用实验台,实现例题程序n例例7.1 内部中断服务程序内部中断服务程序n例例7.2 可屏蔽中断服务程序可屏蔽中断服务程序n例例7.3 驻留中断服务程序驻留中断服务程序n 然后,按照实验要求进行然后,按照实验要求进行 提提示示谢谢!
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!