Page 62 -
P. 62

;                00H         ;規避 00H 至 2FH 間之中斷向量執行位址
           ORG   START       ;
           JMP   30H         ;將堆疊指標重新指向
           ORG   SP,#30H
           MOV   A,#00       ;輸出資料至埠 3
                 P3,A        ;呼叫 0.2 秒延遲副程式
START: MOV       DELAY       ;輸出資料至埠 2
           MOV   P2,A        ;呼叫 0.2 秒延遲副程式
           CALL  DELAY       ;輸出資料至埠 1
           MOV   P1,A        ;呼叫 0.2 秒延遲副程式
           CALL  DELAY       ;輸出資料至埠 0
           MOV   P0,A        ;呼叫 0.2 秒延遲副程式
           CALL  DELAY       ;載入資料 DAT 之位址至資料指標暫存器 DPTR 中
           MOV   DPTR,#DAT
           CALL  A,#0        ;載入 DPTR 所指位址之資料至累積器 A 中
                 A,@A+DPTR   ;輸出資料至埠 0
LOOP: MOV        P0,A        ;呼叫 0.2 秒延遲副程式
RT0: MOV         DELAY       ;將 DPTR 加 1, 即用於指向下一筆資料
                 DPTR        ;比較 A 是否為值 FFH, 若否則跳回 RT0 重新執行
           MOVC  A,#FFH,RT0
           MOV   A,#0        ;載入 DPTR 所指位址之資料至累積器 A 中
           CALL  A,@A+DPTR
           INC   P1,A        ;載入 DPTR 所指位址之資料至累積器 A 中
           CJNE  DELAY
RT1: MOV         DPTR        ;載入 DPTR 所指位址之資料至累積器 A 中
           MOVC  A,#FFH,RT1
           MOV   A,#0
           CALL  A,@A+DPTR
           INC   P2,A
           CJNE  DELAY
RT2: MOV         DPTR
           MOVC  A,#FFH,RT2
           MOV   A,#0
           CALL  A,@A+DPTR
           INC   P3,A
           CJNE  DELAY
RT3: MOV         DPTR
           MOVC
           MOV
           CALL
           INC
   57   58   59   60   61   62   63   64   65   66   67