ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:130.33KB ,
资源ID:3835484      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3835484.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编课程设计报告四则运算.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编课程设计报告四则运算.docx

1、汇编课程设计报告四则运算课 程 设 计 报 告一课程设计的性质和目的性质:汇编语言是计算机科学与技术专业及网络工程本科学生必修的专业课程。目的要求:进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二课程设计的要求1.遵循模块化、结构化的程序设计方法。2.要求程序必须正确。3.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。4.要求程序结构合理,语句使用得当。5.适当追求编程技巧和程序运行效率。三主要仪器设备 及软件计算机、MASM汇编

2、软件。四 设计题目四则运算:从键盘输入一个十进制两位数的四则运算表达式,如23*56(8*19)/6678,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),*/位置任意。并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止。五.题目分析 根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分,首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上

3、操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作六.运行结果 输入要计算的式子,按等号输出结果,计算机提示是否继续输入,输入字符y,继续输入,键入n退出程序,如果键入字符为其他,则反回提示输入如图:七程序流程 主程序流程YNYYNYNNY八.代码根据题目的要求,可以把整个源程序大致划分为几个基本结构,程序加法、减法、乘法、除法、显示结果五个部分1、 源程序: CODES SE

4、GMENTASSUME CS:CODES,DS:DATAS,SS:STACKSNEXTLINE MACRO ;显示换行宏 MOV AH,2 MOV DL,10 INT 21H MOV AH,2 MOV DL,13 INT 21H ENDMSTART: MOV AX,DATAS MOV DS,AX MOV BX,0INPUT1: MOV AH,1 ;从键盘输入一个字符 INT 21H CMP AL,+ ;判断是否为+ JZ ADDITION CMP AL,- ;判断是否为- JZ SUBTRATION CMP AL,* ;判断是否为* JZ MULTIPLICATION CMP AL,/ 判断是

5、否为/ JZ DIVISION CMP AL,= 判断是否为= JZ RESULT CMP AL,58 判断输入是否为数字 JS L1 JMP INPUT1L1: CMP AL,47节 JNS L2 JMP INPUT1L2: SUB AL,48 如果输入为数字,将数值计入BX MOV CL,AL MOV AX,BX MOV CH,10 MUL CH ADD AL,CL MOV BX,AX JMP INPUT1 ADDITION: 输入+后,进入加法运算 MOV DX,0INPUT2: MOV AH,1 从键盘输入字符 INT 21H CMP AL,+ 判断是否为+ JZ L23 CMP AL

6、,- 判断是否为- JZ L24 CMP AL,* 判断是否为* JZ L25 CMP AL,/ 判断是否为/ JZ L26 CMP AL,= 判断是否为= JZ L27 CMP AL,58 判断是否为数字 JS L21 JMP INPUT2L21: CMP AL,47 JNS L22 JMP INPUT2 如果不是数字,则跳转到INPUT2L22: SUB AL,48 将输入字符转换为数值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT2L23: ADD BX,DX 执行加运算 JMP ADDITIONL2

7、4: ADD BX,DX JMP SUBTRATIONL25: ADD BX,DX JMP MULTIPLICATIONL26: ADD BX,DX JMP DIVISIONL27: ADD BX,DX JMP RESULT SUBTRATION: 如果输入-,则执行减法 MOV DX,0INPUT3: MOV AH,1 INT 21H CMP AL,+ 判断是否为+ JZ L33 CMP AL,- 判断是否为- JZ L34 CMP AL,* 判断是否为* JZ L35 CMP AL,/ 判断是否为/ JZ L36 CMP AL,= 判断是否为= JZ L37 CMP AL,58 判断是否为

8、数字 JS L31 JMP INPUT3L31: CMP AL,47 JNS L32 JMP INPUT3L32: SUB AL,48 将字符转换为数值 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT3L33: SUB BX,DX 执行减法操作 JMP ADDITIONL34: SUB BX,DX JMP SUBTRATIONL35: SUB BX,DX JMP MULTIPLICATIONL36: SUB BX,DX JMP DIVISIONL37: SUB BX,DX JMP RESULT MULTIPL

9、ICATION: MOV DX,0INPUT4: MOV AH,1 INT 21H判断是否为+判断是否为- CMP AL,+ JZ L43 CMP AL,- JZ L44 CMP AL,* 判断是否为* JZ L45 CMP AL,/ 判断是否为/ JZ L46 CMP AL,= 判断是否为= JZ L47 CMP AL,58 判断是否为数字 JS L41 JMP INPUT4L41: CMP AL,47 JNS L42 JMP INPUT4L42: SUB AL,48 将字符转换为数值 MOV CL,AL MOV AX,DX 将字输入数字加入数值 MOV CH,10 MUL CH ADD A

10、L,CL MOV DX,AX JMP INPUT4L43: MOV AX,BX 将BX移入AX MUL DX 与DX中的数进行乘运算 MOV BX,AX 将AX中的数值返回BX JMP ADDITIONL44: MOV AX,BX 将BX移入AX MUL DX 与DX中的数进行乘运算 MOV BX,AX 将AX中的数值返回BX JMP SUBTRATIONL45: MOV AX,BX 将BX移入AX MUL DX 与DX中的数进行乘运算 MOV BX,AX 将AX中的数值返回BX JMP MULTIPLICATIONL46: MOV AX,BX 将BX移入AX MUL DX 与DX中的数进行乘

11、运算 MOV BX,AX 将AX中的数值返回BX JMP DIVISIONL47: MOV AX,BX 将BX移入AX MUL DX 与DX中的数进行乘运算 MOV BX,AX 将AX中的数值返回BX JMP RESULT DIVISION: MOV DX,0INPUT5: MOV AH,1 INT 21H 判断是否为+判断是否为-判断是否为*判断是否为/判断是否为=判断是否为数字 CMP AL,+ JZ L53 CMP AL,- JZ L54 CMP AL,* JZ L55 CMP AL,/ JZ L56 CMP AL,= JZ L57 CMP AL,58 JS L51 JMP INPUT5

12、L51: CMP AL,47 JNS L52 JMP INPUT5L52: SUB AL,48 MOV CL,AL MOV AX,DX MOV CH,10 MUL CH ADD AL,CL MOV DX,AX JMP INPUT5L53: MOV AX,BX DIV DX MOV AH,0 MOV BX,AX JMP ADDITIONL54: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP SUBTRATIONL55: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP MULTIPLICATIONL56: MOV AX,BX DIV

13、 DL MOV AH,0 MOV BX,AX JMP DIVISIONL57: MOV AX,BX DIV DL MOV AH,0 MOV BX,AX JMP RESULTRESULT: 显示结果 MOV CH,10 MOV CL,100R1: 将BX中的计算结果以十进制输出 MOV AX,BX DIV CL MOV DL,AL MOV DH,AH MOV AL,AH MOV AH,0 MOV BX,AX ADD DL,48 MOV AH,2 INT 21H MOV AH,0 MOV AL,CL DIV CH MOV CL,AL CMP CL,1 JZ R2 JMP R1R2: MOV DL,

14、DH ADD DL,48 MOV AH,2 INT 21HS2: NEXTLINE LEA DX,STRING 询问是否继续输入 MOV AH,9 INT 21H MOV AH,1 INT 21H CMP AL,y 输入y则跳转到S1 JE S1 CMP AL,n 输入n则跳转到S3,即结束程序 JE S3 JNE S2 S3: MOV AH,4CH INT 21HCODES ENDS九.心得体会程序的主要功能是实现四则运算,整个程序中主要分为,输入算式,加法,减法,乘法,除法和以十进制显示结果这几个部分 本程序基本实现了四则运算的功能,但还没能实现带有括号的四则运算,还有在除法运算中不能运算较大的数,会产生溢出现象一开始的时候自己编出来的程序有很多问题,尤其是在循环程序上,因此查阅了不少资料,也请教了好几个同学帮着修改,调试了好久才能正常运行。由于能力有限,程序还是有不完美的地方。这次的综合实验让我对汇编有了更深刻的认识,对各种指令有了进一步的理解。

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

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