汇编语言课程设计--2位数计算器程序设计.doc_第1页
汇编语言课程设计--2位数计算器程序设计.doc_第2页
汇编语言课程设计--2位数计算器程序设计.doc_第3页
汇编语言课程设计--2位数计算器程序设计.doc_第4页
汇编语言课程设计--2位数计算器程序设计.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

信息学院课程设计题 目: 2位数计算器程序设计 _姓 名: _ _学 号: _ _班 级: 课 程: 汇编语言 _任课教师: _ 课程设计任务书及成绩评定题 目 2位数计算器程序设计课程设计的任务及要求 任务:利用汇编语言编写计算器程序实现能完成两位数的加、减、乘、除运算功能要求:熟悉汇编指令、顺序程序的编写方法 学会使用dos功能调用、子程序调用完成相关操作课程设计所需的软件、硬件等 软件:masm软件硬件:可以运行汇编语言的计算机课程设计进度计划第一天熟悉软件环境第二天绘制程序流程图第三天编写程序代码第四天用debug调试运行程序第五天编写课程设计说明书任课教师评语 成绩: 教师签名: 日期: 目 录摘要21设计目的22概要设计3 2.1系统总体分析3 2.2程序流程图33详细设计4 3.1主程序及子程序说明4 3.2程序代码编写44程序调试64.1运行界面分析64.2算法的分析64.3调试过程及分析65心得体会7 5.1设计体会7 5.2系统改进7参考文献8摘 要本次课程设计的题目是用汇编语言实现一个简单的2位数计算器,要求:编写一个程序,可实现对两个2位十进制数进行加、减、乘、除四则运算的计算工具。计算器是最简单的计算工具,要想用汇编语言实现它就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及子程序的调用等汇编语言知识进行综合运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块,当实现各个程序模块后,通过dos功能调用完成运算结果的输出显示,最终实现一个简单的计算器功能。1.设计目的通过本次的课程设计,使自己加深对汇编语言的了解,应用汇编语言等所学相关知识及查阅资料,完成简易2位计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。通过本次课程设计的训练,可以使我在基本思路和基本方法上对基于8086/8088cpu的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。2.概要设计2.1 系统总体分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。本程序使用了dos功能调用、子程序嵌套调用的方式实现了代码的较好的可读性,使程序看起来结构严谨。2.2程序流程图 本程序的流程图如图所示:开始将数据的ascii码转换为对应的二进制数值将符号保存至al中al为+?加运算al为-?al为*?al为/?减运算乘运算除运算输入计算公式将计算结果转换成对应的ascii码输出计算结果继续?结束流程图3.详细设计3.1 主程序及子程序说明主程序:主要完成程序的主体框架结构,提供人机交互功能。子程序:主要完成对数据的加工,处理和输出。3.2 程序代码编写代码如下:- 8 -stack segment stackdw 200 dup(0)stack endsdata segmentbuf db 7db 0db 7 dup(0)msg db 10,13,$mss db .$w1 db input error!,10,13,please to 01+02 form input:$ts db input01+02=:,10,13,$xs db -2 digits calculator-$data endscode segmentassume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax lea dx,xs mov ah,9 int 21hb1:lea dx,msg mov ah,9 int 21h lea dx,ts mov ah,9 int 21hb2:mov ah,10 lea dx,buf int 21h lea dx,msg mov ah,9 int 21h mov bh,buf+2 mov bl,buf+3 mov ch,buf+5 mov cl,buf+6 sub bh,30h sub bl,30h sub ch,30h sub cl,30h mov dh,10 mov ah,0 mov al,bh mul dh mov bh,0 add bx,ax mov ah,0 mov al,ch mul dh mov ch,0 add cx,ax mov al,buf+4 cmp al,+ jz l1 cmp al,- jz l2 cmp al,* jz l3 cmp al,/ jz l4 lea dx,w1 mov ah,9 int 21h jmp b2l1:add bx,cx call bdc jmp e1l2: cmp bx,cx jb z21sub bx,cxjmp z22 z21: mov ah,2 mov dl,- int 21h sub cx,bxmov bx,cxz22: call bdc jmp e1l3:mov ah,0 mov al,bl mul cl mov bx,ax call bdc jmp e1l4: mov dx,0 mov ax,bx div cx mov bx,ax call bdc cmp dx,0 jz e1 lea dx,mss mov ah,9 int 21h mov bx,dx call bdce1:jmp b1mov ah,4ch int 21hbdc procpush cxpush dx cmp bx,10000 jnb p1 cmp bx,1000 jnb p2 cmp bx,100 jnb p3 cmp bx,10 jnb p4 jmp p5 p1: mov cx,10000 call disp p2: mov cx,1000 call disp p3: mov cx,100 call disp p4: mov cx,10 call disp p5: mov cx,1 call disppop dxpop cxretbdc endpdisp procpush axpush cxpush dx mov ax,bx mov dx,0 div cx mov bx,dx mov dl,al add dl,30h mov ah,2 int 21hpop dxpop cxpop axretdisp endpcode ends end start4.程序调试4.1运行界面分析运行界面如图所示:在提示input01+02=:处按照格式输入运算公式,输入完成后敲击回车键,输入无误后在下一行显示运算结果。4.2算法的分析本程序使用了子程序的嵌套调用的方法,这样做使得整个程序体看上去严谨,舒服。整个程序中的bdc子程序,将二进制数转换为十进制数,嵌套调用disp子程序输出十进制数。通过这几个及程序的协助,使得这个系统可以正常的运行。4.3 调试过程及分析 编写完代码后分别通过masm、link程序,依次完成编译、连接过程,然后运行生成的exe文件,发现错误后在使用debug工具调试程序寻找其中的算法错误。 5.心得体会5.1 设计体会本次课程设计我有不少收获:在编程之前我查阅了不少资料,加深的对汇编语言的认识;在往后的几周上机实践中,对汇编语言源程序的编辑、汇编、连接和调试的全过程更加熟练;在不断地求解过程中,了解到了汇编语言的一些特点,感觉到汇编语言的执行效率非常高,由于汇编是对底层的操作,这一点决定了它在代码的产量方面不如一些高级语言。在这次课程设计中,无论是进行算法设计、代码编写,还是到具体的设计和调试,都需要对汇编知识熟练地掌握,还要有一种严谨的态度,这样才能少走许多弯路,节省大量时间。本次课程设计的成功完成,我感谢我的指导老师侯老师,是她及时发现了我编写的程序中存在的一些问题,我才能顺利完成本次课程设计。可以说,我的课程设计的顺利完成凝聚着老师的大量心血,在此向侯老师表示深深的感谢。当然,我也要感谢我的同学,程序的编写与他们的合作是分不开的,还有那些互联网上的朋友,他们毫不吝啬的将自己所掌握的知识拿出来资源共享,才能使我的部分功能模块得以实现,谢谢他们。5.2 系统改进本程序有一些问题:1) 不能进行混合的四则运算。 2) 能计算的数值范围有限。3) 不能进行有关小数的四则运算。4) 在进行除法运算时不能输出小数。5) 由于主程序代码过长,条件转移指令无法实现,本程序只能进行循环计算,没有实现退出功能。在以后的时间里,我会改进一些问题,力争使该程序完美。参考资料1李目海等编.汇编语言.山东大学出版社,2008.22李敬兆等编.汇编语言程序设计实验教程及习题解答.中国科学技术大学出版社,2008.9

温馨提示

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

评论

0/150

提交评论