内容发布更新时间 : 2025/2/8 7:07:53星期一 下面是文章的全部内容请认真阅读。
计算机组成原理与汇编语言程序设计(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