版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、实验目的1.
学习中断的原理和设置中断向量,进一步加深对中断处理程序的理解2.
掌握中断的分类、中断向量的设置和中断处理程序的设计。3、掌握dos和bios中断调用。二、实验内容(本次实验完成程序2的编写与调试)2、编写程序2实现秒表计时功能:要求在屏幕0行0列的位置显示“00:00:00”,当按下任意键开始计时,按下‘m’键在25列的位置记录时间,秒表继续计时,再次按下‘m’键在下一行25列的位置记录时间,按下‘r’键则清除屏幕重新开始计时,按下‘d’三、实验报告要求:1、画出程序2框图,写出各个模块说明。2、列出程序2的源程序,加以注释,说明程序的基本结构。3、写出调试过程,并分析结果。4、分析程序2中中断向量的使用,思考问题:计时频率如何设定为100次/秒?5、在程序2中,如何将秒表显示在屏幕中央位置?源程序:datasegment min1 db '0' min2 db '0' m db ':' sec1 db '0' sec2 db '0' m2 db ':' msec1 db '0' msec2 db '0' count equ $-min1 h db 0dataendscodesegmentmainprocfar assumecs:code,ds:datastart: mov ax, data mov ds, ax call clean_screen call locate_cursor call show mov ah, 0 int 16h cli mov al, 08h mov ah, 35h ;获取08h号中断的原入口地址 int 21h push es push bx push ds mov ax, segint08h mov ds, ax mov dx, offsetint08h ;设置08h号中断的新入口地址 mov al,08h mov ah,25h int 21h;调用08h号中断的服务程序,获取 pop ds in al, 21h push ax mov al, 11111100b out 21h, al mov al, 00110110b out 43h, al mov ax, 11931 out 40h, al mov al, ah out 40h, al sti s1: call locate_cursor call show mov ah, 0bh;检验键盘状态 int 21h inc al jnz s1 mov ah, 08h int 21h cmp al, 'd' je d1 cmp al, 'm' je m1 cmp al, 'r' je r1 jmp s1 r1: pop ax out 21h,al pop dx ;把bx送到dx pop bx push ds mov ds,bx mov al,08h mov ah,25h int 21h pop ds mov h, 0 mov min1, 30h mov min2, 30h mov sec1, 30h mov sec2, 30h mov msec1, 30h mov msec2, 30h jmp start m1: mov dh, h mov dl, 25 mov bh, 0 mov ah, 2 int 10h call show inc h jmp s1 d1: pop ax out 21h,al pop dx ;把bx送到dx pop ds ;把es送到ds mov ax, 2508h int 21h mov al, 00110110b out 43h, al sub al, al out 40h, al out 40h, al mov ah, 4ch int 21h mainendpint08hprocnear push ax push ds mov ax,data mov ds,ax inc msec2 cmp msec2,3ah jb t mov msec2,30h inc msec1 cmp msec1,3ah jb t mov msec1,30h inc sec2 cmp sec2,3ah jb t mov sec2,30h inc sec1 cmp sec1,36h jb t mov sec1,30h inc min2 cmp min2,3ah jb t mov min2,30h inc min1 cmp min1,36h jb t mov min1,30ht: mov al,20h out 20h,al pop ds pop ax iret ;中断返回int08hendp;中断服务程序结束 clean_screenprocnear push ax push bx push cx push dx mov ah, 6 mov al, 0 mov bh, 7 mov ch, 0 mov cl, 0 mov dh, 24 mov dl, 79 int 10h pop dx pop cx pop bx pop ax retclean_screenendplocate_cursorprocnear push dx push bx push ax mov dh, 0 mov dl, 0 mov bh, 0 mov ah, 2 int 10h pop ax pop bx pop dx retlocate_cursorendpshowprocnear push cx push bx push si push ax mov cx, count mov si, offset min1 mov bl, 7show1: mov ah, 0eh mov al, [si] int 10h inc si loop show1 pop ax pop si pop bx pop cx retshowendpcodeends endstart光标定位恢复原状态,结束显示光标定位恢复原状态,结束显示行数加1复位,重新开始读取键值开中断光标定位计数器0初始化开始清屏中断向量初始化关中断等待按键显示00:00:00光标定位显示读取计数值有键按下?是r?是m?是d?结束调试过程:按任意键开始计时,每按一次m键显示一次时间,同时计时器继续计时:按r键清除屏幕,计时器恢复到00:00:00按任意键继续计时,按d键退出程序:4、分析程序2中中断向量的使用,思考问题:计时频率如何设定为100次/秒?答:把中断子程序的段地址和偏移地址送到08H中断向量中,由于08H中断向量硬件中断,计数器0的输出端OUT与中断控制器8259A的一位相连每秒中断18.2次,故只要在中断子程序中写入秒表的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国数码脉冲反射仪行业市场前景分析及发展趋势与投资战略研究报告(2024-2030版)
- 中国平衡供暖市场营销优势投资与供给前景建议研究报告(2024-2030版)版
- 中国山梨糖醇行业销售动态及需求趋势预测研究报告(2024-2030版)
- 中国三羟甲基氨基甲烷行业应用态势及产销趋势预测研究报告(2024-2030版)
- 【正版授权】 ISO/TS 80004-13:2024 EN Nanotechnologies - Vocabulary - Part 13: Graphene and other two-dimensional (2D) materials
- 2024年秋新沪粤版物理八年级上册课件 第四章物质的形态及其变化 第二节汽化和液化
- 股权转让安全协议书模板
- 成都报关委托协议书模板
- 化妆品年度品牌营销推广方案
- 包装工艺学-第十章-环境保护包装
- 个人入股朋友服装店协议书
- 学校依法治校工作机构、队伍及职责
- 手术室提高患者术中保温措施的执行率PDCA课件
- 鼻饲患者的护理
- 中考英语分类阅读及讲解汇编(七)名胜古迹
- 上海学校心理咨询师中级面试案例报告
- TCSES 82-2023 基于环境 DNA 的淡水生物评价技术指南
- 《临床技能培训》内科
- 人教版(2019)选择性必修 第一册Unit 1 People of Achievement Using Language课件
- 物理降温课件
- 中国高级别墅报告
评论
0/150
提交评论