实验4. 子程序设计----BCD 码转换为二进制
单字节可存放两位压缩BCD 码(0—99)
为0
—9)
单字节BCD 码转换为二进制子程序
入口:(R0)= 压缩BCD 码的地址
出口:(A)= 转换结果
DSFR::MOV A,@R0
ANL A,#0F0H ;取十位数
SWAP A ;变为标准BCD 码
MOV B,#10
MUL AB ;(A)=D1×10
MOV R7,A ;D1×
10暂存
R7
MOV A,@R0
ANL A,#0FH ;取个位
ADD A,R7 ;A=D1×10+D0
RET
1、实验内容:
子程序设计要点:
1) 子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR 子程序的
入口条件是:被转换为二进制的单字节BCD 码为间接寻址,间接寻址寄存器为R0。
要调用DFSR 子程序必需先将压缩BCD 码的存放地址赋与R0。
而出口条件是指最后结果在哪儿存放。
本子程序转换结果在ACC 内。
2) 主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。
2、实验步骤
1)打开PV32编程序。
汇编正确进入调试界面。
否则修改程序重新汇编直到通过。
2)打开DATD窗口给20H、21H、R6、R7赋值
3)单步调试DSFR子程序观察并记禄寄存器、内存的变化。
判断程序是否正确。
若发现
问题重返编辑界面,修改、存盘、汇编。
返回调试界面调试通过。
4) 设断点调试主程序观察并记禄寄存器、内存的变化。
判断程序是否正确。
若发现问
题重返编辑界面,修改、存盘、汇编。
返回调试界面调试通过。
3.实验报告
1.写出主程序流程图、子程序流程图、程序清单
2.根据记渌数据给程序加注解
3.调试心得。