上海大学计算机学院计算机组成原理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海大学计算机学院

计算机组成原理实验报告

【最新资料,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

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

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:

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次之前,松开中断键,这样产生中断后,中断返回,进行原来的程序执行。

在完成aa,bb交替显示3次时,不松开中断键,这样就一直进行中断,无法返回原来的程序执行。

七、建议

八、体会

通过这次试验,我了解了中断机制,知道了中断的原理,知道了如何进行程序中断和中

相关文档
最新文档