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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

汇编语言程序设计计算器Word文档下载推荐.docx

1、(4)(5)调用赋权宏子程序模块.(6)回车换行宏模块.(7)9号功能显示字符串宏模块.二设计方案1.主程序模块.主程序初始化数据段,调用显示宏show显示界面,输入字符或数字并判断,调用子程序dyfq调用赋权宏fq为符号赋权,从而判断优先级,调用加减乘除运算子程序ys对判断出的相应运算符进行运算,输出运算结果,判断是否继续,继续则返回输入,不继续则退出程序.2.赋权宏模块.通过定义宏fq,定义了变元a,b进行参数传递,并使用替换运算符&使变元a与标号s对应.接着给对应的符号赋予权值,将其权值存入ch中.*3.加减乘除运算子程序模块.运算模块实现了将ax入栈保存,然后将ax,bx赋值为0,判断

2、cl中的符号是否为乘号*,若为乘号*则将number中的数字与其下一位的数字相乘,并把结果存入该位置,类似的若不为乘号*则接着判断是否为除号/,若为除号/则进行除法运算,然后判断是否为加法,为加法则进行加法运算,接着判断是否为减法,为减法则进行减法运算并将结果存入当前的计算的第二个数的位置.4.调用赋权宏子程序模块.该模块实现了调用赋权宏fq为(,),*,/,+,-,=等符号分别赋权值为5,1,4,4,3,3,0.从而可以通过设定的权值来判断优先级.5.回车换行宏模块.通过2号功能的输出功能,将0dh赋予dl输出,再调用2号功能,将0ah赋予dl输出,从而实现回车换行功能.号功能显示字符串宏模

3、块.通过定义宏show,用9号显示功能,通过变元str将字符串显示出来。?三设计框图四程序代码DATAS SEGMENT STR1 DB 0AH,0DH,*$ STR2 DB 13,10, * 1 2 3 4 5 *$ STR3 DB 13,10, * 6 7 8 9 0 *$ STR4 DB 13,10, * + - * / = *$ STR5 DB 0AH,0DH, STR6 DB 13,10, PLEASE INPUT A FORMULA: $ STR7 DB CONTINUE(Y/N)$ SIGN1 DW 0 ;值为0代表输入的不是数字,为1代表输入的是数字 SIGN2 DW 0 ;值

4、为0代表输入的符号是匹配的,为1输入的符号不匹配 NUMBER DW 20 DUP(0) ;保存输入的数值 OPERATOR DB $ ;判断输入的运算符是否为空 DB 10 DUP(0) ;保存该运算符对应的权值 ERROR DB WRONG!DATAS ENDSSHOW MACRO STR ;宏定义,显示字符串 LEA DX,STR。 MOV AH,9 INT 21H ENDMFQ MACRO ASCII,A,B ;宏定义,给运算符赋权值 CMP AL,ASCII JNE S&A MOV CH,B JMP S7 ? ENDMHCHH MACRO ;宏定义,回车换行 MOV AH,2 MOV

5、 DL,0DH INT 21H MOV DL,0AH INT 21H % ENDM CODES SEGMENT MAIN PROC FAR ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA DI,NUMBER LEA SI,OPERATOR SHOW STR1 SHOW STR2 SHOW STR3 SHOW STR4 SHOW STR5 SHOW STR6 MOV AX,0 MOV BX,0 MOV CX,0 MOV DX,0 START1: HCHHINPUT: MOV AH,1 CMP AL,=, JE LET0 CMP

6、AL,28H ;第二种情况,第一次输入的与28H也就是(比较 JB INPUT ;小于28H=(则重新输入 CMP AL,39H JA INPUT ;大于39H=9则重新输入 CMP AL,2FH ;判断是数字还是符号 JBE LET1 ;是符号转入响应操作 INC WORD PTR SIGN1 ;是数字的话将数字标志位加1 SUB AL,30H MOV AH,0 XCHG AX,DI MUL BX MOV BX,10 ADD DI,AX JMP INPUT CALL FUNRETMAIN ENDP FUN PROC NEAR;*LET0: CMP WORD PTR SIGN2,0;判断配对标

7、志位 JE LET1 ;经过左括号和右括号抵消为0则跳转、 JMP LET8 ;否则跳转到BC显示输入错误LET1: CMP WORD PTR SIGN1,0 JE LET2 ADD DI,2 ; MOV WORD PTR SIGN1,0 ;将数字标志位复0LET2: CALL DYFQ ;设定优先级】 CMP CH,5 ;判断输入的符号是否是左括号 JNE LET3 ;不是则判断输入的是否是右括号 INC WORD PTR SIGN2 ;是左括号,括号标志位加1LET3: CMP CH,1 ;判断输入的是否是右括号 JNE LET4 DEC WORD PTR SIGN2 ;是右括号,括号标志

8、位减1 LET4: CMP BYTE PTRSI,判断运算符存储区是否为空 JE LET6 CMP CH,SI ;SI的内容为前一个符号或其权值 JA LET6 ( JNE LET5 DEC SILET5: DEC SI MOV CL,SI CALL YS ;判断是什么运算符并进行相应的计算 JMP LET4 LET6: CMP CH,0 ;判断是否是等号 JE OUTPUT ( CMP CH,1 JE INPUT ;“)”不保存,输入下一个数 INC SI MOV SI,AL ;保存符号判断是否是左括号 JNE LET7 MOV CH,2 ;改变(的权值!LET7: MOV SI,CH ;紧

9、跟着保存符号的权值 JMP INPUT LET8: LEA DX,ERROR MOV AH,9 JMP EXIT -FUN ENDP;*DYFQ PROC ;子程序DYFQ调用宏FQ,判断优先级 FQ 28H,1,5 ;调用宏FQ为(赋权值S1:FQ 29H,2,1 ;调用宏FQ为)赋权值S2:FQ 2AH,3,4 ;调用宏FQ为*赋权值S3:FQ 2FH,4,4 ;调用宏FQ为/赋权值S4:FQ 2BH,5,3 ;调用宏FQ为+赋权值S5:FQ 2DH,6,3 ;调用宏FQ为-赋权值S6:FQ 3DH,7,0 ;调用宏FQ为=赋权值S7:DYFQ ENDP;* OUTPUT:输出运算结果 S

10、UB DI,2 CMP WORD PTRDI,0 JGE K1 NEG WORD PTRDI ;求负数的绝对值 MOV DL,- INT 21HK1: MOV BX,10000 MOV CX,5 MOV SI,0K2: MOV AX,DI CWD DIV BX MOV DI,DX CMP AL,0 JNE K3 CMP SI,0 CMP CX,1 JE K3 JMP K4K3: MOV DL,AL ADD DL,30H MOV SI,1K4: MOV AX,BX ;实现将10000变为1000,100,10 MOV DX,0 MOV BX,10 MOV BX,AX LOOP K2 HCHH S

11、HOW STR7 MOV AH,1n判断是否继续输入,输入n则结束操作 JE EXITN MOV WORD PTRDI+2,0 LEA SI,OPERATOR JMP START1|EXIT: MOV AH,4CHYS PROC NEAR ;子程序,进行相应的运算 PUSH AX MOV AX,0 CMP CL,2AH ;乘法运算 JNE CHU XCHG BX,DI XCHG AX,DI IMUL BX MOV DI,AX ADD DI,2 JMP FINISHCHU: CMP CL,2FH ;除法运算 JNE JIA SUB DI,2 IDIV BXJIA: CMP CL,2BH ;加法运

12、算 JNE JIAN ADD DI,BXJIAN: CMP CL,2DH ;减法运算 JNE FINISH SUB DI,BX FINISH: POP AX RETYS ENDP;*CODES ENDS END START五运行结果六设计总结 本次设计让我学到了很多关于汇编的知识,首先,本次设计是以四则运算为主题,通过在课堂上学习的基本知识和基本方法以及平时积累的知识和方法来实现对带符号数的加减乘除运算,在设计过程中,对我已有的知识进行了巩固,对我之前不太了解的知识有了一定的了解,通过亲身去编写程序,使得自己的实际动手能力得以增强。其次,通过本次设计,使我对模块化,结构化的程序设计方法掌握的更

13、加透彻,再者,就是对于宏的定义,调用以及子程序的定义,调用的方法掌握的更加熟练。本次设计是要实现对有符号数的加减乘除等四则运算,程序开始先定义了显示界面的诸多字符串,经过显示界面,接下来,定义了判断数字和判断运算符的存储区,通过这两个存储区来判断当前位置输入的是数字还是运算符,然后,定义了保存数字和保存运算符的存储区,提示错误的字符串,显示宏,赋权宏,回车换行宏等,通过主程序对各个宏及子程序的调用,判断出输入的是数字还是运算符,若是运算符又是运算符中的哪类运算符,然后,进行加减乘除运算,最后将运算结果存入保存数字的存储区中,运用到显示输出模块将最后的运算结果显示出来,从而实现了对带符号数的四则运算功能。通过这次设计,我在汇编语言方面收获了很多东西,具体而言,在宏定义,宏调用和子程序定义,调用方面我学到了比以前更多的知识,尤其是通过子程序调用宏这种嵌套模式可以简化许多复杂的程序,让程序更加简洁易懂,此外,这次设计让我认识到了上课认真听讲的必要性,老师在课堂上讲解的许多知识都很重要,在本次设计中就充分体现了这一点,所以学好课堂老师讲解的知识是很有必要的。

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

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