汇编语言程序设计————计算器.docxVIP

  • 19
  • 0
  • 约5.46千字
  • 约 11页
  • 2020-10-15 发布于河北
  • 举报
课程设计说明书 题目: 表达式计算器 学号: 班级:计算机创新实验班 姓名:廖福轩 目录 一.设计内容 2 二.设计方案 错误! 未定义书签 主程序模块 . 错误! 未定义书签 赋权值模块 . 错误! 未定义书签 加减乘除运算子程序模块 . 错误! 未定义书签 调用赋权宏子程序模块 . 错误! 未定义书签 回车换行宏模块 . 错误! 未定义书签。 号功能显示字符串宏模块 . 2 三.设计框图 3 四.程序代码 4 五.运行结果 六.设计总结 错误! 未定义书签 错误! 未定义书签 计算器汇编语言程序设计 一.设计内容 从键盘输入一个十进制两位数的四则运算表达式,如 23*56 —( 8*19 ) /6 + 67 — 8=,编程计算 表达式的值,输出十进制结果(有可能是三位或四位十进制),+- */ 位置任意。并要求程序能 反复执行直道对“还要继续吗( y/n ) ”之类的提示回答“ n”或“ N”为止。 四则运算主要包括以下几个模块: 主程序模块 . 赋权宏模块 . 加减乘除运算子程序模块 . 调用赋权宏子程序模块 . 回车换行宏模块 . 9 号功能显示字符串宏模块 . 二.设计方案 主程序模块 . 主程序初始化数据段,调用显示宏 show 显示界面,输入字符或数字并判断,调用子程序 dyfq 调用赋权宏 fq 为符号赋权,从而判断优先级,调用加减乘除运算子程序 ys 对判断出的相应运算 符进行运算,输出运算结果,判断是否继续,继续则返回输入,不继续则退出程序 . 赋权宏模块 . 通过定义宏fq,定义了变元a,b进行参数传递,并使用替换运算符 使变元a与标号s对应.接着给 对应的符号赋予权值,将其权值存入 ch 中. 加减乘除运算子程序模块 . 运算模块实现了将 ax 入栈保存,然后将 ax, bx 赋值为 0,判断 cl 中的符号是否为乘号 *,若为 乘号 * 则将 number 中的数字与其下一位的数字相乘,并把结果存入该位置,类似的若不为乘号 * 则接着判断是否为除号 /, 若为除号 /则进行除法运算, 然后判断是否为加法, 为加法则进行加法运 算,接着判断是否为减法,为减法则进行减法运算并将结果存入当前的计算的第二个数的位置 . 调用赋权宏子程序模块 . 该模块实现了调用赋权宏 fq 为(,),*,/,+,-,= 等符号分别赋权值为 5,1,4,4,3,3,0. 从而可以通过设定的 权值来判断优先级 . 回车换行宏模块 . 通过 2 号功能的输出功能,将 0dh 赋予 dl 输出,再调用 2 号功能,将 0ah 赋予 dl 输出,从而实 现回车换行功能 . 号功能显示字符串宏模块 . 通过定义宏 show ,用 9 号显示功能,通过变元 str 将字符串显示出来。 .设计框图 四.程序代码 DATAS SEGMENT STR1 DB OAH,ODH, *******************************************$ 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 ;值为 0 代表输入的符号是匹配的,为 1 输入的符号不匹配 NUMBER DW 20 DUP(0) ;保存输入的数值 OPERATOR DB $ ;判断输入的运算符是否为空 DB 10 DUP(0) ;保存该运算符对应的权值 ERROR DB WRONG!$ DATAS ENDS SHOW MACRO STR ;宏定义 , 显示字符串 LEA DX,STR MOV AH,9 INT 21H ENDM FQ MACRO ASCII,A,B ;宏定义 ,给运算符赋权值 CMP AL,ASCII JNE SA MOV CH,B JMP S7 ENDM HCHH MACRO ; 宏定义 ,回车换行 MOV AH,2 MOV DL,0DH INT 21H MOV AH,2 MOV DL,0AH INT 21H ENDM CODES SEGMENT MAIN PROC FAR ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX LEA DI,NUMBER LEA SI,OPERATOR SHOW STR1 SHOW STR2 SHOW STR3 SHOW STR4 SHOW STR5 SHOW ST

文档评论(0)

1亿VIP精品文档

相关文档