精品文档---下载后可任意编辑1 项目特点及目的本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。2 题目简介用 8086 汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。3 程序设计要求 遵循模块化、结构化的编程思路 程序必须正确运行 程序简明易懂,多标明注释,具有良好的程序书写风格 适当优化程序,提高程序的运行效率4 工作条件使用的设备及软件为 8086 兼容机及 MASM 汇编开发软件。5 题目分析根据题目要求,可以把程序的工作过程划分为运算表达式输入、计算、结果输出三部分。因此在编写程序时可以按此把程序大致划分为三个模块。5.1 运算表达式输入用户通过键盘输入的运算表达式为一个 ASCII 码字符串,字符串的最后一个字符是“=”号。对于这个运算表达式,“+、-、*、/、(、)、0~9、=”是合法的表达式内容,其他的字符则是无法进行运算的非法内容,因此需要首先进行表达式合法性检查。另外,由于计算机能进行计算的是 2 进制的补码,因此还需要把以 ASCII 码表示的数值转换为补码的形式并加以保存。当然,控制运算方式的符号也要进行保存。因此,“运算表达式输入”这个模块可以细化为:表达式合法性检查、数值的 ASCII 码到补码转换及保存、符号的保存三个小部分,如图 6-1 所示。图 6-1 “运算表达式输入”的流程图 运算表达式合法性的检查方法观察“ASCII 字符编码表”,可以发现“+、-、*、/、(、)”的 ASCII 码由 28H 到2FH,而“0~9”的 ASCII 码则由 30H 到 39H,因此只需对输入的字符一个一个地进行数值范围比较,看看是否处于 28H~39H 这个范围里面,即可区分输入的表达式是否合法,流程图如图 6-2 所示。此流程图是采纳循环输入字符的方法,每输入一个字符即进行推断。读者也可以采纳输入字符串的方法,把整个运算表达式接收完毕后再进行推断。图 6-2 运算表达式合法性检查流程图一另一方面,对于含有括号的运算表达式,当左括号的数量与右括号数量不相等时,表达式也是非法的。因此,可以设置一个起始值为 0 的变量(下面称其为配对标志),当输...