当前位置:首页 > 微机原理实验报告4
实 验 报 告
课程名称:《微机原理》实验 第3次实验
实验名称:宏命令与子程序的区别
实验时间:2015年10月13日
实验地点:XXXXXX组号__________
学号:XXXX 姓名:XXX
指导老师:XX 评定成绩:___________
微机原理实验4
南京大学工程管理学院
一、实验设备: 计算机
二、实验用时: 4小时
三、实验内容:
1. 单步运行实例函数NO3_Mpy_8,了解单字节无符号数乘法的实现方法。
2. 编写子程序Mpy_16,实现双字节无符号数乘法。自行定义变量,其中:
ACCALO ;存放乘数低 8 位 ACCAHI ;存放乘数高 8 位
ACCBLO ;存放被乘数低 8 位和乘积第 16~23 位 ACCBHI ;存放被乘数高 8 位和乘积第 24~31 位 ACCCLO ;存放乘积第 0~7 位 ACCCHI ;存放乘积第 8~15 位
编写Main主程序,使用乘数 0x4015和被乘数0x3321对编写的子程序进行测试,结果应为0x0CCC71B5。
3. 编写宏命令Mpy_16,实现单字节无符号数乘法。编写Main主程序调用宏命令并对运算结果进行测试。
4. 使用反汇编工具Disassembly Listing单步运行程序,观察子程
序与宏命令的差异。
四、实验报告要求:
1. 程序框图和源程序清单。
2. 分析宏扩展过程,说明宏与子程序的差别。
五、实验结果: 1、程序框图 (1)子程序Mpy_16 MDHI、MDLO算数右移一位,最低位进入C ACCBHI、ACCBLO、ACCCHI、ACCCLO清零 将乘数ACCBHI、ACCBLO复制到MDHI、MDLO中 初始化循环计数器TEMP 子程序调用 是 ACCAHI、ACCBHI、ACCALO、ACCBLO分别相加,结果放入ACCBHI、ACCBLO中 C=1? 否
(2)宏命令Mpy_16
否 ACCCHI、ACCCLO带进位位右移,最低位放入CACCBHI、ACCBLO带进位位右移,最低位放入C中 中 TEMP=TEMP-1 TEMP=0? 是 子程序返回 开始 初始化循环计数器TEMP 将乘数ACCBHI、ACCBLO复制到MDHI、MDLO中 ACCBHI、ACCBLO、ACCCHI、ACCCLO清零
共分享92篇相关文档