单片微型计算机原理与接口技术答案(第二版)高峰(15)
发布时间:2021-06-11
发布时间:2021-06-11
RL A ;(A)x 4
RL A ;(A)×8
ADD A,R1 ;(A)X i0
MOV @R0,A ;存数
功能:将30 H中的数乘以10以后再存回30H中。
条件:30 H中的数不能大于25,25×10=250仍为一个字节。若30H中的数大于25,则应考虑进位。
【3—19】已知两个十进制数分别在内部RAM中的40 H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30 H单元中。编程实现两个十进制数求和,求和结果存放在40 H开始的单元中。
【答】程序如下:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:
MOV R0,#40H ;被加数首址.又作两个十进制数和的首址
MOV R1,#50H ;加数首址
MOV R2,30H ;字节长度
CLR C
PP: MOV A,@R1 ;取加数
ADDC A,@R0 ;带进位加
DA A ;二一十进制数调整
MOV @R0,A ;存和
INC R0 ;修正地址
INC R1
DJNZ R2,PP ;多字节循环加
AJMP $
END
【3—20】编程实现把外部RAM中从8000 H开始的100个字节数据传送到 8100开始的单元中。
【答】程序如下:
ORG 0000H
SJMP MAIN
ORG 0030H
MAIN:MOV DPTR,#8000H ;字节数据源首地址
MOV R1,#100 ;字节数据计数器
MOV R2,#01H
MOV R3,#00H
PP: MOVX A,@DPTR ;读数据
MOV R4,A ;保存读出数据
CLR C
MOV A,DPL ;计算得到字节数据目的地址
ADD A,R3
MOV DPL,A
上一篇:最全的三叶罗茨鼓风机选型