汇编课设-测量任意程序运行时间_第1页
汇编课设-测量任意程序运行时间_第2页
汇编课设-测量任意程序运行时间_第3页
汇编课设-测量任意程序运行时间_第4页
汇编课设-测量任意程序运行时间_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课题名称测试任意程序运行时间i / 14、设计内容与设计要求1. 课程设计目的:汇编语言程式设计是计算机专业的重要的专业基础课,通过本课程设计使学生 进一步巩固课堂所学,全面熟悉、掌握 8086 宏汇编语言程式设计的基本方法和技巧, 进一步提高编写程式、阅读分析程式及上机操作、调试程式的能力。2. 课题题目1)2)3)4)5)6)7)8)测量任意程式的运行时间读入一个文本文件并以 DEBUG 中的 D 命令格式显示。 文件加密程式编写一个时钟程式 画网格线 画脉冲波图形 用“*画”菱形框 计算比赛成绩3设计要求:1)在一周内学生须上机 16 小时以上,程式调试完后,须由指导老师在机器上检 查运

2、行结果,经教师认可后的源程式可通过打印机输出。2) 分组及安排A.每组同学必须完成所指定的题目,每个同学须自己完成设计,应有不同的思路。B.按学号分组,第一组为1、9、17、25、33号同学,第二组为2、10、18、26、 34号,第三组为 3、 11、 19、 27、 35 号,依次类推,其中第一组做第一题,第二组做 第二题,依次类推。3) 按规定格式完成课程设计报告,将其打印稿 (A4 纸 )上交给老师存档。4) 不得抄袭他人程式、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。成绩分为优、良、中、及格、 不及格五级分评定。i / 14进

3、度安排第2周星期三14 时:00 分18 时:00分星期日8 时:00 分12 时:00分第3周星期一14 时:00 分18 时:00分星期三8 时:00 分12 时:00分星期三14时:00 分18时:00 分星期五8 时:00 分12 时:00分10目录i / 14题目 二、程序总体设计方案、思路 三、程序 设计框图 四、源程序清单 五、程序调试结果及分析六、设计总结错误!未定义书签。13 / 14题目测量任意程式的运行时间 要求:该程式驻留记忆体 思路: DOS 操作系统中,程式的调入运行及程式的终止均是通过相应的软中断来实现的。若取得相 应软中断,记录下程式开始调入运行的时间及程式终止

4、的时间,则可测量出该程式运行的时间。提示要点:与之相关的软中断分别为: 程式开始执行: 4BH 号系统功能调用( INT 21H ) 程式结束: INT 20HINT 27H 00H 、 3lH 、 4CH 号系统功能调用( INT 21H )。二、程式总体设计方案、思路1、总体设计DOS 系统中所有程式的开始和结束都会调用特定中断的相应功能,我们要测试某一程式运行时间, 只要分别记录程式开始的系统时间以及结束时的系统时间。再将二者求差值,就可以算出该程式运行时间了。2、设计思路我们可以取得程式开始和结束时调用的相应的中断,在中断执行之前加入记录时间的功能并让被修 改的中断程式驻留在记忆体当中

5、,记录完之后再调回到原中断,既不影响中断调用又达到了记录的 目的。在取得 21 号中断的时候先要对 AH 中的数字进行判断, 再决定执行开始的计时还是结束的计时。 开 始计时和结束计时分别为两个子程式 BEGIN 和 FINISH , BEGIN 将即时时间存入变量中, FINISH先获取当前时间,再把变量里的开始时间相应寄存器,求两者的差值,这个过程中的借位判断较为 复杂。求完差值之后就利用 INT 21H 的 2 号功能输出 HH:MM:SS:MS 。程式设计框图四、源程序清单;Main Program:CODE SEGMENTMESS DB 'THE PROGRAM RUNNIN

6、G TIME IS:$'TIME1 DW 0TIME2 DW 0SAVE1 DD ?SAVE2 DD ?SAVE3 DD ?MAIN PROC FARASSUME CS:CODE,DS:CODESTART: PUSH CSPOP DSMOV AX,3521H;取出(21号类型的 )中断向量INT 21HMOV WORD PTR SAVE1,BXMOV WORD PTR SAVE1+2,ESPUSH DSMOV DX,OFFSET INT_21HMOV AX,SEG INT_21HMOV DS,AXMOV AL,21H;设置中断向量 ,返回被测程序MOV AH,25HINT 21HPOP

7、 DSMOV AL,27H;取出中断向量 27 号中断也是程序结束中断,保存在 ES:BX 中MOV AH,35HINT 21HMOV WORD PTR SAVE2,BXMOV WORD PTR SAVE2+2,ESPUSH DSMOV DX,SEG INT_27HMOV DS,AXMOV DX,OFFSET INT_27HMOV AL,27H;设置2 7号中断向量MOV AH,25HINT 21HPOP DSMOV AL,20H;取出中断向量, 20 号中断向量也是程序结束中断MOV AH,35HINT 21HMOV WORD PTR SAVE3,BXMOV WORD PTR SAVE3+3

8、,ESPUSH DSMOV AX,SEG INT_20HMOV DS,AXMOV DX,OFFSET INT_20HMOV AL,20H ;设置中断向量,返回被测程序MOV AH,25HINT 21HPOP DSMOV DX,PGM_LEN/16+20 ; 偏移地址;mov dx,PGM_LEN ;shl dx,4;add dx,20MOV AX,3100H;结束并驻留程序INT 21HMAIN ENDP;main 子程序结束;Sub_Program and Function Module:INT_20H PROC NEAR;20H 好中断服务程序CALL FINISH;计算程序结束时间JMP

9、 DWORD PTR CS:SAVE3INT_20H ENDPINT_27H PROC NEAR;27H 好中断服务程序CALL FINISHJMP DWORD PTR CS:SAVE2INT_21H PROC NEARINT_27H ENDP;21H 好中断服务程序 ,将 AH 的内容与以下几个数字比较得到中断类型CMP AH,4BHJE LP1CMP AH,00HJLE LP2CMP AH,31HJE LP2CMP AH,4CHJE LP2JMP LP3LP1:CALL BEGINJMP LP3LP2:CALL FINISHLP3:JMP DWORD PTR CS:SAVE1INT_21H

10、 ENDP;Start Record Time Sub_Program:BEGIN PROC NEAR;记录程序开始执行的时间PUSH CXPUSH DXPUSH AXMOV AH,2CHINT 21HMOV CS:TIME1,CX;时间记录 1MOV CS:TIME2,DX;时间记录 2POP AXPOP DXRETPOP CX;返回被测程序BEGIN ENDP ;Calculat and Export Formatted Time Sub_Program:FINISH PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXCALL TIME_SUB;调用时间计算子程序M

11、OV DX,OFFSET MESS ;输出提示信息MOV AX,SEG MESSMOV DS,AXMOV AH,09HINT 21HMOV AX,CS:TIME1AND AX,0FF00HXCHG AH,ALCALL VIEWMOV DL,':'MOV AH,02HINT 21HMOV AX,CS:TIME1AND AX,00FFHCALL VIEWMOV DL,':'MOV AH,02HINT 21HMOV AX,CS:TIME2AND AX,0FF00HXCHG AH,AL;清楚 AHCALL VIEW;调用显示程序MOV DL,'.'MOV

12、 AH,02HINT 21HMOV AX,CS:TIME2AND AX,00FFHCALL VIEWPOP DXPOP CXPOP BXPOP AXRETFINISH ENDPQis play Time Sub_ Program: 显示程序VIEW PROC NEARPUSH CXPUSH DXMOV CL,10DIV CLPUSH AXMOV DL,ALADD DL,30HMOV AH,2INT 21HPOP AXMOV DL,AHADD DL,30HMOV AH,2INT 21HPOP DXPOP CXRETVIEW ENDP;Calculat Time Sub_Program 计算时间差

13、TIME_SUB PROC NEARMOV AH,2CHINT 21HMOV BX,CS:TIME2CMP DL,BLJGE LOP1DEC DHADD DL,100LOP1:SUB DL,BLCMP DH,BHJGE LOP2DEC CLADD DH,60LOP2:SUB DH,BHMOV BX,CS:TIME1CMP CL,BLJGE LOP3DEC CHADD CL,60LOP3:SUB CL,BLSUB CH,BHMOV CS:TIME1,CXMOV CS:TIME2,DXRETTIME_SUB ENDPPGM_LEN EQU $ -MESSCODE ENDSEND START五、程式调试结果及分析F图是运行了驻留程式之后再打开DOS系统中DEBUG功能对其进行测试。在运行了驻留程式马上会出现一个时间,这是驻留程式本身结束提取系统时间减去0,也就是本机时间。M L croLio I IU i lufowj-;II 7777f> . 1 , /GO 1 I< c )Mi er ci5;of t Corpor<=at i onHFPROGRnMpfjNKTNGTTrtFTS : 1 1 ; 00,b:UStRSWS>F图是打开delay程序并随意操作或者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论