PUSH PSW
PUSH DPH
PUSH DPL ;保護 ACC、 PSW 、 DPTR 內容
CLR EA ;關中斷
MOV A,#40H
MOV DPTR,#5FFFH
MOVX @DPTR,A ;將#40H送5FFFH
MOV DPTR,#5EFFH
MOVX A,@DPTR
MOV 35H,A ;從5EFFH取數據,送入35H
MOV B,#10
SUBB A,B ;從上數中減去10
JC DDD ;如不夠減轉到標號DDD
CLR A ;ACC清零
AJMP EEE ;跳轉到EEE
DDD: MOV A,35H ;從35H取數送ACC
EEE: MOV 3EH,3DH ;從3DH取數送3EH
MOV 3DH,3CH ;(以下類同,略)
MOV 3CH,3BH
MOV 3BH,3AH
MOV 3AH,39H
MOV 39H,A
SETB SIGN ;將SIGN置1
SETB EA ;開中斷
POP DPL
POP DPH
POP PSW
POP ACC ; 恢復ACC、 PSW 、 DPTR 內容
RETI ;中斷返回
;*******DISPLAY***********
DISP: MOV 55H,DPH
MOV 56H,DPL ;將DPTR內容送55H56H
MOV A,#92H
MOV DPTR,#5FFFH
MOVX @DPTR,A ;將#92H送5FFFH
MOV R4,#06H
MOV R0,#39H
BBB: MOV DPTR,#CHART ;取字形表首地址
MOV A,@R0
MOV B,#09H
SUBB A,B ;從39H中的數中減去9
JC FFF ;不夠減轉FFF
CLR A ;ACC置0
LJMP HHH ;轉HHH
FFF: MOV A,@R0
HHH: MOVC A,@A+DPTR ;以39H中內容為偏移量取字形碼
MOV DPTR,#5EFFH
MOVX @DPTR,A ;送5EFFH顯示
INC R0 ;指向下壹字形
DJNZ R4,BBB ;沒送完6位,轉BBB
SETB EA ;開中斷
MOV DPH,55H
MOV DPL,56H ;恢復DPTR
RET ;返回
CHART: DB 0C0H,0F9H,0A4H,0B0H,99H ;字形表
DB 92H,82H,0F8H,80H,90H,88H
DB 83H,0C6H,0A1H,86H
END