版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试验一:8259中断控制器应用试验
试验名称PC机内中断应用试验成绩
试验目的:
I.学习可编程中断控制器8259的工作原理;
2.掌握可编程中断控制器8259的应用控制措施;
试验内容:
PC机中断试验。使用单次脉冲模拟中断产生。验证中断处理程序,在显示屏幕上显示一行预设定的
字符串。
试验环节:
试验成果及分析:
DATASEGMENT
MESSDB'TPCAinteiTupt!\ODH,()AH,'$'
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX.CS
MOVDS,AX
MOVDX.OFFSETINT3;采用间接修改法.调用DOS功能,设置中断向
量,获得偏移地址
MOVAX.SEGINT3;通过AX的过渡,得到段首地址。
MOVDS,AX
MOVAL,()BH淞置1RQ3对应的中断向量OBH
MOVAH.25H
INT21H
INAL.21H;读中断屏蔽寄存器,21H是该寄存器的端口号
ANDAL.0F7H;开放IRQ3中断,容许IRQ3的中断申请,11110111
OUT2IH,AL;输出到中断屏蔽寄存器
MOVCXJ0;记中断循环次数为10次
STI;容许中断发生
WAIT:JMPWAIT
INT3:MOVAX,DATA;中断服务程序
MOVDS.AX
MOVDX.OFFSETMESS
MOVAH,09H;在屏幕上显示每次中断的提醒信息
INT21H
MOVAL,20H;发出EOI结束中断到PC内主片的地址20H
OUT20H,AL
LOOPNEXT;当CX为0,跳转至11NEXT
INAL.21H;读中断屏蔽寄存器,获取中断屏蔽字
ORAL.04H;关闭IRQ3中断,00000100
OUT2IH,AL;将中断屏蔽字送到中断屏蔽寄存器
STI;置中断标志位
MOVAH,4CH;返回DOS
INT21H
NEXT:IRET;中断返回
CODEENDS
ENDSTART
收获体会:
使用间接法设置中断向量:
1.将中断处理程序的段首地址送入DS寄存器,偏移量送入DX寄存器。
2.将需要修改的中断向量类型号送入AL.
3.25号功能送AHo
4.执行INT21H指令。
试验名称PC机内中断嵌套试验成绩
班级姓名学号
试验目的:
1.学习可编程中断控制器8259的工作原理;
2.掌握可编程中断控制器8259的应用控制措施;
试验内容:
PC机内中断嵌套试验。使用单次脉冲模拟两个中断源的中断产生,填写中断处理程序,体会中断嵌
套的过程。
试验环节:
主程序中新3程序入口中断10程序入口
|开始|I开始I
显小响扁的提小忌口.|
试验成果及分析:
CODESEGMENT
ASSUMECSrCODE
START:
.386;伪指令
CLI
MOVAX,CS
MOVDS,AX
MOVDX,OFFSETINTIO;设置IRQ10对应的中断向量
MOVAX,SEGINT10;以AX为过渡,获得段首地址
MOVDS,AX
MOVAL,72n;IRQ10的中断向量地址为7211
MOVAH,25H
INT21H
MOVDXQFFSETINT3;设置IRQ3对应的中断向量
MOVAX,SEGINT3似AX为过渡,获得段首地址
MOVDS,AX
MOVAL,0BH;IRQ3的中断向量地址为OBH
MOVAH.25H
INT21H
INAL,2IH;读入中断控制寄存器
ANDAU0F7H;开放1RQ3中和1RQ2中断祈求,11110111
OUT2IH,AL;输出到中断控制寄存器
INAL,OA1H
ANDAUOFBH;开放IRQIO中断祈求11111011
OUT0A:H.AL
MOVCX,10;设置计数器
STI
WAIT:JMPWAIT;跳转,等待中断祈求信号
INTIO:CLI;将处理器标志寄存器的中断标志位清O,目前不容许中断
PUSHAD;将所有的32位通用寄存器压入堆栈
PUSHFD;然后将32位标志寄存器EFLAGS压入堆栈
MOVCX.10
NEXT1()_1:
;在*号之间填写代码,在屏幕上显示"10"和"空格"的字符
,*#********木木木本*木京**木木木;♦:*********%*****木木
MOVDLJ';在屏幕显示字符1
MOVAH.2
INT2IH
MOVDL:O';在屏幕显示字符0
MOVAH,2
INT21H
MOVDL,20H;在屏幕显示空格字符
MOVAH,2
INT21H
,*********京********************************
CALLDELAY1,调用延时了程序
LOOPNEXT1()_I
MOVDX.ODH;调用DOS的中断功能,回车
MOVAH,02H
INT21H
MOVDXA)AH;调用DOS的中断功能,换行
MOVAH,02H
INT21H
MOVAL,20H
OU1OAOH.AL
OUT20H,AL
POPFD
POPAD
STI
IRET
INT3:CLI
PUSHAD
PUSHFD
MOVCXJO
NEXT3.1:
;在*号之间填写代码,在扉幕显示“3“和“空格”的字符
,*****中***今******±****力******车***幸***本***
MOVDL,3;在屏幕显示字符3
MOVAH.2
INT21H
MOVDL,20H;在屏幕显示空格字符
MOVAH,2
INT21H
・*****赤***************%**********京***才*****
CALLDELAY1;调用延时子程序
LOOPNEXT3_1
MOVDX.ODH;调用DOS的中断功能,回车
MOVAH.02H
INT21H
MOVDX.OAH;调用DOS的中断功能,换行
MOVAH,02H
INT21H
MOVAL,20H
OUT20H.AL
OUTOAOH,AL
POPFD
POPAD
STI
IRET
DELAY1PROC;延时子程序
PUSHAD将所有的32位通用寄存器压入堆栈
PUSHFD•然后将32位标志寄存器EFLAGS压入堆栈
MOVCX.OFHJHCX送数据0FH
DELAY_LOOP1:
MOVBX,0FFFFH
DELAY_LOOP2:
DECBX
NOB
JNZDELAY_LOOP2
LOOPDELAY.LOOPI
POPFD
POPAD
RET
DELAY!ENDP
CODEENDS
ENDSTART
净BochsforWindows-Display
ataOslave:Generic1234ATA-2Hard-Disk(29MBytes)
BootingfromHardDisk...
StartingMS-DOS...
C:\>setpath=c:\dos;d:\tasm\bin
C:\>d:
D:\>cdd:\exec
D:\EXEC>dcltree/Y.
Deleting.\8Z59-Z.exe...
D:\EXEO..Sailcom
loadingfile..8259-2.EXE
load&exec01010
10101010103319IO
333333301O1O
1010101010331O1010
33333331010IO1010IO101010
1333333333
F12enablesmouse
收获体会:
(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控制器的中断祈求进行处理。
试验环^7
试验成果及分析:
»,本**木************木左*^X*木****本***本木******木冬木*木去木察**X本***本**本木木**本木木
;8259中断查询方式应用.式验
,***本*******/**米本******专***赤%**木***余***本**去***********木**X声***衣**本
I8259_lEQU2B0H;8259的ICWI端口地址
I8259_2EQU2B1H;8259的ICW2端口地址
I8259_3EQU2B1U;8259的ICW3端口地址
I8259_4EQU2B1H;8259的ICW4端口地址
()8259」EQU2B1H;8259的OCW1端口地址
O8259_2EQU2B3H;8259的0CW2端口地址
08259.3EQU2BDH;8259的OCW3端口地址
DATASEGMENT
MES1DB'YOUCANPLAYAKEYONTHEKEYBOARDJ'.ODH,OAH,24H
MES2DDMESI
MESSIDB'HELLO!THISISINTERRUPT*0*!*.ODH.OAH:$,
MESS2DBHELLO!THISISINTERRUPT*1*!*,ODH,OAH:$,
MESS3DBHELLO!THISISINTERRUPT*2*!*,ODH,OAH:$'
MESS4DBHELLO!THISISINTERRUPT*3*!,,0DH,0AH;$,
MESS5DB'HELLO!THISISINTERRUPT*4*!,.0DH,0AH:$'
MESS6DBHELLO!THISISINTERRUPT*5*!*,0DH,0AH:$'
MESS7DB'HELLO!THISISINTERRUPT*6*!*,0DH,0AH:$'
MESS8DBHELLO!THISISINTERRUPT*7*!*,()DH,OAH,,S'
DATAENDS
STACKSSEGMENT
DB100DUP(?)
STACKSENDS
STACK1SEGMENTSTACK
DW256DUP(?)
STACK1ENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACKS,ES:DATA
.386;伪指令,告诉编译器在本程序中使用的指令集为80386指令集
START.MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACKS
MOVSS,AX
MOVDX,18259」;初始化8259的ICW1
MOVALJ3H;边缘触发、单片8259、需要ICW400010011
OUTDX,AL
MOVDX,I8259_2;初始化8259的ICW2
MOVAL.UBUH
OUTDX,AL
MOVAL.03H
OUTDX,AL
MOVDX,O8259_I:初始化8259的OCWI
MOVAL.00H;打开屏蔽位
OUTDX,AL
QUERY:MOVAHJ;判断与否有按键按下
INT16H
JNZQUIT;有按键则退出
MOVDX,O8259_3晌8259的OCW3发送查询命令
MOVAL.OCH;00001100D2=l,设置为中断查询方式工作
OUTDX,AL
INAL.DX;读出查询字
MOVAH.AL
ANDAL80H;判断中断与否已响应
TESTAL.80H
JZQUERY;没有响应则维续查询
MOVAL,AH
ANDAL07H;取出查询字的末三位00000111
;通过下面的比较判断程序,判断中断祈求来自哪个优先级
CMPAL.OOH;将查询字末三位与OOH比较,相等,为IR0祈求
JEIROISR;若为】R0祈求,跳到IR0处理程序
CMPAL.01H
JE1R1ISR;若为IR1祈求,跳到IRI处理程序
CMPAL.02H
JE1R2ISR;若为IR2祈求,跳到IR2处理程序
CMPAL.03II
JEIR3ISR;若为IR3祈求,跳到IR3处理程序
CMPAL.04H
JEIR4ISR港为IR4祈求,跳到IR4处理程序
CMPAL.05H
JEIR5ISR;若为IR5祈求,跳到【R5处理程序
CMPAL.06H
JEIR6ISR;若为IR6祈求,跳到IR6处理程序
CMPAL.07H
JEIR7ISR;若为IR7祈求,跳到IR7处理程序
JMPQUERY
1ROISR:MOVAX,DATA;将数据段首地址放入AX寄存器
MOVDS.AX
MOVDX.OFFSETMESS1;显示提醒信息
MOVAH,09
INT21H
JMPEOI
1R11SR:MOVAX,DA1A
MOVDS,AX
MOVDX.OFFSETMESS2;显示提醒信息
MOVAH.09
INT2IH
JMPEOI
IR2ISR:MOVAX,DATA
MOVDS.AX
MOVDX,OFFSETMESS3;显示提醒信息
MOVAH,09
INT21H
JMPEOI
IR3ISR:MOVAX.DATA
MOVDS,AX
MOVDX.OFFSETMESS4;显示提醒信息
MOVAH,09
INT21H
JMPEOI
IR4ISR:MOVAX,DATA
MOVDS,AX
MOVDXQFFSETMESS5;显示提醒信息
MOVAH.09
INT21H
JMPEOI
1R5ISR:MOVAX,DA「A
MOVDS.AX
MOVDX,OFFSETMESS6;显示提醒信息
MOVAH,09
INT21H
JMPEOI
IR6ISR:MOVAX.DATA
MOVDS,AX
MOVDX,OFFSETMESS7;显示提醒信息
MOVAH.09
INT21H
JMPEOI
IR7ISR:MOVAX,DATA
MOVDS.AX
MOVDX,OFFSETMESS8;显示提醒信息
MOVAH,09
INT21H
EOI:MOVDXQ8259一2:向8259的OCW2发送中断结束命令
MOVAL,20H;00100000D5=l,中断结束
OUTDX,AL
JMPQUERY
QUIT:MOVAX,4C(X)H;结束程序退出
INT21H
CODEENDS
ENDSTART
收获体会:
所填数据的形成原理:
I.MOVAL,13H;边缘触发,单片8259,需要ICW4
解释:在初始化ICW1中,D7~D5都是0.D4=I,是ICWLD3=0,上升沿触发。
D2=0,8086中固定设为0.Dl=l,单片工作方式。D0=1,需要ICW4。
因此ICW1=00010011B=13H
2.MOVAL,00H;打开屏蔽位。
解释:中断屏蔽寄存器中,某一位为0时容许中断,为I时屏蔽中断。
3.MOVDX,O8259_3;向8259的OCW3发送查询命令。
MOVAL,L,0CII;00001100D2=l,设置为中断查询方式工作.
4.ANDAL,80H;判断中断与否已响应
解释:获得AL的最高位,判断是1或0.
5.MOVDX,08259.2;向8259的OCW2发送中断结束命令
MOVAU20H;00100000D5=l,中断结束
解释:0CW2的D5=l时,中断结束。
思索题:
1.单中断和多中断有何不一样?
单中断就是从中断开始到中断结束只能完毕一次中断,多中断应当是多重中断,这种中断
方式可以容许在一次中断未完毕时响应更高级别的中断申请,也叫中断嵌套。
2.怎样变化中断优先级的次序?
可以根据程序中中断的书写次序和逻辑构造来进行判断。
3.可编中断控制寄存器8259A在协助CPU处理中断事务中起到那些作用?
[1]优先级排队管理
根据任务的轻重缓急或设备的特殊规定,分派中断源的中断等级。8259A具有完全嵌套。循环
优先级、特定屏蔽等多种方式的优先级排队管理。
⑵可屏蔽中断INTR
当CPU的INTR引脚上有一种来自外部的“高”有效信号输人时,则产生硬件可屏蔽中断祈
求INTR,这种祈求可以被CPU用指令CLI来严禁,也可由指令STI来容许。只有在INTR被
容许时,CPU才发中断响应信号1NTA,这时,中断源一定要向CPU提供中断类型号,以便
找到中断服务程序入口。中断向量表中中断号为08~0FH和()70H~077H的中断,属于这种中
断(见表5.2)。很明显,这种中断是由外部设备产生的,
⑶提供中断类型号
8259A最突出的特点是具有对中断服务程序入口地址的寻址能力,也就是当CPU响应中断申
请后,通过8259A提供的中断类型号可以找到中断服务程序的人口地址,转移到中断服务程
序去执行。
⑷进行中断祈求的屏蔽和开放
8259A可以对提出中断祈求的外部设备进行屏蔽或开放。可见,采用8259A可使系统的硬中
断管理无需附加其他电路,只需对8259A进行编程,就可管理8级、15级或更多的硬中断,
并且还可实现向量中断和查询中断
4,可屏蔽中断与8259A是什么关系?
一片Intel8259可管理8个中断祈求,并把目前优先级最高的中断祈求送到CPU的INTR端;
并在CPU响应中断时,为CPU提供中断类型码;8个外部中断的优先级排列方式,可以通过
对8259编程进行指定。也可以通过编程屏蔽某些中断祈求,或者通过编程变化中断类型码。
容许9片8259级联,构成64级中断系统。中断可分为可屏蔽中断与不可屏蔽中断。其中可屏
蔽中断是外设使用最多的中断方式。
试验二:8255并口控制应用试验
试验名称可编程并行接口8255方式0应用试验成绩
班级姓名学号
试验目的:
1.掌握8255的工作方式及应用编程;
2.掌握8255经典应用电路的接法。
试验内容:
1.基本输入输出试验。编写程序,使8255的B口为输入,A口为输出,完毕拨动开关到数据
灯的数据传播。规定只要开关拨动,数据灯的显示就变化。
试验环节:
开始
设笈8255B」
输入All输出
1-
从BU输入数据
将此数据自AU输出
(一秦)
试验成果及分析:
IO8255_MODEEQU28DII
IO8255_AEQU288H
IO8255_BEQU289H
CODESEGMENT
ASSUMECS:CODE
START:MOVDX,IO8255_MODE;设8255为B口输入,A口输出
MOVAL,82H;设置控制字为1()()(XX)1OB
OUTDX,AL
INOUT:MOVDX,IO8255.B;从B口读入数据
INAL,DX
MOVDX,IO8255_A;从A口输出数据
OUTDX,AL
MOVDLQFFH;判断与否有按键
MOVAH,06H
INT21H
JZINOUT;若无,则继续自B口输入,A口输出
MOVAH,4cH;否则返回
INT2IH
CODEENDS
ENDSTART
收获体会:
8255芯片需要设置好控制字,然后进行读写控制操作。
试验名称流水灯试验成绩
班级姓名学号
试验目的:
1.掌握8255的工作方式及应用编程;
2.掌握8255经典应用出路的接法。
试验内容:
流水灯显示试验。编写程序,使8255的ALI为输出,数据灯D7~D0由左向右,每次仅亮一种灯,循环显
o
试验环节:
试验成果及分析:
IO8255.AEQU288H;8255的A口地址
IO8255_MODEEQU28BH;8255的控制寄存器地址
STACK1SEGMENTSTACK
DVV256DUP(?)
STACK1ENDS
DATASEGME?4T
LADB?;定义数据变量
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DA1A
START:MOVAX,DATA
MOVDS,AX
MOVDX,IO8255_MODE;定义8255工作方式
MOVAL,80H;工作方式0,A口为输出,因此控制字为:
10000000B
OUTDX,AL
MOVDX,IO8255_A;写A口发出的起始数据
MOVAL,80H;设置第一盏灯亮
OUTDX,AL
MOVLA,AL
LOOP1:CALLDALLY
MOVAL,LA;将A口起始数据右移再写入A口
RCRAL,1;循环右移指令
MOVLA,AL
MOVDX,IO8255_A
OUTDX,AL
MOVAH,1;判断与否有按键按下
INT16H
JZLOOP1;无按键则跳回继续循环,有则退出
QUIT:MOVAX,4C00H;结束程序退出
INT21H
DALLYPROCNEAR;软件延时子程序
PUSHCX
PUSHAX
MOVCX,0FFFH
DI:MOVAX,0FFFH
D2:DECAX
JNZD2
LOOPD1
POPAX
POPCX
KEF
DALLYENDP
CODEENDS
ENDSTART
・4
♦Y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026数字孪生赋能鲜鲱鱼智慧仓储与动态定价机制研究
- 2026后补贴时代半自动电池叠片机存量市场技改需求与商业模式重构报告
- MCGS工控组态软件使用说明
- 2026四川建筑施工特种作业人员考试(安全生产基础知识)历年参考题库含答案详解
- 2026吉林机关事业单位工人技术等级考试(瓦工·初级)历年参考题库含答案详解
- 2026卫生高级职称面审答辩(耳鼻咽喉科学)历年参考题库含答案详解
- 2026卫生专业技术资格考试(口腔内科学-专业知识·主治医师)历年参考题库含答案详解
- 2026医用设备上岗证-LA物理师历年题库含答案详解
- 2026医学影像学期末复习-眼科(本科医学影像学)历年题库含答案详解
- 2026军队专业技能岗位文职人员招聘考试(工程机械修理工)历年参考题库含答案详解
- 肿瘤模型的建立
- Q-SY 17016-2024 压裂用驱油剂 磺酸盐类
- T/SHPTA 033-2022聚氯乙烯软制品用钙锌复合热稳定剂
- (高清版)DB13(J)∕T 8375-2020 城市智慧供热技术标准
- 高尿酸血症和痛风的护理
- DB37/T 1649-2010 特种设备制造、安装、改造、维修质量保证-质量管理体系 要求
- 教科版五年级上册科学全套教案(全册)打包下载教学计划及教学进度表
- 河北地质大学《数值分析》2023-2024学年第一学期期末试卷
- JGJ57-2016 剧场建筑设计规范
- 车辆报废代办委托协议
- 《六氟化硫(SF6)气体分解产物带电检测仪器技术规范》
评论
0/150
提交评论