2位数计算器程序汇编语言课程设计.docx
- 文档编号:29911219
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:12
- 大小:59.28KB
2位数计算器程序汇编语言课程设计.docx
《2位数计算器程序汇编语言课程设计.docx》由会员分享,可在线阅读,更多相关《2位数计算器程序汇编语言课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
2位数计算器程序汇编语言课程设计
信息学院课程设计
题 目:
2位数计算器程序设计__
姓 名:
__ _____
学 号:
____ ___
班 级:
课 程:
汇编语言 ________
任课教师:
侯艳艳 ____
2011年12月
课程设计任务书及成绩评定
题目
2位数计算器程序设计
课程设计的任务及要求
任务:
利用汇编语言编写计算器程序实现能完成两位数的加、减、乘、除运算功能
要求:
熟悉汇编指令、顺序程序的编写方法
学会使用DOS功能调用、子程序调用完成相关操作
课程设计所需的软件、硬件等
软件:
MASM软件
硬件:
可以运行汇编语言的计算机
课程设计进度计划
第一天熟悉软件环境
第二天绘制程序流程图
第三天编写程序代码
第四天用DEBUG调试运行程序
第五天编写课程设计说明书
任课教师评语
成绩:
教师签名:
日期:
目 录
摘要……………………………………………………………………………………………………………2
1.设计目的………………………………………………………………………………………………?
2
2.概要设计………………………………………………………………………………………………?
3
2.1系统总体分析…………………………………………………………………………?
3
2.2程序流程图……………………………………………………………………………3
3.详细设计…………………………………………………………………………………………?
……4
3.1主程序及子程序说明……………………………………………………………………………4
3.2程序代码编写……………………………………………………………………………………4
4.程序调试………………………………………………………………………………………………6
4.1运行界面分析……………………………………………………………………………………6
4.2算法的分析………………………………………………………………………………………6
4.3调试过程及分析…………………………………………………………………………………6
5.心得体会………………………………………………………………………………………………7
5.1设计体会………………………………………………………………………………………?
…7
5.2系统改进………………………………………………………………………………………?
…7
参考文献……………………………………………………………………………………………………8
摘 要
本次课程设计的题目是用汇编语言实现一个简单的2位数计算器,要求:
编写一个程序,可实现对两个2位十进制数进行加、减、乘、除四则运算的计算工具。
计算器是最简单的计算工具,要想用汇编语言实现它就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及子程序的调用等汇编语言知识进行综合运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。
用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。
通过对各种指令的合理使用,设计各个功能模块,当实现各个程序模块后,通过DOS功能调用完成运算结果的输出显示,最终实现一个简单的计算器功能。
1.设计目的
通过本次的课程设计,使自己加深对汇编语言的了解,应用《汇编语言》等所学相关知识及查阅资料,完成简易2位计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能里的目的。
通过本次课程设计的训练,可以使我在基本思路和基本方法上对基于8086/8088CPU的汇编语言程序设计有一个比较感性的认识,并具备一定程度的设计能力,从而能够熟练掌握编写汇编语言源程序的基本方法和基本构架,学会编写顺序结构、分支结构、循环结构和子程序的汇编程序,掌握程序中数据的产生与输入输出的方法以及一些关于汇编语言更深层次方面有初步的认识。
2.概要设计
2.1系统总体分析
本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。
由于在设计过程中考虑到了可能会多次计算数据,为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。
本程序使用了DOS功能调用、子程序嵌套调用的方式实现了代码的较好的可读性,使程序看起来结构严谨。
2.2程序流程图
本程序的流程图如图所示:
流程图
3.详细设计
3.1主程序及子程序说明
主程序:
主要完成程序的主体框架结构,提供人机交互功能。
子程序:
主要完成对数据的加工,处理和输出。
3.2程序代码编写
代码如下:
STACKSEGMENTSTACK
DW200DUP(0)
STACKENDS
DATASEGMENT
BUFDB7
DB0
DB7DUP(0)
MSGDB10,13,'$'
MSSDB'......$'
W1DB'Inputerror!
',10,13,'Pleaseto01+02forminput:
$'
TSDB'input[01+02=]:
',10,13,'$'
XSDB'-------2digitsCalculator-------$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
LEADX,XS
MOVAH,9
INT21H
B1:
LEADX,MSG
MOVAH,9
INT21H
LEADX,TS
MOVAH,9
INT21H
B2:
MOVAH,10
LEADX,BUF
INT21H
LEADX,MSG
MOVAH,9
INT21H
MOVBH,BUF+2
MOVBL,BUF+3
MOVCH,BUF+5
MOVCL,BUF+6
SUBBH,30H
SUBBL,30H
SUBCH,30H
SUBCL,30H
MOVDH,10
MOVAH,0
MOVAL,BH
MULDH
MOVBH,0
ADDBX,AX
MOVAH,0
MOVAL,CH
MULDH
MOVCH,0
ADDCX,AX
MOVAL,BUF+4
CMPAL,'+'
JZL1
CMPAL,'-'
JZL2
CMPAL,'*'
JZL3
CMPAL,'/'
JZL4
LEADX,W1
MOVAH,9
INT21H
JMPB2
L1:
ADDBX,CX
CALLBDC
JMPE1
L2:
CMPBX,CX
JBZ21
SUBBX,CX
JMPZ22
Z21:
MOVAH,2
MOVDL,'-'
INT21H
SUBCX,BX
MOVBX,CX
Z22:
CALLBDC
JMPE1
L3:
MOVAH,0
MOVAL,BL
MULCL
MOVBX,AX
CALLBDC
JMPE1
L4:
MOVDX,0
MOVAX,BX
DIVCX
MOVBX,AX
CALLBDC
CMPDX,0
JZE1
LEADX,MSS
MOVAH,9
INT21H
MOVBX,DX
CALLBDC
E1:
JMPB1
MOVAH,4CH
INT21H
BDCPROC
PUSHCX
PUSHDX
CMPBX,10000
JNBP1
CMPBX,1000
JNBP2
CMPBX,100
JNBP3
CMPBX,10
JNBP4
JMPP5
P1:
MOVCX,10000
CALLDISP
P2:
MOVCX,1000
CALLDISP
P3:
MOVCX,100
CALLDISP
P4:
MOVCX,10
CALLDISP
P5:
MOVCX,1
CALLDISP
POPDX
POPCX
RET
BDCENDP
DISPPROC
PUSHAX
PUSHCX
PUSHDX
MOVAX,BX
MOVDX,0
DIVCX
MOVBX,DX
MOVDL,AL
ADDDL,30H
MOVAH,2
INT21H
POPDX
POPCX
POPAX
RET
DISPENDP
CODEENDS
ENDSTART
4.程序调试
4.1运行界面分析
运行界面如图所示:
在提示input[01+02=]:
处按照格式输入运算公式,输入完成后敲击回车键,输入无误后在下一行显示运算结果。
4.2算法的分析
本程序使用了子程序的嵌套调用的方法,这样做使得整个程序体看上去严谨,舒服。
整个程序中的BDC子程序,将二进制数转换为十进制数,嵌套调用DISP子程序输出十进制数。
通过这几个及程序的协助,使得这个系统可以正常的运行。
4.3调试过程及分析
编写完代码后分别通过MASM、LINK程序,依次完成编译、连接过程,然后运行生成的exe文件,发现错误后在使用DEBUG工具调试程序寻找其中的算法错误。
5.心得体会
5.1设计体会
本次课程设计我有不少收获:
在编程之前我查阅了不少资料,加深的对汇编语言的认识;在往后的几周上机实践中,对汇编语言源程序的编辑、汇编、连接和调试的全过程更加熟练;在不断地求解过程中,了解到了汇编语言的一些特点,感觉到汇编语言的执行效率非常高,由于汇编是对底层的操作,这一点决定了它在代码的产量方面不如一些高级语言。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 位数 计算器 程序 汇编语言 课程设计