在片内RAM的30H起始的单元中存放2位十六进制数,将其转换为ASCⅡ码,并将其存入40H为首的片内RAM中。用查表法编写程序。
ORG 0000H
LJMP SUBRTE
ORG 1000H
SUBRTE:MOV R0 ,#30H ;置地址指针R0初值
MOV R1 ,#40H ;置地址指针R1初值
MOV R2 ,#4 ;置字节数
LOOP: MOV A ,@R0 ;取16进制数
ANL A,#0FH ;屏蔽高4位
ADD A,#16 ;
MOVC A, @A+PC ;查表低4位转换为ASCⅡ码
MOV @R1,A ;送结果
INC R1 ;修改指针
MOV A,@R0 ;从新取16进制数
SWAP A ;高4位与低4位互换
ANL A,#0FH ;取高4位
ADD A,#7
MOVC A,@A+PC ;查表高4位转换为ASCⅡ码
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOP
DEC R1
RET
TABLE:DB’012345678’
DB’9ABCDEF’
END
——————————————————————
ADD A,#16 和 ADD A,#7分别是什么意思 为什么要用这两条指令
MOV A ,@R0
ANL A,#0FH
ADD A,#16
MOVC A, @A+PC
麻烦举例子说明下这四句,这四句懂了就全都懂了 谢谢