福建师范大学MCU作业汇编程序设计进阶.docx
- 文档编号:5048080
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:9
- 大小:78.17KB
福建师范大学MCU作业汇编程序设计进阶.docx
《福建师范大学MCU作业汇编程序设计进阶.docx》由会员分享,可在线阅读,更多相关《福建师范大学MCU作业汇编程序设计进阶.docx(9页珍藏版)》请在冰豆网上搜索。
福建师范大学MCU作业汇编程序设计进阶
实验报告3汇编程序设计-进阶
实验目的
1、熟悉51单片机的指令系统,掌握汇编语言程序的设计方法,掌握开发的调试方法。
实验环境
WAVE6000
内容与步骤
(1)在指定缓冲区查找最大值
(2)在指定缓冲区查找最小值
(3)在指定缓冲区计算平均值
(4)一位十六进制数转换成ASC1I码
(5)一位十六进制数转换8段式数码管显示码
(6)多分支转移(散转)程序
过程分析
通过编程前画出流程图,使编写起来更简单,更快速。
结果总结
通过本次实验,加深了我对汇编指令的理解。
以及流程图的使用大大提高了编程效率。
思考题
如何采RET指令实现的多分支程序。
RET 是子程序返回指令,功能是从堆栈中取出断电送给程序计数器
PC,使程序从断点处继续执行。
所以在编写多分枝程序时,调用子程序后,必须使用返回指令(如RET
)才能返回到主程序。
附录
(1)在指定缓冲区查找最大值
说明:
将最大值MAX存放在内存单元40H中
缓冲区地址从50H开始。
;-------------在指定缓冲区查找最大值----------
LENEQU20H
MAXEQU40H
VALUEEQU10H
MOVR0,#050H
MOVMAX,@R0
MOVLEN,#5
FIND:
MOVVALUE,@R0
MOVA,VALUE
CLRC
SUBBA,MAX
JCNEXT
MOVMAX,VALUE
NEXT:
INCR0
DJNZLEN,FIND执行前:
执行后:
(2)在指定缓冲区查找最小值
说明:
将最小值MIN存放在内存单元40H中
缓冲区地址从50H开始。
;-------------在指定缓冲区查找最小值-------------
LENEQU20H
MINEQU40H
VALUEEQU10H
MOVR0,#050H
MOVMIN,@R0
MOVLEN,#5
FIND:
MOVVALUE,@R0
MOVA,VALUE
CLRC
SUBBA,MIN
JNCNEXT
MOVMIN,VALUE
NEXT:
INCR0
DJNZLEN,FIND
执行前:
执行后:
(3)在指定缓冲区计算平均值
说明:
将商放入TEMP_1中,余数放入TEMP_2中。
缓冲区地址从50H开始。
LENEQU30H
TEMP_1EQU31H
TEMP_2EQU32H
MOVTEMP_1,#00H
MOVTEMP_2,#00H
MOVLEN,#05H
MOVR0,#50H
CLRC
LOP:
ADDCA,@R0
INCR0
DJNZLEN,LOP
MOVB,#5
DIVAB
MOVTEMP_1,A
MOVTEMP_2,B
执行前:
执行后:
(4)一位十六进制数转换成ASC1I码
说明:
将一个十六进制数存入A中,小于10的+30H,大于等于10的+37H。
MOVA,#00BH
CJNEA,#0AH,NEXT
NEXT:
JCASC
ADDA,#37H
SJMPLOP
ASC:
ADDA,#30H
LOP:
SJMPLOP
执行前:
执行后:
教师评阅:
成绩:
注:
老师如已阅,方便的话能否通知!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建师范大学 MCU 作业 汇编程序 设计 进阶
![提示](https://static.bdocx.com/images/bang_tan.gif)