汇编课程设计 测量程序运行时间.docx

上传人:b****5 文档编号:7435971 上传时间:2023-01-23 格式:DOCX 页数:12 大小:135.96KB
下载 相关 举报
汇编课程设计 测量程序运行时间.docx_第1页
第1页 / 共12页
汇编课程设计 测量程序运行时间.docx_第2页
第2页 / 共12页
汇编课程设计 测量程序运行时间.docx_第3页
第3页 / 共12页
汇编课程设计 测量程序运行时间.docx_第4页
第4页 / 共12页
汇编课程设计 测量程序运行时间.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编课程设计 测量程序运行时间.docx

《汇编课程设计 测量程序运行时间.docx》由会员分享,可在线阅读,更多相关《汇编课程设计 测量程序运行时间.docx(12页珍藏版)》请在冰豆网上搜索。

汇编课程设计 测量程序运行时间.docx

汇编课程设计测量程序运行时间

课程设计报告

课程名称汇编语言程式设计

课题名称测试任意程式运行时间

专业通信工程

班级0701

学号200703040125

姓名李溢铮

指导教师廖智、吴德建

 

2011年3月11日

湖南工程学院

课程设计任务书

 

课程名称汇编语言程式设计

课题测试任意程式运行时间

专业班级通信0701

学生姓名李溢铮

学号200703040125

指导老师廖智、吴德建

审批

 

任务书下达日期2011年3月1日

任务完成日期2011年3月11日

一、设计内容与设计要求

1.课程设计目的:

《汇编语言程式设计》是计算机专业的重要的专业基础课,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握8088宏汇编语言程式设计的基本方法和技巧,进一步提高编写程式、阅读分析程式及上机操作、调试程式的能力。

2.课题题目

1)测量任意程式的运行时间

2)读入一个文本文件并以DEBUG中的D命令格式显示。

3)文件加密程式

4)编写一个时钟程式

5)画网格线

6)画脉冲波图形

7)用“*”画菱形框

8)计算比赛成绩

3.设计要求:

1)在一周内学生须上机16小时以上,程式调试完后,须由指导老师在机器上检查运行结果,经教师认可后的源程式可通过打印机输出。

2)分组及安排

A.每组同学必须完成所指定的题目,每个同学须自己完成设计,应有不同的思路。

B.按学号分组,第一组为1、9、17、25、33号同学,第二组为2、10、18、26、34号,第三组为3、11、19、27、35号,依次类推,其中第一组做第一题,第二组做第二题,依次类推。

3)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。

4)不得抄袭他人程式、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。

成绩分为优、良、中、及格、不及格五级分评定。

 

二、进度安排

第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分

 

目录

一、题目1

二、程式总体设计方案、思路1

三、程式设计框图2

四、源程式清单2

五、程式调试结果及分析5

六、设计总结6

一、题目

测量任意程式的运行时间

要求:

该程式驻留记忆体

思路:

DOS操作系统中,程式的调入运行及程式的终止均是通过相应的软中断来实现的。

若取得相应软中断,记录下程式开始调入运行的时间及程式终止的时间,则可测量出该程式运行的时间。

提示要点:

与之相关的软中断分别为:

程式开始执行:

4BH号系统功能调用(INT21H)

程式结束:

INT20H

INT27H

00H、3lH、4CH号系统功能调用(INT21H)。

二、程式总体设计方案、思路

1、总体设计

DOS系统中所有程式的开始和结束都会调用特定中断的相应功能,我们要测试某一程式运行时间,只要分别记录程式开始的系统时间以及结束时的系统时间。

再将二者求差值,就可以算出该程式运行时间了。

2、设计思路

我们可以取得程式开始和结束时调用的相应的中断,在中断执行之前加入记录时间的功能并让被修改的中断程式驻留在记忆体当中,记录完之后再调回到原中断,既不影响中断调用又达到了记录的目的。

在取得21号中断的时候先要对AH中的数字进行判断,再决定执行开始的计时还是结束的计时。

开始计时和结束计时分别为两个子程式BEGIN和FINISH,BEGIN将即时时间存入变量中,FINISH先获取当前时间,再把变量里的开始时间相应寄存器,求两者的差值,这个过程中的借位判断较为复杂。

求完差值之后就利用INT21H的2号功能输出HH:

MM:

SS:

MS。

三、程式设计框图

四、源程式清单

MainProgram:

CODESEGMENT

MESSDB‘THEPROGRAMRUNNINGTIMEIS:

$’

TIME1DW0

TIME2DW0

SAVE1DD?

SAVE2DD?

SAVE3DD?

MAINPROCFAR

ASSUMECS:

CODE,DS:

CODE

START:

PUSHCS

POPDS

MOVAX,3521H

INT21H

MOVWORDPTRSAVE1,BX

MOVWORDPTRSAVE1+2,ES

PUSHDS

MOVDX,OFFSETINT_21H

MOVAX,SEGINT_21H

MOVDS,AX

MOVAL,21H

MOVAH,25H

INT21H

POPDS

MOVAL,27H

MOVAH,35H

INT21H

MOVWORDPTRSAVE2,BX

MOVWORDPTRSAVE2+2,ES

PUSHDS

MOVDX,SEGINT_27H

MOVDS,AX

MOVDX,OFFSETINT_27H

MOVAL,27H

MOVAH,25H

INT21H

POPDS

MOVAL,20H

MOVAH,35H

INT21H

MOVWORDPTRSAVE3,BX

MOVWORDPTRSAVE3+3,ES

PUSHDS

MOVAX,SEGINT_20H

MOVDS,AX

MOVDX,OFFSETINT_20H

MOVAL,20H

MOVAH,25H

INT21H

POPDS

MOVDX,PGM_LEN/16+20

MOVAX,3100H

INT21H

MAINENDP

Sub_ProgramandFunctionModule:

INT_20HPROCNEAR

CALLFINISH

JMPDWORDPTRCS:

SAVE3

INT_20HENDP

INT_27HPROCNEAR

CALLFINISH

JMPDWORDPTRCS:

SAVE2

INT_27HENDP

INT_21HPROCNEAR

CMPAH,4BH

JELP1

CMPAH,00H

JLELP2

CMPAH,31H

JELP2

CMPAH,4CH

JELP2

JMPLP3

LP1:

CALLBEGIN

JMPLP3

LP2:

CALLFINISH

LP3:

JMPDWORDPTRCS:

SAVE1

INT_21HENDP

StartRecordTimeSub_Program:

BEGINPROCNEAR

PUSHCX

PUSHDX

PUSHAX

MOVAH,2CH

INT21H

MOVCS:

TIME1,CX

MOVCS:

TIME2,DX

POPEX

POPDX

POPCX

RET

BEGINENDP

CalculatandExportFormattedTimeSub_Program:

FINISHPROCNEAR

PUSHAX

PUSHBX

PUSHCX

PUSHDX

CALLTIME_SUB

MOVDX,OFFSETMESS

MOVAX,SEGMESS

MOVDS,AX

MOVAH,09H

INT21H

MOVAX,CS:

TIME1

ANDAX,0FF00H

XCHGAH,AL

CALLVIEW

MOVDL,’:

MOVAH,02H

INT21H

MOVAX,CS:

TIME1

ANDAX,00FFH

CALLVIEW

MOVDL,’:

MOVAH,02H

INT21H

MOVAX,CS:

TIME2

ANDAX,0FF00H

XCHGAH.AL

CALLVIEW

MOVDL,’.’

MOVAH,02H

INT21H

MOVAX,CS:

TIME2

ANDAX,00FFH

CALLVIEW

POPDX

POPCX

POPBX

POPAX

RET

FINISHENDP

DisplayTimeSub_Program:

VIEWPROCNEAR

PUSHCX

PUSHDX

MOVCL,10

DIVCL

PUSHAX

MOVDL,AL

ADDDL,30H

MOVAH,2

INT21H

POPAX

MOVDL,AH

ADDDL,30H

MOVAH,2

INT21H

POPDX

POPCX

RET

VIEWENDP

CalculatTimeSub_Program:

TIME_SUBPROCNEAR

MOVAH,2CH

INT21H

MOVBX,CS:

TIME2

CMPDL,BL

JGELOP1

DECDH

ADDDL,100

LOP1:

SUBDL,BL

CMPDH,BH

JGELOP2

DECCL

ADDDH,60

LOP2:

SUBDH,BH

MOVBX,CS:

TIME1

CMPCL,BL

JGELOP3

DECCH

ADDCL,60

LOP3:

SUBCL,BL

SUBCH,BH

MOVCS:

TIME1,CX

MOVCS:

TIME2,DX

RET

TIME_SUBENDP

PGM_LENEQU$_MESS

CODEENDS

ENDSTART

五、程式调试结果及分析

下图是运行了驻留程式之后再打开DOS系统中DEBUG功能对其进行测试。

在运行了驻留程式马上会出现一个时间,这是驻留程式本身结束提取系统时间减去0

下图是打开debug并随意操作或者挂起一段时间后退出,发现输出了debug运行的总时间0小时0分22秒85微秒(包括debug的挂起时间)。

六、设计总结

两个礼拜的汇编课程设计,让我们第一次动手写汇编程序。

这次我拿到的是第一个课题,计算程序的运行时间。

虽然说取中断的方法计算程序运行的时间很不准确,因为程序本身运行的时间没有被计算在内,取中断的时间也没有计算进去,但是,即便是这么一个看起来初级的问题,依然难住了我们。

汇编和以前我们学过的C语言不同,它不是基于自然语言的,写程序的时候思路也很不一样。

我们常常被各种寄存器搞得晕头转向,最后不得不通过网络查阅相关资料期望获得帮助。

不过,网上用这种方法计算运行时间的案例很少,很难找到。

我们坚持不懈的努力,终于找到了一个范例。

看到范例才发现,原来我们曾经的思路和范例相差那么远,通过研究和学习,我们终于明白应该如何写这样一个程序才是最好的,才是高效简洁的。

最后,程序终于修正了所有的错误,成功的调试运行了,这对我们的努力是一种肯定,也充分说明了实践对于掌握一门知识,一种能力的过程中起到的重要的作用。

也许没有范例我们依然难以自己写出这个程序,但是,通过这次学习,我们有了新的收获,将来的学习应用中,我们将会变得更加的得心应手。

计算机与通信学院课程设计评分表

课程名称:

汇编语言程式设计

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

答辩陈述与回答问题情况

课程设计周表现情况

综合成绩

教师签名:

日期:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1