计算机组成原理实验报告模版.docx
- 文档编号:6268633
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:10
- 大小:61.02KB
计算机组成原理实验报告模版.docx
《计算机组成原理实验报告模版.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告模版.docx(10页珍藏版)》请在冰点文库上搜索。
计算机组成原理实验报告模版
8259中断控制实验
姓名:
XXX
班级:
XX级
系别:
XX系
学号:
XXXXXXXXXXX
实验日期:
2011/XX/XX
实验目的:
1.掌握8259中断控制器的工作原理
2.学习8259的应用编程方法
3.掌握8259级联方式的使用方法。
实验要求:
1.利用系统内嵌的8259中断控制器芯片处理IRQ3的中断,要求程序最多响应5次中断,然后退出。
中断服务程序只需在屏幕上显示字符串即可(比如说打印:
ThisisaIRQ3)。
(注:
8259的端口地址为20H,21H,8259芯片已经自动初始化为,边缘触发,普通EOI结束方式,无需再进行初始化)
2.利用实验板上的扩展8259中断控制器芯片,验证基于查询的中断引入方式。
要求:
通过读取查询字来查询中断请求号,并在屏幕编程显示用户所触发的中断号。
比如说用户通过脉冲往IR3送了一个中断请求脉冲,屏幕上就显示:
“Thisisinterrupt3!
”(注:
8259的端口地址为:
2B0H,2B1H,中断请求引入方式采用中断查询方式)
实验原理:
PC机用户可使用的硬件中断只有可屏蔽,由8259中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级辨别等处理后向CPU发出可屏蔽中断请求。
IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:
中断源中断类型中断功能
IRQ008H时钟
IRQ109H键盘
IRQ20AH保留
IRQ30BH串行口2
IRQ40CH串行口1
IRQ50DH硬盘
IRQ60EH软盘
IRQ70FH并行打印机
8个中断源的中断请求信号线IRQ0-IRQ7在主机的62线总线插座中可以引出,系统已经设定中断请求信号为“边沿触发”,普通结束方式。
对于286以上的微机又扩展了一片8259中断控制器,IRQ2已用于两片8259之间级连,在本实验中选择IRQ3引到实验台的IRQ插座上。
对8259A编程初始化命令字,共预置了4个命令字:
ICW1、ICW2、ICW3和ICW4。
ICW1—芯片控制初始化命令字,A0=0,D4=1时写入。
ICW2:
设置中断类型号初始化命令字。
–ICW2用于设置8259的中断类型号基值(即中断类型号的高5位),其中断类型号的低三位由申请中断的引脚IRi的编号i确定。
ICW4:
方式控制字初始化命令字。
ICW4用来设定8259A的工作模式。
OCW1:
中断屏蔽操作命令字,在A0=1时写入到中断屏蔽寄存器IMR中,当某一位为1时,就屏蔽与之相应的IR输入。
OCW3:
特殊屏蔽方式和查询方式操作字。
OCW3的功能有三个方面:
一是设置和撤消特殊屏蔽方式,二是设置中断查询方式,三是用来设置对8259A内部的寄存器的读出命令。
在A0=0,D4D3=01时写入OCW3。
实验步骤:
1、打开实验箱,按实验电路图连接好电路,打开电源
2、输入汇编源程序,并编译执行
3、手动产生单脉冲作为中断请求信号,观察显示结果
4、验证结果,进行总结
5、实验结束,整理实验仪器
第一个小实验的流程:
代码:
DATASEGMENT
MESSDB"ThisisaIRQ3.",0DH,0Ah,'$'
DATAENDS
STACK1SEGMENTSTACK
DW64DUP(?
)
STACK1ENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE
START:
MOVAX,0000H
MOVDS,AX;数据段清零
MOVAL,0BH;IRQ3获得原中断向量
MOVAH,35H
INT21H
PUSHES;保存原中断向量
PUSHBX
PUSHDS
MOVDX,OFFSETIRQ3;设置新的中端向量
MOVAX,SEGIRQ3
MOVDS,AX
MOVAL,0BH
MOVAH,25H
INT21H
POPDS
MOVAX,DATA;DATA赋值给DS
MOVDS,AX
CLI;清中断标志位
;8259芯片已经自动初始化
INAL,21H;读8259中断屏蔽字
ANDAL,0F7H;开8259中断3
OUT21H,AL;写回8259中断屏蔽字
MOVCX,0005H;允许中断5次,赋循环次数5
STI;置中断标志位
A1:
CMPCX,0000H
JNZA1
;5次服务后回复原中断IRQ3,重设IMR,屏蔽IRQ3
POPDX;恢复原IRQ3中断
POPDS
MOVAL,0BH
MOVAH,25H
INT21H
INAL,21H
ORAL,04H
OUT21H,AL
STI;开中断
MOVAH,4CH;返回DOS
INT21H
ret
MAINENDP
;3号中断服务程序
IRQ3:
MOVDX,OFFSETMESS;显示要打印的信息
MOVAH,09H
INT21H
DECCX;循环次数减1
MOVAL,20H;OCW2,普通EOI命令,中断结束
OUT20H,AL
EXIT:
CLI;关中断
IRET;中断返回
CODEENDS
ENDSTART
在这个程序中设置了保存原IRQ3中断,以及在程序结束前恢复原IRQ3中断,使程序更加完善。
第二个小实验代码:
DATASEGMENT
MESS0DB'Thisisinterrupt0!
',0ah,0dh,'$'
MESS1DB'Thisisinterrupt1!
',0ah,0dh,'$'
MESS2DB'Thisisinterrupt2!
',0ah,0dh,'$'
MESS3DB'Thisisinterrupt3!
',0ah,0dh,'$'
MESS4DB'Thisisinterrupt4!
',0ah,0dh,'$'
MESS5DB'Thisisinterrupt5!
',0ah,0dh,'$'
MESS6DB'Thisisinterrupt6!
',0ah,0dh,'$'
MESS7DB'Thisisinterrupt7!
',0ah,0dh,'$'
ERRORDB'ERROR!
',0ah,0dh,'$'
DATAENDS
STACKSEGMENTSTACK'STACK'
DW64DUP(?
)
STACKENDS
CODESEGMENT
MAINPROCFAR
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,STACK
MOVSS,AX
MOVAX,0000H
MOVDS,AX;数据段清零
MOVAX,DATA;DATA赋值给DS
MOVDS,AX
;初始化扩展的8259
;其中ICW1为偶地址,ICW2、ICW3、ICW4为奇地址
MOVAL,00010011B;ICW1,边缘触发,单极使用,需设置ICW4
MOVDX,2B0H;偶地址
OUTDX,AL
MOVAL,00001000B;ICW2
MOVDX,2B1H;奇地址
OUTDX,AL
MOVAL,00001101B;ICW4,特殊全嵌套方式,非自动EOI方式
OUTDX,AL;仍是奇地址,不需要变化
MOVCX,0006H;可以判断5次中断
NEXT:
DECCX
CMPCX,0000H
JZEXIT
QUERY:
MOVDX,2B0H;向OCW3发送查询命令
MOVAL,0CH
OUTDX,AL
INAL,DX;读出查询字(低4位)
TESTAL,80H;判断中断是否响应
JZQUERY;没有响应继续查询
MOVAH,09H;输出字符串需设置AH=09H
;有中断响应
ANDAL,0111B
CMPAL,0
JZQ0
CMPAL,1
JZQ1
CMPAL,2
JZQ2
CMPAL,3
JZQ3
CMPAL,4
JZQ4
CMPAL,5
JZQ5
CMPAL,6
JZQ6
CMPAL,7
JZQ7
Q0:
MOVDX,OFFSETMESS0;0号中断
INT21H
JMPNEXT
Q1:
MOVDX,OFFSETMESS1;1号中断
INT21H
JMPNEXT
Q2:
MOVDX,OFFSETMESS2;2号中断
INT21H
JMPNEXT
Q3:
MOVDX,OFFSETMESS3;3号中断
INT21H
JMPNEXT
Q4:
MOVDX,OFFSETMESS4;4号中断
INT21H
JMPNEXT
Q5:
MOVDX,OFFSETMESS5;5号中断
INT21H
JMPNEXT
Q6:
MOVDX,OFFSETMESS6;6号中断
INT21H
JMPNEXT
Q7:
MOVDX,OFFSETMESS7;7号中断
INT21H
JMPNEXT
EXIT:
MOVDX,2B0H;向8259发送中断结束命令
MOVAL,20H
OUTDX,AL
MOVAX,4C00H;返回DOS
INT21H
RET
CODEENDS
ENDSTART
实验结果与分析(参考ppt最后给出的几个问题):
1.每按一次开关产生一次中断,在屏幕上显示一次“ThisisaIRQ3.”,中断5次后退出。
2.每按一次开关产生一次中断,并在屏幕上显示相应的中断类型号。
例如,如果是中断3,会显示“ThisisaIRQ3.”,
实验遇到的问题及解决办法:
第一个程序基本上没有什么问题,只是在开始的时候每按一次开关产生一次中断后,屏幕上显示的字符串是乱码。
仔细检查后发现在程序开始的时候没有把DATA赋值给DS,改正后没有其他的错误。
第二个实验刚开始一直出错,以为是程序错误。
后来发现是连线错误造成的,没有连接扩展的8259的片选信号。
改正后能够正常显示中断。
实验收获:
这是第一次实验,虽然是初次接触所有有关微机接口实验的内容,但整体来说两个程序都不是太难,所以完成得比较顺利。
在编写程序的过程中,需要注意的是PC机中断控制器8259的地址为20H,21H,编程时要根据中断类型型号设置中断矢量。
8259中断屏蔽寄存器IMR对应位清零(允许中断),中断服务程序结束返回前要使用中断结束命令,中断结束返回DOS时对应将IMR对应位置置1,以关闭中断。
此外,了解了中断是提高计算机工作效率的一种重要的技术,可编程中断控制器8259可管理8级优先权中断。
通过这次实验,复习了以前学过的汇编语言的知识,加深了对它的理解;还掌握了8259中断控制器的工作原理和8259的应用编程方法以及级联方式的使用方法,提高了分析问题,解决问题的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告 模版
![提示](https://static.bingdoc.com/images/bang_tan.gif)