汇编语言课程设计七段码电子表显示程序_第1页
汇编语言课程设计七段码电子表显示程序_第2页
汇编语言课程设计七段码电子表显示程序_第3页
汇编语言课程设计七段码电子表显示程序_第4页
汇编语言课程设计七段码电子表显示程序_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、攀枝花学院学生课程设计(论文)题 目: 七段码电子表显示程序 学生姓名: 文 理 学 号: 所在院(系): 计算机学院 专 业: 计算机科学与技术 班 级: 2010级计本2班 第二组 指 导 教 师: 职称: 讲师 2011 年 12 月 31 日攀枝花学院本科学生课程设计任务书题目七段码电子表显示程序1、课程设计的目的通过本课程设计教学所要达到的目的是:1、培养学生理论联系实际的设计思想,提高学生综合运用汇编语言课程的理论知分析问题、解决问题的能力。2、通过查找、运用设计资料,完成工程设计所必备的基本训练。3、使同学们更深入的了解计算机系统内部的有关知识,为以后的学习和系统开发奠定良好的基

2、础。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)设计内容:用电子表的形式显示系统时间。以“时:分:秒”的形式显示时间。设计思路:数字09中的每一个数字用“”和“”字符组成的“七段”码图形表示,时与分、分与秒之间的两点用“”字符表示。这些字符预先定义在数据段的字符图形里,利用bios int 1ah的2号系统功能调用,读出计算机系统的时间(为bcd码),置换成字符图形标中的图形字符显示。本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。方法是:不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统

3、时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。3、主要参考文献1汇编语言程序设计,吴向军等,高等教育出版社,20022ibm-pc汇编语言及程序设计(第2版), 沈美明等,清华大学出版社,20013ibm-pc汇编语言及程序设计实验教程,沈美明等,清华大学出版社 ,20014汇编语言程序设计, 钱晓捷等,电子工业出版社,20005汇编语言程序设计, 张志明等,重庆大学出版社,19974、课程设计工作进度计划时间(天)内容安排1分析设计准备3编程调试阶段1 编写课程设计报告指导教师(签字)日期年 月 日教研室意见:年

4、月 日学生(签字): 接受任务时间: 年 月 日课程设计(论文)指导教师成绩评定表题目名称七段码电子表显示程序评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各

5、种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,

6、分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日目 录摘要.51 课程设计题目描述和要求.61.1问题提出及功能要求.61.2运行环境.61.3本课题涉及的知识点.62 算法设计.7 2.1设计思路.7 2.2主要流程图.83 代码设计94 调试与运行16 4.1进入调试环境.16 4.2提示信息.16 4.3修正错误.16 4.4生成.exe文件.16 4.5运行程序.175 总结18参考文献.19摘 要七段码电子表是我们日常生活中最常见的一种表。时间是我们日常生活的指示符,计算机同样有自己的时间。作为一名计算机学院的学生,对此非常的好奇

7、,计算机时间与我们的生活时间是否是一样的?这是我选择七段码电子表显示程序,设计自己一个程序观察自己计算机的时间的原因。在经过了自己这几天的上网搜索,图书馆寻找以及到处寻找相关资料后,在本文介绍了汇编语言程序的编辑以及编译等操作,对于七段码电子表显示程序程序设计思想和设计流程也做出了全面的叙述,经过错误的分析、修改、调试,实现了七段码电子表显示程序,实现了软件的开发、顺利完成了本次的课程设计,得到了很多东西。关键词: 软件开发 程序设计 电子表, 1 课程设计题目描述和要求1.1 问题提出及功能要求用电子表的形式显示系统时间。1.2 运行环境1.2.1硬件环境微型计算机(intel x86系列c

8、pu)一台1.2.2软件环境windows98/2000/xp操作系统。文本编辑器建议使用edit或notepad,汇编程序建议使用masm.exe,连接程序建议使用link.exe,调试程序建议使用调试调试程序建议使用调试程序建议使用调试程序建议使用这ddebug.exe。1.3本课题涉及的知识点 以“时:分:秒”的形式显示时间。本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。方法是:不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下

9、,重复比较秒,然后再比较和显示“分”值与“小时”值。2 算法设计2.1设计思路调用ff取小时的高位取小时的低位调用ff调用ff取分隔符“:”调用ff调用ff调用ff调用ff取分的高位取分隔符“:”取秒的低位 调用ff取分的低位调用ff取分隔符“:”现场保护取分的高位调用ff取分的低位调用ff数字09中的每一个数字用“”和“”字符组成的“七段”码图形表示,时与分、分与秒之间的两点用“”字符表示。这些字符预先定义在数据段的字符图形里,利用bios int 1ah的2号系统功能调用,读出计算机系统的时间(为bcd码),置换成字符图形标中的图形字符显示,程序流程图如图2.1构思流程图所示。取秒的高位图

10、2.1构思流程图2.2主要流程图如图2.2显示了对于调用各子函数的方法以及显示了对与算法的构思。开始保护现场根据bl的值给di赋偏移地址显示字符恢复现场返回图2.2 流程图3 代码设计开始屏幕初始化读取系统时间从键盘输入字符al=“s”?call xian读取系统时间秒加1?bh bh+1bh100? al al+1call beepal100?ah ah+1ah24?ah=0结束设计思路如图3.1思路图: y n n y n y n n y n n 图3.1思路图data segment;*定义please等提示信息* str db 20 db 50h,7,0,0 db 6ch,7,0,1

11、db 65h,7,0,1 db 61h,7,0,1 db 73h,7,0,1 db 65h, 7,0,1 db 70h,7,1,-10 db 72h,7,0,1 db 65h,7,0,1 db 73h,7,0,1 db 73h,7,0,1 db 53h,7,0,2 db 6bh,7,0,2 db 65h,7,0,1 db 79h,7,0,1 db 65h,7,0,2 db 78h,7,0,1 db 69h,7,0,1 db 74h,7,0,1 db 21h,7,0,1;*定义09十个图形数字*s0 db 6 ;对s0进行定义 db 5fh,7,0,0 db 7ch,7,1,-1 db 7ch,

12、7,1,0 db 5fh,7,0,1 db 7ch,7,0,1 db 7ch,7,-1,0 sy db 2 ;对sy进行定义 db 7ch,7,1,0 db 7ch,7,1,0 s2 db 5 ;对s2进行定义 db 5fh,7,0,0 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,1,-1 db 5fh,7,0,1 s3 db 5 ;对s3进行定义 db 5fh,7,0,0 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,1,1 db 5fh,7,0,-1 s4 db 4 ;对s4进行定义 db 7ch,7,1,0 db 5fh,7,0,1

13、db 7ch,7,1,1 db 7ch,7,-1,0 s5 db 5 ;对s5进行定义 db 5fh,7,0,0 db 7ch,7,1,-1 db 5fh,7,0,1 db 7ch,7,1,1 db 5fh,7,0,-1 s6 db 6 ;对s6进行定义 db 5fh,7,0,0 db 7ch,7,1,-1 db 5fh,7,0,1 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,0,-1 s7 db 3 ;对s7进行定义 db 5fh,7,0,0 db 7ch,7,1,1 db 7ch,7,1,0 s8 db 7 ;对s8进行定义 db 7ch,7,1,0 db 5f

14、h,7,-1,1 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,0,-1 s9 db 6 ;对s9进行定义 db 7ch,7,1,0 db 5fh,7,-1,1 db 7ch,7,1,1 db 5fh,7,0,-1 db 7ch,7,1,1 db 5fh,7,0,-1s11 db 2 ;对s11进行定义 db 03h,7,1,0 db 03h,7,1,0data ends stack segment db 200 dup (0)stack endscode segment assume cs:code,ss:sta

15、ck,ds:datastart: mov ax,data mov ds,ax mov ah,0 ;设置显示方式 mov al,4 int 10h mov ah,0bh ;置彩色调板 mov bh,0 mov bl,1 int 10h mov ah,0bh ;置彩色调板 mov bh,1 mov bl,4 int 10h mov ah,2 ;取系统时间 int 1ah mov ax,0 mov bx,0 mov ah,ch ;取系统时间 mov al,cl ;保存分钟 mov bh,dh ;保存秒 mov bl,dl ;保存百分之一秒 tt: push ax push bx mov ah,0 m

16、ov al,4 int 10hmov ah,0bh mov bh,0 mov bl,1 int 10h mov ah,0bh mov bh,1 mov bl,4 int 10h mov ah,1 ;读键盘缓冲区字符 int 16h jz wwmov ah,8 ;从键盘输入字符 int 21h cmp al,s ;输入s,结束程序je tu ww: pop bx pop ax call xian ;调用显示子程序 push ax qu: mov ah,2 ;取系统时间 int 1ah cmp bh,dh je qu pop ax inc bh ;对时间进行加1 cmp bh,100 jl tt

17、mov bh,0 inc al call beep cmp al,100 jl tt mov al,0 inc ah cmp ah,24 jl tt mov ah,0 jmp tt tu: mov ah,4ch int 21h ret xian proc ;对时间值进行处理并显示的子程序 push si push di push dx push cx push bx push ax pop ax push ax mov bx,ax mov ax,0 mov al,bh mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,2 call ff pop ax

18、push ax mov bx,ax mov ax,0 mov al, bh and al,0fh mov bl,al mov dh,10 mov dl,6 call ff mov dh,10 mov dl,10 mov bl,10 call ff pop ax push ax mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,14 call ff pop ax push ax and al ,0fh mov bl,al mov dh,10 mov dl,18 call ff mov dh,10 mov dl,22 mov bl,10 call ff p

19、op ax pop bx push bx push ax mov ax,0 mov al,bh mov cl,4 shr al,cl mov bl,al mov dh,10 mov dl,26 call ff pop ax pop bx push bx push ax mov al,bh and al,0fh mov bl,al mov dh,10 mov dl,30 call ff mov dh,0 mov dl,15 mov bl,22 call ff pop ax pop bx pop cx pop dx pop di pop si ret xian endpff proc ;显示具体数

20、值 push ax push bx push cx push dx cmp bl,0 je l0 cmp bl,1 je l1 cmp bl,2 je l2 cmp bl,3 je l3 cmp bl,4 je l4 cmp bl,5 je l5 cmp bl,6 je l6 cmp bl,7 je l7 cmp bl,8 je l8 cmp bl,9 je l9 cmp bl,10 je l10 cmp bl,22 je ldl0: lea di,s0 jmp tyl1 : lea di,sy jmp tyl2: lea di,s2 jmp tyl3: lea di,s3 jmp tyl4:

21、 lea di,s4 jmp tyl5: lea di,s5 jmp tyl6: lea di,s6 jmp tyl7: lea di,s7 jmp tyl8: lea di,s8 jmp tyl9: lea di,s9 jmp tyl10: lea di,s11 jmp tyld : lea di,strty: mov ah,0fh ;示方式 int 10h sub cx,cx mov cl,di inc diplot_next: add dh,di+2 add dl,di+3 mov ah,2 int 10h mov al,di mov bl,di+1 push cx mov cx,1 m

22、ov ah,09 int 10h pop cx add di,4 loop plot_next pop dx pop cx pop bx pop ax mov cx,100gg: dec cxloop gg ret ff endp clear proc push ax push bx push cx push dx mov ah,6 mov al,0 mov bh,1 int 10h pop dx pop cx pop bx pop axret clear endp beep proc push ax push bx push cx push dx mov al ,10110110b out

23、43h,al mov ax,533h out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,03 out 61h,al sub cx,cx mov bl,28hg7: loop g7 dec bl jnz g7 mov al,ah out 61h,al pop dx pop cx pop bx pop ax retbeep endpcode ends end start 4 调试与运行4.1进入调试环境将设计好的程序文件改为.asm格式的文件。在dos环境下输入才cd c:masm命令进入调试环境。再在子环境下输入masm命令。然后输入以改为.asm的文件名。4.2提示信息如图显示的:提示s11没有定义图4.1 调试程序4.3修正错误即定义s11然后再次按照4.1中步骤图4.2 修正程序图4.4生成

温馨提示

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

评论

0/150

提交评论