汇编语言实验31100300817张成宇

上传人:xiao****1972 文档编号:84807764 上传时间:2019-03-04 格式:DOC 页数:3 大小:63.14KB
返回 下载 相关 举报
汇编语言实验31100300817张成宇_第1页
第1页 / 共3页
汇编语言实验31100300817张成宇_第2页
第2页 / 共3页
汇编语言实验31100300817张成宇_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《汇编语言实验31100300817张成宇》由会员分享,可在线阅读,更多相关《汇编语言实验31100300817张成宇(3页珍藏版)》请在金锄头文库上搜索。

1、实验二:缓冲区设计 学号: 姓名: 1 掌握中断的概念,分类,工作过程。 2 掌握中断处理主程序、子程序编程的方法。 3 熟练中断处理程序的调试与跟踪技巧。 4 时钟及键盘的工作原理、中断处理程序编制与调试。 一、 实验目的 二、 实验仪器与主要器件 1 系统计算机一台 2 Windows XP操作系统 3 QASM软件 4 Internet网络 三、 实验预习 1. 中断、软中断、硬中断的概念 中断:外设主动采用中断请求向处理器提出要求;这时,处理器执行事先设计好的中断服务程序,在中断服务程序当中实现数据交换,这就是程序中断输入输出方式。 软中断:内部中断CPU内部执行程序引起的中断。 硬中

2、断:外部中断来自CPU之外的原因引起的中断。 2. 硬中断的主程序做什么,中断处理子程序做什么? 硬中断的主程序:本中断请求允许、保存老向量、修改中断向量。恢复向量,恢复原中断屏蔽寄存器 中断处理子程序:(STI)、保护现场、中断服务、中断结束(告诉中断控制器清除本中断服务的标志)、恢复现场、中断返回。 四、 实验准备 1. 从FTP下载实验程序(留空需自己填写) 2. 安装好QASM,保证调试程序正常工作 五、 实验1:时钟中断处理的编程与调试 1 实验要求:时钟中断处理子程序使DB类型的COUNT变量加1; 主程序显示COUNT的值,并当COUNT=100时回0。 程序填空:(1)_0_

3、(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

4、.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_ 空格 :

5、_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)可以计时,计算程序段运

6、行时间 (2)可用来做 延时 (3)可以在每次时钟中断时执行一次自己编的程序 2. 设计键盘中断的按下码、松开码,有什么作用? 可以重复一直按一个键,我们的计算机也能够知道那个键一直按着,可以重复执行这个键规定的功能程序。解决了多个键同时按下的情况,按着最先释放的顺序,确定先处理哪个按键。 3. 在中断处理子程序中,做哪些改进,能够实现CAPSLOCK、NUMLOCK、SCRLOCK、SHIFT、CTRL、ALT的状态表示呢?怎么获取按键对应的ASCII码呢? 设置状态变量,记录这些状态键即可,以后在处理每一个其他按键时,都先看一下状态变量。 建立扫描码到ASCII码的映射表,这样每接收一个扫描码,到表里查到相对应的ASCII码即可。 哈尔滨工业大学计算机科学与技术学院 第 3 页 (共 3 页)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号