实验二、熟悉51指令(多字节十进制加法)
一、实验目的:
1、了解DAA指令使用方法。
2、掌握子程序的使用方法。
二、实验设备:
TDS-MD微机教学实验系统一台
MP-51单片机开发系统一台
三、实验重点指令:
DAA指令为二-十进制调整指令,机器码为D4,该指令是对A(累加器)的BCD码加法结果进行调整。两个BCD码按二进制相加之后,必须经本指令调整,才能得到BCD码的和数。
DAA指令的操作为:
若[(A0~3)>9]或[(AC)=1],则(A0~3)←(A0~3)+06H;
若[(A4~7)>9]或[(CY)=1];则(A4~7)←(A4~7)+06H。
四、实验内容:
两字节加法参考程序如下:
地址指令码助记符
───────────────────────────────────
2000758150MOV81,#50
20037820MOVR0,#20
20057645MOV@R0,#45
200708INCR0
20087675 MOV@R0,#75
200A7930MOVR1,#30
200C7767MOV@R1,#67
200E09INCR1
200F7728MOV@R1,#28
2011C3CLRC
20127A02MOVR2,#02
20141122ACALL2022
201618DECR0
201719DECR1
2018DAFADJNZR2,2014
201AE4CLRA
201B92E0MOVE0,C
201D00NOP
201EF6MOV@R0,A
201F80FESJMP201F
202100NOP
2022E6MOVA,@R0
202337ADDCA,@R1
2024D4DAA
2025F6MOV@R0,A
202622RET
─────────────────────────────────
上述程序实现:4575+6728=?,其中20H,21H放被加数,30H,31H放加数,两数之和放在内部ROM的1FH,20H和21H单元中。
五、实验步骤:
1.将方框内程序主体装入开发机,并做认真检查。
2.在201F)处设置断点,运行程序,检查结果。
3.试将原程序改为三字节加法程序,计算:975+134098=?将程序认真调试后,记录到实验报告上(包括程序主体、机器码、地址等)。
六、实验练习题:
把示例程序改为三字节加法程序写出(写出地址、机器码、助记符三大部分)。
七、实验结果:
1.在输入两字节加法程序并经过检查、运行后,可知:
4575+6728=
其中,1FH内为20H内为
21H内为。
2.在输入三字节加法程序并经过检查、运行后,可知:
975+134098=
其中,结果放在、、、
等四个单元内。