汇编大作业(四则运算器含代码)

计算机组成原理与汇编语言程序设计(2013)

汇 编 程 序 大 作 业

1 / 37

计算机组成原理与汇编语言程序设计(2013)

云南大学软件学院实验报告 姓名 学号 实验 名称 年级 专业 班级 序号 成绩 实验八 汇编程序综合设计实验(四则运算器) 指导教师 (签名):

实验内容:

1.设计一个功能完善的四则运算器: ①程序有友好的运行界面;

②可以方便的输入输出2,10,16进制数据(要求可以处理4位的数据); ③可以方便的对数据进行四则运算; ④要求程序能够处理基本的错误信息; ⑤程序要求菜单控制; ⑥其他

程序简介:

该程序采用了主程序、子程序、宏相结合的编写方式,通过主程序调用了加、减、乘、除的子程序,在这四个子程序中有分别调用了二、十、十六进制输入输出、进制间转化的子程序。在数值转化为ASCII码的部分,定义了宏进行调整输出。

程序实现了16位的二进制、4位的十进制、4位的十六进制的加、减、乘、除运算,并可以通过用户的选择将其转化为其他相应的进制。其中乘法运算的进制转化功能尚不完善,当运算结果超过4位时不能正确的将结果进行输出并进行进制转化。 子过程:

addition:加法部分 subtraction:减法部分 multiplication:乘法部分

division:除法部分 b_in:二进制输入

hd_in:十六进制、十进制输入 b_out:二进制输出

btod:二进制转化十进制并输出 both:二进制转化十六进制并输出 宏:

btth:将数值转化为ASCII码保存 算法说明:

二进制计算时,要求输入0和1,从高到低为输入,将先输进的数*2+后输入的数,保存到寄存器中,如 1011则按((1*2+0)*2+1)*2+1

十进制计算时,要求输入0-9的整数,从高到低输入,将先输进的数*10+后输进的数,保存到寄存器中,如9817 则按((9*10+8)*10+1)*10+7 十进制计算时,要求输入0-F的整数,从高到低输入,将先输进的数*10H+后输进的数,保存到寄存器中,如AD17 则按((A*10H+D)*10H+1)*10H+7

2 / 37

计算机组成原理与汇编语言程序设计(2013)

通过add、sub、mul、div等汇编指令进行计算。

二进制输出,从高位到低位按位依次保存到dl中,加30h后输出 十进制输出,将结果分别除以10000、(上一步余数除)1000、(上一步余数除)100、(上一步余数除)10将商分别加30h后输出,将最后的余数加上30h后输出

十六进制输出,从高到低每四位依次输出与9比较,大于9加37h调整,小于9加30h调整

程序流程及实验结果:

主程序部分:

开始运算选择 a加法,b减法,c乘法,d除法 aba?b?c?d?cd子程序:加法子程序:减法子程序:乘法子程序:除法结束

提示用户进行运算符号的选择,并进行子程序部分的调用

3 / 37

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4