汇编课程设计电子表.doc_第1页
汇编课程设计电子表.doc_第2页
汇编课程设计电子表.doc_第3页
汇编课程设计电子表.doc_第4页
汇编课程设计电子表.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

计算机与信息工程学院汇编语言课程设计论文设计题目 电子表显示程序 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 起止日期 2011-6-272011-7-1 成 绩 黑龙江科技学院课程设计任务书一、设计题目: 电子表显示程序 二、设计的主要内容: 用电子表的形式显示系统时间,以两位 “时:分:秒”的形式显示。数字09中的每个数字用“|”和“”字符组成的“七段”码图形显示,时分秒的分隔符用“:”表示。这些字符预先定义在数据段的字符图形表里,利用BIOS INT 1AH的2号系统功能调用,读出系统时间,置换成字符图形表中的图形字符显示。 课程设计指导教师评阅意见书指 导 教 师: 摘要通过汇编程序编写程序实现用电子表的形式显示系统时间。通过BIOS INT 1AH的2号系统功能调用提前定义好的图形字符,读出计算机系统时间,置换成提前定义好的图形字符显示。对于系统时间的不断变化,采用不停的读取系统时间保存在寄存器中并与前一次的进行比较,在不相同的情况下调用相应的图形字符予以显示,先进行秒的比较,满60秒再进行分的,时的比较。最终实现时间的连续变化。用七段码电子表显示程序系统时间,此程序设计的关键是随系统时间的变化,用字符组成图形数字如何进行相应的变化。根据七段码电子表显示程序设计的要求,写出七段码电子表显示程序的源代码,画出程序运行的流程图,输入计算机进行运行,发现并找出其中的错误并加以修改,反复调试程序,直到得出正确结论为止。通过对七段码电子表显示程序的设计,初步掌握汇编语言程序设计的方法。关键词:系统时间、电子表、BCD码1. 背景分析及意义汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言。汇编语言虽不是高级语言但汇编语言具有潜在的优点,以速度而论,汇编语言程序远比高级语言快的多,所以,我的这次关于电子表的设计就是在汇编语言的各种指令下编译完成的。汇编语言课程设计为我们学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力,了解更多的汇编语言指令。2. 总体设计思想数字09中的每个数字用“|”和“”字符组成的“七段”码图形显示,时与分、分与秒之间的两点用“:”表示。这些字符预先定义在数据段的字符图形表里,利用BIOS INT 1AH的2号系统功能调用,读出计算机系统的时间(为BCD码),置换成字符图形表中的图形字符显示。本程序设计的关键是随着系统时间的变化,用字符组成的图形数字如何进行相应的变化。方法是:不停地读取系统时间并保存在寄存器中,将每次取出的时间显示并与前一次比较,先比较“秒”值,在不同的情况下(系统时间发生了增1的变化),则调用相应的图形字符显示,在不超过60秒的情况下,重复比较秒,然后再比较和显示“分”值与“小时”值。3. 完成的主要功能利用BIOS和DOS的系统功能调用,能将计算机系统的时间读出并显示出来用电子表“时:分:秒”(都是两位)的形式显示系统时间4. 软硬件环境要求计算机一台Windows系统、MASM5. 流程图 开始10 屏幕初始化读取系统时间从键盘输入字符al=”s”? Y NCall xian 结束 读取系统时间秒加1? N YBh=bh+1 ah24? Ybh100? Y NNal=al+1ah=0 Call beep al100?Y Nah=ah+1 (1)主程序流程图开始调用ff取小时的低位取小时的高位现场保护恢复现场显示字符根据bl的值给di赋偏移地址保护现场 调用ff 取分隔符“:”调用ff调用ff取秒的低位调用ff取秒的高位取分的低位调用ff调用ff取分的高位取分隔符“:”调用ff返回(2)ff子程序流程图 (3)xian子程序流程图6. 使用说明程序运行后连续以“时:分:秒”的形式显示系统时间,按Q键退出程序 7. 设计总结为期一周的汇编语言课程设计结束了,回想起来收获颇多。在最开始接触到这个题目的时候,我完全是一头雾水,不知道从何入手。因为在系统学习汇编语言课程的时候,我们学得比较浅显,根本没有做过综合性这么复杂得东西。但是,我没有选择放弃,应该努力的去奋斗,即使最后是失败,也不会后悔,至少曾经为此努力过。所以在接下来的时间里,首先我把最基础的汇编语言知识复习了一遍。然后我到处查阅资料。但是仅仅这些是不够的,最关键的是要弄清楚这个实验的落脚点儿在哪儿,所以我静下心来,好好的分析了这个题目,发现难点是如何准确的定义09的字符图形。但是我没有退缩,我积极请教,在同学的提示帮助下,最后完成了这个实验。这一周,虽然很辛苦,但是我体会到了成功的喜悦,感受到了努力过后获得成功带给我的那种震撼,那种感动。所以,在我看来,自己最大的收获不是做出了这个东西,而是学会了一种精神,一种面对困难不退缩,为了成功不懈奋斗的精神。8. 参考文献【1】IBM-PC汇编语言及程序设计(第2版), 沈美明等,清华大学出版社【2】汇编语言课程设计案例精编,李珍香等,中国水利水电出版社9. 程序清单:data segment str db 20 db 50h,7,0,0 db 6ch,7,0,1 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 51h,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,1s0 db 6 db 5fh,7,0,0 db 7ch,7,1,-1 db 7ch,7,1,0 db 5fh,7,0,1 db 7ch,7,0,1 db 7ch,7,-1,0 sy db 2 db 7ch,7,1,0 db 7ch,7,1,0 s2 db 5 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 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 db 7ch,7,1,0 db 5fh,7,0,1 db 7ch,7,1,1 db 7ch,7,-1,0 s5 db 5 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 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 db 5fh,7,0,0 db 7ch,7,1,1 db 7ch,7,1,0 s8 db 7 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,-1 db 7ch,7,0,-1 s9 db 6 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,-1 s11 db 2 db 20h,7,1,0 db 3ah,7,1,0data endsstack segment db 200 dup (0)stack endscode segment assume cs:code,ss:stack,ds:datastart: mov ax,data mov ds,ax mov ah,0 mov al,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 mov al,4 int 10h MOV AH,1 INT 16h JZ ww MOV AH,8 INT 21h CMP AL,Q 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 cmp bh,100 jl tt 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 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 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 dl,22 mov bl,10 call ff pop 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 retxian endpff proc 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: 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 mov 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 ggretff endpclear 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 axretclear endpbeep

温馨提示

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

评论

0/150

提交评论