8051的時間計算+20

8051計算1秒

DELAY: MOV R5,#10

D1: MOV R6,#200

D2: MOV R7,#250

DJNZ R7,$

DJNZ R6,#D2

DJNZ R5,#D1

RET

可以一行一行解釋嗎??

那個 $ 是什麼意思??

還有 RET 是什麼意思??

1 Answer

Rating
  • ?
    Lv 5
    1 decade ago
    Favorite Answer

    DELAY: MOV R5,#10 ;暫存器R5放入10數值

    D1: MOV R6,#200 ;暫存器R6放入200數值

    D2: MOV R7,#250 ;暫存器R7放入250數值

    DJNZ R7,$ ; R7暫存器內部的數值減一結果不等於0跳到 原位置繼續減一, ;等於0執行下面指令($ 跳到 原位置,)

    DJNZ R6,D2 ; R6暫存器內部的數值減一結果不等於0 跳,到D2位置, 等於0執行下面指令

    DJNZ R5,D1 ; R5暫存器內部的數值減一結果不等於0跳D1位置, 等於0執行下面指令

    RET ;返回呼叫的程式, 這是延遲副程式,當程式呼叫 CALL DELAY 就會跳到這裡執行延遲副程式,RET返回原程式

    D3: DJNZ R7,D3 ; DJNZ R7,$是相同

Still have questions? Get your answers by asking now.