MOV @R0, A ; 低字节的和存入被加数低字节中
DEC R0 ; 指向被加数高位字节
DEC R1 ; 指向加数高位字节
MOV A, @R0 ; 被加数高位字节送入A
ADDC A, @R1 ; 两个高位字节带Cy相加
MOV @R0, A ; 高位字节的和送被加数高位字节
RET
例2 将两个半字节数合并成一个一字节数。
设内部RAM 40H, 41H单元中分别存放着 8 位二进制数, 要求取出两个单元
中的低半字节, 并成一个字节后, 存入 50H单元中。
START: MOV R1, #40H ; 设置R1为数据指针
MOV A, @R1 ; 取出第一个单元中的内容
ANL A, #0FH ; 取第一个数的低半字节
SWAP A ; 移至高半字节
INC R1 ; 修改数据指针
XCH A, @R1 ; 取第二个单元中的内容
ANL A, # 0FH ; 取第二个数的低半字节
ORL A, @R1 ; 拼字
MOV 50H, A ; 存放结果
RET
例3. 单字节压缩BCD码转换成二进制码子程序。
设两个BCD码(d1d0)表示的两位十进制压缩存在与R2中,其中R2高4位存十位,低
4位存个位。要把其转换成纯二进制码的算法:
(d1d0)BCD=d1×10+d0
入口:待转换的BCD码存于R2。
出口:转换结果(8位无符号二进制整数)仍存R2。
BCD2B: ORG 2000H
MOV A, R2
ANL A, #0F0H
SWAP A
MOV B, #0AH
MUL AB
MOV R3, A
MOV A, R2
ANL A, #0FH
ADD A, R3
MOV R2, A
RET
例4. 双字节压缩BCD码转换成二进制码子程序。
解:该转换的算法为:
(d3d2d1d0)=(d3×10+d2) ×100十(d1×10+d0 )
实现该算法的参考子程序如下: