资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
实验二:缓冲区设计 学号: 姓名: 1 掌握中断的概念,分类,工作过程。 2 掌握中断处理主程序、子程序编程的方法。 3 熟练中断处理程序的调试与跟踪技巧。 4 时钟及键盘的工作原理、中断处理程序编制与调试。 一、 实验目的 二、 实验仪器与主要器件 1 系统计算机一台 2 Windows XP操作系统 3 QASM软件 4 Internet网络 三、 实验预习 1. 中断、软中断、硬中断的概念 中断:外设主动采用中断请求向处理器提出要求;这时,处理器执行事先设计好的中断服务程序,在中断服务程序当中实现数据交换,这就是程序中断输入输出方式。 软中断:内部中断CPU内部执行程序引起的中断。 硬中断:外部中断来自CPU之外的原因引起的中断。 2. 硬中断的主程序做什么,中断处理子程序做什么? 硬中断的主程序:本中断请求允许、保存老向量、修改中断向量。恢复向量,恢复原中断屏蔽寄存器 中断处理子程序:(STI)、保护现场、中断服务、中断结束(告诉中断控制器清除本中断服务的标志)、恢复现场、中断返回。 四、 实验准备 1. 从FTP下载实验程序(留空需自己填写) 2. 安装好QASM,保证调试程序正常工作 五、 实验1:时钟中断处理的编程与调试 1 实验要求:时钟中断处理子程序使DB类型的COUNT变量加1; 主程序显示COUNT的值,并当COUNT=100时回0。 程序填空:(1)_0_ (2)_ ES:1CH*4+2 _ (3)_ ES:1CH*4 _ (4)_SEG NEWINT1C_ (5)_OFFSET NEWINT1C_ (6)_100_ (7)_INC_ (8)_IRET_ 2 运行程序,同一个数显示次数大约为_300_ 3 调试程序,老的中断向量CS:_020E_,IP:_06AD_ 新的中断向量为CS:_141E_ ,IP:_0092_ 在中断处理子程序的第一条指令处设置断点,全速运行程序,记录断点内容为: FR:_3206_,CS:_141E_,IP:_0067_ 可见在运行主程序的_MOV DL,20H_指令前发生了时钟中断。 4 提交完整的程序名timer.asm 六、 实验2:键盘中断处理的编程与调试 1 实验要求:键盘中断处理子程序,把按键的扫描码送给DB类型的变量SCANCODE。 主程序显示SCANCODE的值,当为ESC键时退出。 程序填空:(1)_ES:26H _ _ (2)_ ES:24H_ (3)_SEG NEWINT09_ (4)_OFFSET NEWINT09_ (5)_STI_ (6)_POP ES:24H_ (7)_POP ES:26H_ (8)_MOV AL,20H_ (9)_OUT 20H,AL_ (10)_IRET_ 2 运行程序,记录各按键的扫描码(按下码、松开码) ENTER:_1CH_,_9CH_ 空格 : _39H_,_B9H_ F1 :_3BH_,_BBH_ 上箭头: _E0 2A E0 48_,_E0 C8 E0 AA_ ESC :_01_,_81_ 3 调试程序,老的中断向量CS:_10D7_,IP:_0CD6_ 新的中断向量为CS:_141F_ ,IP:_0098_ 在中断处理子程序的第一条指令处设置断点,全速运行程序,记录断点内容为: FR:_0297_,CS:_141F_,IP:_0024_ 可见在运行主程序的_CMP INTFLAG,1_指令前发生了键盘中断。 4 提交完整的程序名kbd.asm 七、 思考题: 1. 你可以利用时钟中断的作用做些什么? (1)可以计时,计算程序段运行时间 (2)可用来做 延时 (3)可以在每次时钟中断时执行一次自己编的程序 2. 设计键盘中断的按下码、松开码,有什么作用? 可以重复一直按一个键,我们的计算机也能够知道那个键一直按着,可以重复执行这个键规定的功能程序。解决了多个键同时按下的情况,按着最先释放的顺序,确定先处理哪个按键。 3. 在中断处理子程序中,做哪些改进,能够实现CAPSLOCK、NUMLOCK、SCRLOCK、SHIFT、CTRL、ALT的状态表示呢?怎么获取按键对应的ASCII码呢? 设置状态变量,记录这些状态键即可,以后在处理每一个其他按键时,都先看一下状态变量。 建立扫描码到ASCII码的映射表,这样每接收一个扫描码,到表里查到相对应的ASCII码即可。 哈尔滨工业大学计算机科学与技术学院 第 3 页 (共 3 页)
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号