版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:8259中断控制器应用实验实验名称PC机内中断应用实验成绩班级通信姓名学号实验目的:1.学习可编程中断控制器8259的工作原理;2.掌握可编程中断控制器8259的应用控制方法;实验内容:PC机中断实验。使用单次脉冲模拟中断产生。验证中断解决程序,在显示屏幕上显示一行预设定的字符串。实验环节:实验结果及分析:DATASEGMENTMESSDB'TPCAinterrupt!',0DH,0AH,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,CSMOVDS,AXMOVDX,OFFSETINT3;采用间接修改法,调用DOS功能,设立中断向量,取得偏移地址MOVAX,SEGINT3;通过AX的过渡,得到段首地址。MOVDS,AXMOVAL,0BH;设立IRQ3相应的中断向量0BHMOVAH,25HINT21HINAL,21H;读中断屏蔽寄存器,21H是该寄存器的端标语ANDAL,0F7H;开放IRQ3中断,允许IRQ3的中断申请,11110111OUT21H,AL;输出到中断屏蔽寄存器MOVCX,10;记中断循环次数为10次STI;允许中断发生WAIT:JMPWAITINT3:MOVAX,DATA;中断服务程序MOVDS,AXMOVDX,OFFSETMESSMOVAH,09H;在屏幕上显示每次中断的提醒信息INT21HMOVAL,20H;发出EOI结束中断到PC内主片的地址20HOUT20H,ALLOOPNEXT;当CX为0,跳转到NEXTINAL,21H;读中断屏蔽寄存器,获取中断屏蔽字ORAL,04H;关闭IRQ3中断,00000100OUT21H,AL;将中断屏蔽字送到中断屏蔽寄存器STI;置中断标志位MOVAH,4CH;返回DOSINT21HNEXT:IRET;中断返回CODEENDSENDSTART收获体会:使用间接法设立中断向量:1.将中断解决程序的段首地址送入DS寄存器,偏移量送入DX寄存器。2.将需要修改的中断向量类型号送入AL.3.25号功能送AH。4.执行INT21H指令。实验名称PC机内中断嵌套实验成绩班级姓名学号实验目的:1.学习可编程中断控制器8259的工作原理;2.掌握可编程中断控制器8259的应用控制方法;实验内容:PC机内中断嵌套实验。使用单次脉冲模拟两个中断源的中断产生,填写中断解决程序,体会中断嵌套的过程。实验环节:实验结果及分析:CODESEGMENTASSUMECS:CODESTART:.386;伪指令CLIMOVAX,CSMOVDS,AXMOVDX,OFFSETINT10;设立IRQ10相应的中断向量MOVAX,SEGINT10;以AX为过渡,取得段首地址MOVDS,AXMOVAL,72H;IRQ10的中断向量地址为72HMOVAH,25HINT21HMOVDX,OFFSETINT3;设立IRQ3相应的中断向量MOVAX,SEGINT3;以AX为过渡,取得段首地址MOVDS,AXMOVAL,0BH;IRQ3的中断向量地址为0BHMOVAH,25HINT21HINAL,21H;读入中断控制寄存器ANDAL,0F7H;开放IRQ3中和IRQ2中断请求,11110111OUT21H,AL;输出到中断控制寄存器INAL,0A1HANDAL,0FBH;开放IRQ10中断请求11111011OUT0A1H,ALMOVCX,10;设立计数器STIWAIT:JMPWAIT;跳转,等待中断请求信号INT10:CLI;将解决器标志寄存器的中断标志位清0,当前不允许中断PUSHAD;将所有的32位通用寄存器压入堆栈PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈MOVCX,10NEXT10_1:;在*号之间填写代码,在屏幕上显示"10"和"空格"的字符;****************************************MOVDL,'1';在屏幕显示字符1MOVAH,2INT21HMOVDL,'0';在屏幕显示字符0MOVAH,2INT21HMOVDL,20H;在屏幕显示空格字符MOVAH,2INT21H;******************************************ﻩ ﻩﻩ CALLDELAY1;调用延时子程序LOOPNEXT10_1MOVDX,0DH;调用DOS的中断功能,回车MOVAH,02HINT21HMOVDX,0AH;调用DOS的中断功能,换行MOVAH,02HINT21HMOVAL,20HOUT0A0H,ALOUT20H,ALPOPFDPOPADSTIIRETINT3:CLIPUSHADPUSHFDMOVCX,10NEXT3_1:;在*号之间填写代码,在屏幕显示"3"和"空格"的字符;****************************************MOVDL,'3';在屏幕显示字符3MOVAH,2INT21HMOVDL,20H;在屏幕显示空格字符MOVAH,2INT21H;******************************************CALLDELAY1;调用延时子程序LOOPNEXT3_1MOVDX,0DH;调用DOS的中断功能,回车MOVAH,02HINT21HMOVDX,0AH;调用DOS的中断功能,换行MOVAH,02HINT21HMOVAL,20HOUT20H,ALOUT0A0H,ALPOPFDPOPADSTIIRETDELAY1PROC;延时子程序PUSHAD;将所有的32位通用寄存器压入堆栈PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈MOVCX,0FH;向CX送数据0FHDELAY_LOOP1:MOVBX,0FFFFHDELAY_LOOP2:DECBXNOPJNZDELAY_LOOP2LOOPDELAY_LOOP1POPFDPOPADRETDELAY1ENDPCODEENDSENDSTART收获体会:(1)按下连接IRQ的单次脉冲按键,在屏幕上10次显示未结束之前,按下连接IRQ10的单次脉冲按键,观测现象;答:按下IRQ时屏幕上会显示10个3,此时按下IRQ10,会直接在屏幕上显示10个10,然后结束后再显示剩余的3(2)按下连接IRQ10的单次脉冲按键,在屏幕上10次显示未结束之前,按下连接IRQ3的单次脉冲按键,观测现象。答:在屏幕上显示10个10的过程中按下IRQ无反映,等到10个10所有显示完毕后才再显示10个3因素:IRQ10的中断优先级比IRQ的高。实验名称扩展多中断应用实验成绩班级姓名学号实验目的:1.学习可编程中断控制器8259的工作原理;2.掌握可编程中断控制器8259的应用控制方法;实验内容:扩展多中断源查询方式应用实验。运用实验平台上的8259控制器作为中断扩展源,编写程序对8259控制器的中断请求进行解决。实验环节:实验结果及分析:;*****************************************************************;8259中断查询方式应用实验;*****************************************************************I8259_1EQU2B0H;8259的ICW1端口地址I8259_2EQU2B1H;8259的ICW2端口地址I8259_3EQU2B1H;8259的ICW3端口地址I8259_4EQU2B1H;8259的ICW4端口地址O8259_1EQU2B1H;8259的OCW1端口地址O8259_2EQU2B0H;8259的OCW2端口地址O8259_3EQU2B0H;8259的OCW3端口地址DATASEGMENTMES1DB'YOUCANPLAYAKEYONTHEKEYBOARD!',0DH,0AH,24HMES2DDMES1MESS1DB'HELLO!THISISINTERRUPT*0*!',0DH,0AH,'$'MESS2DB'HELLO!THISISINTERRUPT*1*!',0DH,0AH,'$'MESS3DB'HELLO!THISISINTERRUPT*2*!',0DH,0AH,'$'MESS4DB'HELLO!THISISINTERRUPT*3*!',0DH,0AH,'$'MESS5DB'HELLO!THISISINTERRUPT*4*!',0DH,0AH,'$'MESS6DB'HELLO!THISISINTERRUPT*5*!',0DH,0AH,'$'MESS7DB'HELLO!THISISINTERRUPT*6*!',0DH,0AH,'$'MESS8DB'HELLO!THISISINTERRUPT*7*!',0DH,0AH,'$'DATAENDSSTACKSSEGMENTDB100DUP(?)STACKSENDSSTACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATA.386;伪指令,告诉编译器在本程序中使用的指令集为80386指令集START:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKSMOVSS,AXMOVDX,I8259_1;初始化8259的ICW1MOVAL,13H;边沿触发、单片8259、需要ICW400010011OUTDX,ALMOVDX,I8259_2;初始化8259的ICW2MOVAL,0B0HOUTDX,ALMOVAL,03HOUTDX,ALMOVDX,O8259_1;初始化8259的OCW1MOVAL,00H;打开屏蔽位OUTDX,ALQUERY:MOVAH,1;判断是否有按键按下INT16HJNZQUIT;有按键则退出MOVDX,O8259_3;向8259的OCW3发送查询命令MOVAL,0CH;00001100D2=1,设立为中断查询方式工作OUTDX,ALINAL,DX;读出查询字MOVAH,ALANDAL,80H;判断中断是否已响应TESTAL,80HJZQUERY;没有响应则继续查询MOVAL,AHANDAL,07H;取出查询字的末三位00000111;通过下面的比较判断程序,判断中断请求来自哪个优先级CMPAL,00H;将查询字末三位与00H比较,相等,为IR0请求JEIR0ISR;若为IR0请求,跳到IR0解决程序CMPAL,01HJEIR1ISR;若为IR1请求,跳到IR1解决程序CMPAL,02HJEIR2ISR;若为IR2请求,跳到IR2解决程序CMPAL,03HJEIR3ISR;若为IR3请求,跳到IR3解决程序CMPAL,04HJEIR4ISR;若为IR4请求,跳到IR4解决程序CMPAL,05HJEIR5ISR;若为IR5请求,跳到IR5解决程序CMPAL,06HJEIR6ISR;若为IR6请求,跳到IR6解决程序CMPAL,07HJEIR7ISR;若为IR7请求,跳到IR7解决程序JMPQUERYIR0ISR:MOVAX,DATA;将数据段首地址放入AX寄存器MOVDS,AXMOVDX,OFFSETMESS1;显示提醒信息MOVAH,09INT21HJMPEOIIR1ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS2;显示提醒信息MOVAH,09INT21HJMPEOIIR2ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS3;显示提醒信息MOVAH,09INT21HJMPEOIIR3ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS4;显示提醒信息MOVAH,09INT21HJMPEOIIR4ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS5;显示提醒信息MOVAH,09INT21HJMPEOIIR5ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS6;显示提醒信息MOVAH,09INT21HJMPEOIIR6ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS7;显示提醒信息MOVAH,09INT21HJMPEOIIR7ISR:MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESS8;显示提醒信息MOVAH,09INT21HEOI:MOVDX,O8259_2;向8259的OCW2发送中断结束命令MOVAL,20H;00100000D5=1,中断结束OUTDX,ALJMPQUERYQUIT:MOVAX,4C00H;结束程序退出INT21HCODEENDSENDSTART收获体会:所填数据的形成原理:1.MOVAL,13H;边沿触发,单片8259,需要ICW4解释:在初始化ICW1中,D7~D5都是0.D4=1,是ICW1.D3=0,上升沿触发。D2=0,8086中固定设为0.D1=1,单片工作方式。D0=1,需要ICW4。所以ICW1=00010011B=13H2.MOVAL,00H;打开屏蔽位。解释:中断屏蔽寄存器中,某一位为0时允许中断,为1时屏蔽中断。3.MOVDX,O8259_3;向8259的OCW3发送查询命令。MOVAL,L,0CH;00001100D2=1,设立为中断查询方式工作.4.ANDAL,80H;判断中断是否已响应解释:取得AL的最高位,判断是1或0.5.MOVDX,O8259_2;向8259的OCW2发送中断结束命令MOVAL,20H;00100000D5=1,中断结束解释:OCW2的D5=1时,中断结束。思考题:单中断和多中断有何不同?单中断就是从中断开始到中断结束只能完毕一次中断,多中断应当是多重中断,这种中断方式可以允许在一次中断未完毕时响应更高级别的中断申请,也叫中断嵌套。如何改变中断优先级的顺序?可以根据程序中中断的书写顺序和逻辑结构来进行判断。可编中断控制寄存器8259A在协助CPU解决中断事务中起到那些作用?[1]优先级排队管理根据任务的轻重缓急或设备的特殊规定,分派中断源的中断等级。8259A具有完全嵌套。循环优先级、特定屏蔽等多种方式的优先级排队管理。[2]可屏蔽中断INTR当CPU的INTR引脚上有一个来自外部的“高”有效信号输人时,则产生硬件可屏蔽中断请求INTR,这种请求可以被CPU用指令CLI来严禁,也可由指令STI来允许。只有在INTR被允许时,CPU才发中断响应信号INTA,这时,中断源一定要向CPU提供中断类型号,以便找到中断服务程序入口。中断向量表中中断号为08~0FH和070H~077H的中断,属于这种中断(见表5.2)。很明显,这种中断是由外部设备产生的。[3]提供中断类型号8259A最突出的特点是具有对中断服务程序入口地址的寻址能力,也就是当CPU响应中断申请后,通过8259A提供的中断类型号可以找到中断服务程序的人口地址,转移到中断服务程序去执行。[4]进行中断请求的屏蔽和开放8259A可以对提出中断请求的外部设备进行屏蔽或开放。可见,采用8259A可使系统的硬中断管理无需附加其他电路,只需对8259A进行编程,就可管理8级、15级或更多的硬中断,并且还可实现向量中断和查询中断可屏蔽中断与8259A是什么关系?一片Intel8259可管理8个中断请求,并把当前优先级最高的中断请求送到CPU的INTR端;并在CPU响应中断时,为CPU提供中断类型码;8个外部中断的优先级排列方式,可以通过对8259编程进行指定。也可以通过编程屏蔽某些中断请求,或者通过编程改变中断类型码。允许9片8259级联,构成64级中断系统。中断可分为可屏蔽中断与不可屏蔽中断。其中可屏蔽中断是外设使用最多的中断方式。实验二:8255并口控制应用实验实验名称可编程并行接口8255方式0应用实验成绩班级姓名学号实验目的:1.掌握8255的工作方式及应用编程;2.掌握8255典型应用电路的接法。实验内容:1.基本输入输出实验。编写程序,使8255的B口为输入,A口为输出,完毕拨动开关到数据灯的数据传输。规定只要开关拨动,数据灯的显示就改变。实验环节:实验结果及分析:IO8255_MODEEQU28BHIO8255_AEQU288HIO8255_BEQU289HCODESEGMENTASSUMECS:CODESTART:MOVDX,IO8255_MODE;设8255为B口输入,A口输出MOVAL,82H;设立控制字为10000010BOUTDX,ALINOUT:MOVDX,IO8255_B;从B口读入数据INAL,DXMOVDX,IO8255_A;从A口输出数据OUTDX,ALMOVDL,0FFH;判断是否有按键MOVAH,06HINT21HJZINOUT;若无,则继续自B口输入,A口输出MOVAH,4CH;否则返回INT21HCODEENDSENDSTART收获体会:8255芯片需要设立好控制字,然后进行读写控制操作。实验名称流水灯实验成绩班级姓名学号实验目的:1.掌握8255的工作方式及应用编程;2.掌握8255典型应用电路的接法。实验内容:流水灯显示实验。编写程序,使8255的A口为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示。实验环节:实验结果及分析:IO8255_AEQU288H;8255的A口地址IO8255_MODEEQU28BH;8255的控制寄存器地址STACK1SEGMENTSTACKDW256DUP(?)STACK1ENDSDATASEGMENTLADB?;定义数据变量DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,IO8255_MODE;定义8255工作方式MOVAL,80H;工作方式0,A口为输出,所以控制字为:10000000BOUTDX,ALMOVDX,IO8255_A;写A口发出的起始数据MOVAL,80H;设立第一盏灯亮OUTDX,ALMOVLA,ALLOOP1:CALLDALLYMOVAL,LA;将A口起始数据右移再写入A口RCRAL,1;循环右移指令MOVLA,ALMOVDX,IO82
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗机器人研究报告
- 医疗保障学第11章
- 交通运输安全国家标准管理办法
- 公证处公证员招聘协议
- 设备租赁合同:体育设施
- 灯具安装杂工施工合同
- 军工企业合同印章管理准则
- 唐山市印刷服装租赁合同
- 食品包装班组施工协议
- 影视特效制作师聘用合同
- 2024年建筑电工复审考试题库附答案
- 红色知识竞赛题库小学生
- 病原微生物与免疫学考试模拟题(含参考答案)
- MOOC 微型计算机原理与接口技术-南京邮电大学 中国大学慕课答案
- 工贸企业治本攻坚三年行动方案
- 新时代大学生如何践行爱国主义精神
- 七年级期中考试考后分析主题班会课件
- IPQC工作内容培训教材课件
- 《济南的冬天-老舍作业设计方案-2023-2024学年初中语文统编版五四学制》
- 科学认识天气智慧树知到期末考试答案2024年
- 2024年苏州市轨道交通集团有限公司招聘笔试参考题库附带答案详解
评论
0/150
提交评论