总汇编语言计算器课程设计Word格式文档下载.docx
- 文档编号:19177294
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:150.42KB
总汇编语言计算器课程设计Word格式文档下载.docx
《总汇编语言计算器课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《总汇编语言计算器课程设计Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
DB200DUP(0)
STACKENDS
DATASEGMENT
OPSDB?
OPDDB?
OPERDB?
TITDB'
***********************************'
0DH,0AH
DB'
*MadeBy*'
0DH,0AH;
0DH代表回车
*TongXinJiSuanQiXiaoZu*'
0AH代表换行
*ChangqianZuoxinWangxin*'
*WangdayongTangkuanlong*'
*+-*/*'
*Y,y:
continueN,n:
quit*'
*************Calculate*************$'
0DH,0AH
Tip1DB'
Inputthefirstoperator(0---9):
$'
Tip2DB'
Pleaseinputtheoper(+,-,*,/):
ErrorDB'
Error!
Pleseinputtheoperagain:
Tip3DB'
Inputthesecondoperator(0---9):
ResultDB'
--------------->
theresultis:
0DH,0AH
QuitDB'
Chooserepeatorquit?
(Y/y/N/n):
TsaveDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA;
初始化DS:
DX
MOVDS,AX
Remain:
MOVBL,0;
Oper(恢复)初始状态
MOVOPS,BL
MOVOPER,BL
MOVOPD,BL
LEASI,OPS;
OPS的偏移地址送给SI
LEADI,OPD;
OPD的偏移地址送给DI
CALLEnter
LEADX,TIT
MOVAH,9
INT21H
CALLInput1;
调用输入第一个操作数
CALLOperat;
调用输入操作符
CALLInput2;
调用输入第二个操作数
CALLCalculate;
调用计算方法
CALLStrQuit;
调用判断程序再次执行
MOVAH,1
INT21H
CMPAL,'
Y'
JERemain
y'
;
选择Y返回Remain继续执行
N'
JEEXIT
n'
EXIT:
MOVAH,4CH;
若不是Y则结束
;
输入操作数子程序---------------------------------------------------------
Input1PROCNEAR
LEADX,Tip1;
输入第一个操作数提示----------
INT21H;
十进制输入提示
BCDin1:
CMPAL,0DH
JEEndBCDin1;
等于回车则返回继续输入运算符
CMPAL,30H
JBBCDin1;
<
0时转exitinD退出
CMPAL,39H
JABCDin1;
>
9时转exitinD退出
ANDAL,0FH;
清除高位
MOV[SI],AL
INCSI
LOOPBCDin1
EndBCDin1:
CALLEnter;
回车换行
RET
Input1ENDP
Input2PROCNEAR
LEADX,Tip3;
输入第二个操作数提示----------
BCDin2:
JEEndBCDin2;
LOOPBCDin2
EndBCDin2:
Input2ENDP
输入操作符子程序-------------------------------------------------------
OperatPROCNEAR
ReOperat:
LEADX,Tip2;
输入操作符提示
+'
JEOperSave;
若为"
+"
则存在oper
-'
JEOperSave
*'
/'
JMPOperError
OperError:
LEADX,Error;
输入操作符的错误提示
JMPReOperat
OperSave:
MOVOPER,AL
RET
OperatENDP
计算方法子程序-----------------------------------------------------
CalculatePROCNEAR
MOVBL,OPER
CMPBL,'
JZADCProc;
若为加法,则转到adcProc
JZSUBProc
JZMULProc
JZDIVProc
ADCProc:
CALLStrResult;
加法
MOVAL,OPS
ADCAL,OPD
CALLDispl
JMPendCalculate
SUBProc:
减法
CALLStrResult
SUBAL,OPD
JMPendCalculate
MULProc:
乘法
MOVAL,OPD
MULOPS
DIVProc:
除法
MOVAH,0
DIVOPD
endCalculate:
CalculateENDP
DisplPROCNEAR
MOVTsave,AL
MOVAL,Tsave
MOVBL,100
DIVBL;
除以100
CALLOutput;
显示百位数
MOVAL,AH
MOVBL,10
除以10
显示十位数
显示个位数
DisplENDP
StrResultPROCNEAR
LEADX,Result
StrResultENDP
OutputPROCNEAR;
十进制输出
PUSHAX
ADDAL,30H;
将AL中的十进制数变成ASCII码
MOVDL,AL
MOVAH,2
POPAX
OutputENDP
回车换行子程序--------------------------------------------------
EnterPROCNEAR
MOVDL,0AH
MOVDL,0DH
EnterENDP
判断程序再次执行子程序-----------------------------------------------
StrQuitPROCNEAR
回车换行
LEADX,Quit
StrQuitENDP
CODEENDS
ENDSTART
3.系统调试
3.1测试目标
(1)在屏幕上显示一个由‘*’组成边框的矩形窗口;
(2)自动闪烁光标,并提示输入信息;
(3)能够完成单项表达式的输入、显示和运算;
(4)编制并调试出程序。
3.2测试方法及结果
单击开始,启动运行,输入cmd,启动命令提示符,进入DOS系统。
如下图:
图3启动命令提示符
源程序名存为qian.asm,在dos下进入F盘,再cdmasm进入masm文件夹,再键入masmqian(qian是源程序文件名)提示是否更改文件名(不改直接回车),系统会提示是否生成.lst文件和.crf文件(直接回车跳过),这样就生成了qian.obj键入linkqian(qian是源程序文件名),提示是否更改文件名(不改直接回车)提示是否生成.map和.lib文件(直接回车),这样就生成了qian.exe,再在DOS下键入qian(源程序文件名)就进入程序执行。
如图4:
图4执行方法
在计算器内,输入数字测试本程序的正确与否。
按照提示输入第一个十进制数,如“6”,回车。
下一步,会提示请输入运算符,如加“+”,回车。
最后一步,输入第二个十进制数,如“3”,回车。
则显示出其运算结果。
如下图5所示:
图5实现加法运算
同上,可实现减法、乘法、除法运算,分别如图6,图7,图所示8:
图6实现减法运算
图7实现乘法运算
图8实现除法运算
运算完毕后,会提示是否继续下一个运算,输入“Y”则继续运算,并返回主界面,输入“N”则结束程序。
当运算符输入不合法时,则会提示重新输入运算符,如下图9:
图9错误提示
4.总结
设计的这个程序主要是进行表达式的四则运算,由于操作符只有+、-、*、/,没有涉及到括号,因此设计起来要容易一点,不用考虑括号的匹配问题。
另外,跳转时汇编语言的一大难点,再编程之前最好要画出流程图,这样在写跳转时不容易出错,且不会出现重复操作语句段。
输入部分看似简单,实际要考虑到很多细。
比如一开始没想到存入的数据可能会符号存进内存后的相同;
如何判段存数算法应该结束,对应的存入数和符号。
编写的五个子程序经编译、链接后,没有发现错误,可设计出的计算器程序出现一些不足,如本计算器只能进行一位十进制数的计算,也很少在计算的优先级,进制转化之间下功夫,致使计算器运算能力不足。
还有本程序只能判断输入的运算符的合法性,不能判断输入的十进制数的正确与否,即使错误,也显示提示下一步的操作。
参考文献
[1]詹仕华.汇编语言程序设计[M].北京:
中国电力出版社,2008.2:
73-102
[2]宋彩莉,王禾.汇编语言程序设计学习指导[M].西安:
西安交通大学出版社,2008.2:
45-87
[3]李敬兆,陈子旭.汇编语言程序设计[M].合肥:
中国科学技术大学出版社,2008.9:
173-197
[4]钱晓捷,周玲.新汇编语言程序设计[M].北京:
电子工业出版社,2006.3:
101-120
[5]周佩玲,彭虎,傅忠谦.微机原理与借口技术[M].北京:
电子工业出版社,2007.1:
113-141
[6]马春燕.微机原理与接口技术(基于32位机)实验与学习辅导[M].北京:
23-70
[7]何小海,严华.微机原理与借口技术[M].北京:
科学出版社,2006.7:
143-180
[8]王爽,胡雄.汇编语言[M].北京:
清华大学出版社,2009.9:
29-70
[9]曹加恒,谢子殿.新一代汇编语言课程设计[M].北京:
高等教育出版社,2006.3:
113-138
[10]杨路明.汇编语言程序设计[M].长沙:
中南大学出版社,2008.5:
173-203
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 计算器 课程设计