1、 汇编语言课程设计说明书 设计题目设计题目 四则运算计算器的设计 专专 业业 班班 级级 学学 号号 姓姓 名名 指导教师指导教师 起止起止日期日期 成成 绩绩 课程设计任务书 一、设计题目: 四则运算计算器的设计 二、设计的主要内容: 设计一个能实现加减乘除取余计算的程序。 将键盘输入的表达式预放入一缓冲区中, 然后从该缓冲区的第一个字 符开始读取判断, 当读到一个有效的表达式时对表达式进行相应的运 算后,输出用十六进制数表示的运算结果。目标:要求该程序接受从 键盘输入的十六进制数, 执行相应的计算后, 计算结果以十六进制数 输出。 指 导 教 师: 教 研 室 主 任: 1 1选题背景及意
2、义选题背景及意义 运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并 掌握 DOS 系统功能调方法用及 BIOS 系统功能调用方法,同时在程序设计过程中熟 悉并掌握各种指令的应用,知道编程的具体流程,以及掌握 DEBUG 的一系列的功 能执行命令,及用它进行调试,运行功能。 2 2 主要设计内容及预期目标主要设计内容及预期目标 设计一个能实现加减乘除取余计算的程序。将键盘输入的表达式预放入一缓 冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式 时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。目标:要求 该程序接受从键盘输入的十六进制数,执行相
3、应的计算后,计算结果以十六进制 数输出。 3 3 概要设计概要设计 本题目实现的模块图如图 3-1 所示 图 3-1 概要模块 (1) 界面设置 主要实现确定界面样式的功能,以菜单形式显示。 (2) 选择算法设置 用于选择加、减、乘、除法来进行运算。 (3) 十进制转换设置 应用十进制的转换算法来处理加、减、乘、除法四则运算。 4 4 详细设计详细设计 4.1 界面设置 四则运算计算器程序设计 界 面 设 置 选 择 算 法 设 置 十 进 制 转 换 设 置 通过定义数据段,利用 09H 显示出功能列表。通过定义数据段,以字符串的 形式输入每个提示信息,利用 09H 键盘输入并回显命令显示每
4、一个功能提示,是 计算器的功能列表有序清晰的显示在屏幕上。 4.2 选择算法设置 首先选择要进行的四则运算,若选择 1,则进行加法;若选择 2,则进行减法; 若选择 3,则进行乘法;若选择 4,则进行除法。加法:先输入第一个小于 4 位十 六进制数存入SI中, 在输入第二个小于4位十六进制数存入BX中, 然后显示BX 和 SI中的内容相加存在 BX 中。减法:先输入第一个小于 4 位十六进制数存入 SI 中,在输入第二个小于 4 位十六进制数存入 BX 中,然后显示 BX 和SI中的内容 相减存在 BX 中,然后用 NEG 来求反,即为第一个数减去第二个数的差,显示 BX 的内容即为差。乘法:
5、先输入第一个小于 4 位十六进制数存入 SI 中,在输入第二 个小于 4 位十六进制数存入 BX 中,把 BX 的值给 AX,然后让 AX 乘以SI,然后再 分别将 DX,AX 中的内容赋给 BX,接着依次显示 DX,AX 的内容,即为积。除法: 先输入第一个小于 4 位十六进制数存入 SI 中,在输入第二个小于 4 位十六进制数 存入 BX 中,将SI赋给 AX 作被除数,让 BX 作除数,得到的商存放在 AX 中,余 数放在 DX 中,然后依次赋给 BX,将其依次显示即为商。 4.3 十进制转换设置 要完成十进制转换成十六,一般采用除十六取余法来完成,其大致过程如下: 将待转换的数除以 1
6、6 得到第一个商和余数,此第一个余数就是所求的十六进制数 的各位,再用第一个商除以 16,得到第二个商和余数,此第二个余数就是所求十 六进制数的十位,重复这一过程直至商为 0,此时的余数就是所求十六进制数的最 高位。在内存中分配一缓冲区,用来存放以上分离出来的使十进制数的每一位, 然后再逐个转换成 ASCII 码,转换成 ASCII 码的过程很简单,就是给每个十六进 制位加上 30H 即可,最后送显示器输出。 图 4-1 加法、减法的运算的截图 图 4-2 除法、乘法的运算及退出程序的截图 图 4-3 四则运算计算器操作流程 输入选择键 x X=1? X=2? X=3? X=4? 十六进制加法 十六进制减法 十六进制乘法 十六进制除法 提示出错! X=0? 是 是 是