多位十进制数加法器设计.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告课程名称:微机原理及应用实验
实验项目名称:多位十进制数加法器设计学院:物理科学与技术学院
专业:应用物理
指导教师:
报告人:学号:班级:应用物理班
实验时间:2015-10-19
实验报告提交时间:2015-11-02
教务处制
五、程序说明(预习)
七、实验源程序清单(实验后以电子报告形式存储到指定位置)1.源程序路径及文件名:
ADD2.ASM ADD1.ASM
2.可执行程序路径及文件名:
八、上机调试情况说明
EMU8086:
一:没有键盘录入
1.结果显示如下:
2.程序运行时的各段地址:
3.两个子程序IP入口:
4.改变两个加数数值
5.子程序格式及其调用方法和宏汇编区别
子程序格式:
子程序名称PROC NEAR ; 子程序定义; …子程序内容
RET ;子程序返回
子程序名称ENDP ;子程序结束
调用格式:
CALL 子程序名称
注意事项:
1、子程序不能直接传递参数,需要自行定义变量。
2、注意保护现场和恢复现场。
宏汇编与子程序的区别:
1、宏汇编有宏展开,子程序没有
2、宏汇编可以传递参数。
二:键盘录入
DOS:
例如:250+250=500
例如:62142+63123=125265
九、实验结果与分析
结果如下:
十、实验总结(必备部分,评分重要依据之一)
本次实验实则是对实验二的加强巩固基础上,进行更加友好的人机交互设计;通过本次实验不仅在程序中首先把两个加数固定,在实验二的基础上扩展位数,考虑到最高位进位的情况,并最终得出正确结果;后来又通过键盘录入两个加数,增加了人机交互的设计,如此一来,更加加深了对寄存器的使用,汇编语言宏定义,子程序调用以及DOS功能调用的学习。同时,通过本次实验的学习,更加熟练了EMU8086工具的使用,也把理论课上学习到的汇编操作指令实际操作,对汇编语言的风格加深认识。
MOV DL,BL
INT 21H
CRLF
JMP BEGIN
ERROR:
CRLF
MOV AH,09H ;显示输入错误
LEA DX,STRING3
INT 21H
CRLF
JMP BEGIN
EXIT:
CRLF
MOV AH,09H ;显示成功退出
LEA DX,STRING4
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
(2)请问你的程序能否处理加数和被加数都介于0~65535范围但计算结果超出该范围的情况?如何改进?
可以,如图:
主要考虑到最高位是否进位,可以设置一个进位变量加以判断。
(3)加数或被加数为负数,结果是否正确,输出格式上作何处理?
答:如果加数或被加数为负数,结果不正确。
设想:可以在输入格式上,判断第一位的ASCII码是否为“-”,如果为负,则可以将数字转化为其补码再作加法运算,如果两数的和也为负数,则在也输出格式上将结果转化为补码表示。
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
3. 实验过程与实验报告评分比例会根据具体实验来调整。
4. 务必把实验课前老师签字了的预习报告附上,否则不予评分。