上海大学计算机学院计算机组成原理实验报告修订版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上海大学计算机学院计算机组成原理实验报告
修订版
IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】
上海大学计算机学院
计算机组成原理实验报告
【最新资料,WORD文档,可编辑修改】
上海大学计算机学院
《计算机组成原理实验》报告十
实验名称:中断机制和应用(综合实验)
一、实验目的
1. 学习实验箱感知中断的硬件结构和工作原理。
2. 学习使用中断系统。
3. 学习使用扩展外设。
二、实验原理
1. 程序中断:因“随机性”原因,使一个程序暂停执行,转而执行另一个程序,以处理随机事件,然后再返回原程序继续执行的过程成为“中断”。
中断发生的时间是随机的(不可预知,但发生后应该如何处理是安排好的),中断发生的“随机性”决定了“必须用硬件感知中断请求”、“不仅要保存断点,还必须保存现场”。
2. 实验箱的中断感知硬件:当执行取指微指令时,IREN=0,于是②号或门输出0,这时
①号“或门”对IREQ的Q端开放,若有中断请求就会在这时被CPU感知。所以无论中断请求在何时提出,都只能在取指阶段被感知!当①号“或门”输出0时中断被感知,同时这个低电平使IACK的SD有效,迫使其Q端输出1,ACK灯亮,并使②号“或门”对IREN关闭并输出1;这个1又使①号“或门”对中断请求关闭并输出1,这个1又返回IACK的SD端,使IACK保持Q=1的状态。所以系统进入中断服务子
程序后,ACK灯保持亮,且不响应新的中断请求(仅一级中断)。
3. ICOE向下经“与门”控制PC+1信号,ICOE的另一个作用是通过③号“或门”控制EM中指令的输出,保证在输出中断指令B8H时,EM不输出。
4.
5.试验箱外扩系统
6.74LS08结构俯视图
三、实验内容
1. 用74LS 08芯片搭建当电键K1和K2都为1时不产生中断请求信号的外部电路。
2. 编制中断服务子程序使OUT交替显示AA、BB三次后返回源程序。源程序为实验七完成的交替显示11和55的程序。
(1). 运行上述程序,在完成AA、BB交替显示三次之前恢复K1K2都为1的状态。记录OUT显示的现象、REQ灯和ACK灯的情况以及ST寄存器的值及改变情况。
(2). 运行上述程序,在完成AA、BB交替显示时不恢复K1K2都为1的状态。记录OUT显示的现象、REQ灯和ACK灯的情况以及ST寄存器的值及改变情况。R2记录主程序延迟时间,R1与主程序显示同步。分析上述二种显示现象的原因。
四、实验步骤
1. 用74LS 08芯片搭建当电键K1和K2都为1时不产生中断请求信号的外部电路。
打开电源,进入手动模式。将试验箱的外扩箱的1和K1相连,2和K2相连,7接地,40接电源vcc。开关都为1时不产生中断请求信号。
按一下l 就会产生中断。
2.①启动桌面上COMPUTE.EXE软件。
②连接通信口:COM1/COM2
③点击源程序编写程序:
sta:
mov a,#11h
mov r1,a
out
mov a,#10h
loop1:
sub a,#1h mov r2,a
jz loop2 jmp loop1 loop2:
mov a,#55h mov r1,a out
mov a,#10h loop3:
sub a,#1h mov r2,a
jz sta
jmp loop3 org 50h mov r0,#04h
loop4: mov a,r0 sub a,#1h mov r0,a
jz exit mov r0,a mov a,#aah out
mov a,#5h loop5:
sub a,#1h jz loop6 jmp loop5 loop6: mov a,#bbh out
mov a,#5h
loop7:
sub a,#1h
jz loop4
jmp loop7
exit:
mov a,r1
out
mov a,r2
add a,#0h
reti
end
④保存,文件名后需加.asm后缀。
⑤打开试验箱,编译下载。
⑥全速运行
按下中断键,在aa与bb交替显示3次之前松开中断键,记录OUT显示,REQ灯ACK灯的情况,及ST寄存器的值及改变情况。
运行上述程序,在完成aa与bb交替显示时不松开中断键,记录OUT显示,REQ灯ACK 灯的情况,及ST寄存器的值及改变情况。
五、实验现象
刚开始运行11与55交替出现,R1与OUT显示同步,R2记录的是主程序的延迟时间,执行中断前,ACK和REQ灯均不亮,ST寄存器为00,OUT显示11和55,按一下中断键松开后,就会产生中断,调用中断程序,aa与bb交替出现,ACK和REQ灯均亮,R0
记录aa与bb交替出现的次数,由3依次减1,依次出现3、2、1,然后R2保持中断时的主程序的延迟时间,R1保持中断时OUT显示的值,然后中断结束后,ACK和REQ灯又不亮,从R2记录的延迟时间开始,OUT显示R1记录的主程序的值,依次交替出现11和55.
刚开始运行11与55交替出现,R1与OUT显示同步,R2记录的是主程序的延迟时间,执行中断前,ACK和REQ灯均不亮,ST寄存器为00,OUT显示11和55。按下中断键后不放开,执行中断时,ACK和REQ亮起,OUT交替显示aa和bb,直到中断程序依次交
替显示3次aa与bb后,再放开,那么OUT会一直交替显示aa与bb,ACK和REQ灯暗掉后又马上亮,寄存器R1显示11,寄存器R2显示06.
六、实验结论
在完成aa与bb交替显示3次之前,松开中断键,这样产生中断后,中断返回,进行原来的程序执行。