汇编语言加减混合运算Word文件下载.docx

上传人:b****8 文档编号:22665418 上传时间:2023-02-05 格式:DOCX 页数:17 大小:113.16KB
下载 相关 举报
汇编语言加减混合运算Word文件下载.docx_第1页
第1页 / 共17页
汇编语言加减混合运算Word文件下载.docx_第2页
第2页 / 共17页
汇编语言加减混合运算Word文件下载.docx_第3页
第3页 / 共17页
汇编语言加减混合运算Word文件下载.docx_第4页
第4页 / 共17页
汇编语言加减混合运算Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

汇编语言加减混合运算Word文件下载.docx

《汇编语言加减混合运算Word文件下载.docx》由会员分享,可在线阅读,更多相关《汇编语言加减混合运算Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

汇编语言加减混合运算Word文件下载.docx

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的值,在编程时应注意这方面的问题。

在编写过程中,让我深刻的体会到了科学的严谨性。

有时一个逗号或者写错一个字母这样一点点小错误,就会产生很大的错误,导致调试的失败。

当设计一步步接近成功,每一个子程序的调试成功,都让自己感到喜悦,从中体会到编程的乐趣,有一种成就感,也让自己树立了信心,增强了对汇编语言程序设计的兴趣。

五、致

在这个课程设计的过程中得到了叶海燕老师的悉心指导。

叶老师多次询问课程设计的进程,并为我们指点迷津,帮助我开拓解决问题思路,精心点拨、热忱鼓励。

老师一丝不苟的作风,严谨的态度,踏踏实实的精神,不仅授我以文,而且教我如何付诸于实践,虽然只有短短一周的时间,却给以终生受益无穷之道。

对叶老师的感激之情是无法用言语表达的。

感学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。

为我们安排了出色并且负责的老师来解答我们的疑虑。

最后我要感我们组的其他成员,也你们的支持,让我充分的体会到团队意识的重要性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1