以下是一个显示“090545“的程序,我想问一下它的工作情况,特别的,它是如何执行查表的??
请对这一句进行说明:MOV DPTR,#TAB
MOVC A,@A+DPTR
CPL A ;理解这句
MOV P0,A
在此谢了!!
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV 70H,#5
MOV 71H,#4
MOV 72H,#5
MOV 73H,#0
MOV 74H,#9
MOV 75H,#0
LCALL DISPLAY
LCALL DL1MS
LJMP MAIN
DISPLAY:MOV R1,#70H
MOV R5,#0FEH
PLAY:MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
CPL A ;理解这句
MOV P0,A
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.5,ENDOUT
RL A
MOV R5,A
AJMP PLAY
RET
ENDOUT: SETB P2.5
MOV P0,#0FFH
RET
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;
DL1MS:MOV R6,#14H
DL1:MOV R7,#19H
DL2:DJNZ R7,DL2
DJNZ R6 ,DL1
RET
END