全球旧事资料 分类
《微机实验》报告
实验名称KeilC的使用与汇编语言上机操作指导教师专业班级姓名学号序号联系方式
f一、任务要求
实验目的:熟悉KeilC环境,通过在KeilC环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。
实验内容:1掌握KeilC环境的使用1)字节拆分、合并:调试e421asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fillasm程序,观察相关寄存器和单元的内容。
2编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。
二、设计思路
1掌握KeilC环境的使用1)字节拆分、合并:字节拆分要将BCD码转换为2字节ASCII,需将BCD码拆为两部分,分别加30H。具体先用XCHD语句将BCD码与00H交换低位,“高位”需先用SWAP语句将高低位交换,再加30H;“低位”直接加30H。字节合并同理,需减30H再合并。
2)数据块填充:指针在7000H,利于循环语句递增填充,A寄存器中存放要填充
的数据,DPTR数据指针指向片外,R0计数。用CJNE构成循环,循环中A、DPTR、R0都加12编写两个十六位数的加法程序两数低位分别存于20H、30H,高位存于21H、31H。用ADD语句将低位相加,存于R4;用ADDC语句将高位和进位Cy相加,存于R3;存进位需先将A寄存器清零,再用ADDC语句将A、00H和Cy相加,存于R2。
三、资源分配
本程序数据均存于片内RAM中,有两个十六位无符号数,低位分别存于20H、30H中,高位分别存于21H、31H中。高八位和存于R3中,低八位和存于R4中,进位位存于R2中。
四、流程图
f开始A20HA30H
R4A21HA30HCy
R3A清零A0CyR2结束
f五、源代码
ORG0000H
MAIN
MOVR020H设置第一个数地址指针
MOVR130H设置第二个数地址指针
MOVAR0取低位
ADDAR1两数低位相加
MOVR4A
存“和”低位
INCR0
INCR1
MOVAR0取高位
ADDCAR1两数高位相加
MOVR3A
存“和”高位
CLRA
ADDCA0
MOVR2A
存进位
HERE
SJMPHERE
踏步
END
结束
ProgramSizedata80xdata0code18
精简后
ORG0000HMAIN
MOVA20HADDA30HMOVR4AMOVA21HADDCA31HMOVR3ACLRAADDCA0
取低位两数低位相加存“和”低位取高位两数高位相加存“和”高位
fMOVR2A
存进位
HERE
SJMPHERE
踏步
END
ProgramSizedata80xdata0code16
六、程序测r
好听全球资料 返回顶部