汇编语言加减混合运算Word文件下载.docx
- 文档编号:22665418
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:17
- 大小:113.16KB
汇编语言加减混合运算Word文件下载.docx
《汇编语言加减混合运算Word文件下载.docx》由会员分享,可在线阅读,更多相关《汇编语言加减混合运算Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
23
二、概要设计
2.1设计主要容
根据题目的要求,该程序设计的关键是要根据四则运算中()、*、/、+、-、=的优先设置符号的权值,其中/、*、+、-、=的权值分别设置为4、4、3、3、1,然后根据权值大小进行运算。
程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。
。
可以把整个源程序大致划分为几个基本结构:
程序加法、减法、乘法、除法、显示结果五个部分。
首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?
,用户输入y/n执行继续计算和退出操作。
2.2设计思路流程图
2.3程序运行结果
输入要计算的式子,按等号输出结果,计算机提示是否继续输入,输入字符y,继续输入,键入n退出程序,如果键入字符为其他,则反回提示输入。
三、程序代码
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
NEXTLINEMACRO;
显示换行宏
MOVAH,2
MOVDL,10
INT21H
MOVDL,13
ENDM
START:
MOVAX,DATAS
MOVDS,AX
MOVBX,0
INPUT1:
MOVAH,1;
从键盘输入一个字符
CMPAL,'
+'
;
判断是否为+
JZADDITION
-'
判断是否为-
JZSUBTRATION
*'
判断是否为*
JZMULTIPLICATION
/'
判断是否为/
JZDIVISION
='
判断是否为=
JZRESULT
CMPAL,58判断输入是否为数字
JSL1
JMPINPUT1
L1:
CMPAL,47节
JNSL2
L2:
SUBAL,48如果输入为数字,将数值计入BX
MOVCL,AL
MOVAX,BX
MOVCH,10
MULCH
ADDAL,CL
MOVBX,AX
ADDITION:
输入+后,进入加法运算
MOVDX,0
INPUT2:
MOVAH,1从键盘输入字符
CMPAL,'
判断是否为+
JZL23
判断是否为-
JZL24
判断是否为*
JZL25
JZL26
JZL27
CMPAL,58判断是否为数字
JSL21
JMPINPUT2
L21:
CMPAL,47
JNSL22
JMPINPUT2如果不是数字,则跳转到INPUT2
L22:
SUBAL,48将输入字符转换为数值
MOVAX,DX
MOVDX,AX
L23:
ADDBX,DX执行加运算
JMPADDITION
L24:
ADDBX,DX
JMPSUBTRATION
L25:
JMPMULTIPLICATION
L26:
JMPDIVISION
L27:
JMPRESULT
SUBTRATION:
如果输入-,则执行减法
INPUT3:
MOVAH,1
JZL33
JZL34
JZL35
JZL36
JZL37
JSL31
JMPINPUT3
L31:
JNSL32
L32:
SUBAL,48将字符转换为数值
L33:
SUBBX,DX执行减法操作
L34:
SUBBX,DX
L35:
L36:
L37:
JMPRESULT
MULTIPLICATION:
INPUT4:
MOVAH,1
JZL43
JZL44
JZL45
JZL46
JZL47
JSL41
JMPINPUT4
L41:
JNSL42
L42:
MOVAX,DX将字输入数字加入数值
L43:
MOVAX,BX将BX移入AX
MULDX与DX中的数进行乘运算
MOVBX,AX将AX中的数值返回BX
L44:
L45:
JMPMULTIPLICATION
L46:
L47:
DIVISION:
INPUT5:
判断是否为/
判断是否为=
判断是否为数字
JZL53
JZL54
JZL55
JZL56
JZL57
CMPAL,58
JSL51
JMPINPUT5
L51:
JNSL52
L52:
SUBAL,48
L53:
DIVDX
MOVAH,0
L54:
DIVDL
L55:
L56:
L57:
RESULT:
显示结果
MOVCL,100
R1:
将BX中的计算结果以十进制输出
DIVCL
MOVDL,AL
MOVDH,AH
MOVAL,AH
ADDDL,48
MOVAL,CL
DIVCH
CMPCL,1
JZR2
JMPR1
R2:
MOVDL,DH
S2:
NEXTLINE
LEADX,STRING询问是否继续输入
MOVAH,9
y'
输入y则跳转到S1
JES1
n'
输入n则跳转到S3,即结束程序
JES3
JNES2
S3:
MOVAH,4CH
CODESENDS
四、总结体会
通过这次的课程设计,让我们对汇编语言有了更进一步的认识,加强了我们用汇编语言的能力。
并经过修改,完成了简单的设计。
汇编语言程序设计是一门很抽象的科学,学起来也比较难,但随着学习的推进,以及上机编程,逐渐感到轻松,在这次课程设计中,让我更加熟悉了汇编语言的一些基本的指令;
掌握了汇编语言的一些基本的中断调用功能,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制;
熟练的利用子程序和宏进行编程。
在设计过程中,不断对程序进行修改,改进,增强了自己分析问题解决问题的能力:
在不断的调试中,也让自己发现了自己存在的一些错误以及一些调试时应注意的问题,同时也更深的理解了寄存器,存储器等工作原理以及一些指令执行后对它们的改变,例如,int指令会改变al的值,在编程时应注意这方面的问题。
在编写过程中,让我深刻的体会到了科学的严谨性。
有时一个逗号或者写错一个字母这样一点点小错误,就会产生很大的错误,导致调试的失败。
当设计一步步接近成功,每一个子程序的调试成功,都让自己感到喜悦,从中体会到编程的乐趣,有一种成就感,也让自己树立了信心,增强了对汇编语言程序设计的兴趣。
五、致
在这个课程设计的过程中得到了叶海燕老师的悉心指导。
叶老师多次询问课程设计的进程,并为我们指点迷津,帮助我开拓解决问题思路,精心点拨、热忱鼓励。
老师一丝不苟的作风,严谨的态度,踏踏实实的精神,不仅授我以文,而且教我如何付诸于实践,虽然只有短短一周的时间,却给以终生受益无穷之道。
对叶老师的感激之情是无法用言语表达的。
感学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。
为我们安排了出色并且负责的老师来解答我们的疑虑。
最后我要感我们组的其他成员,也你们的支持,让我充分的体会到团队意识的重要性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 加减 混合 运算