求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

Djnz檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
  Djnz

DJNZ RN,REL 是一條件轉移指令,先將工作寄存器Rn中的數減「1」,判斷結果是否為「0」,不為「0」程序就跳轉到行標為REL的地方執行,否則,為「0」就不轉移,繼續執行下一條指令。

簡介

此指令是將操作數的內容減1,然後判斷操作數的結果,若操作數為零,則順序執行程序,不為零則程序轉移。根據DJNZ指令的功能:每執行一次DJNZ RO, IDATALOOP就將R0的值減1,若R0的值不為0則就跳到IDATALOOP地址去。DJNZ指令有兩種格式:DJNZ Rn,rel和DJNZ direct,rel,前者為雙字節指令,其中第二個字節存儲rel的相對地址,範圍是-128~+127,所以轉移範圍很窄,所以轉移的位置為指令的當前PC值加上rel;第二條指令的第三個字節也是存儲rel的,和第一條指令的轉移方式相同,都是PC+rel。

評價

在單片機中,DJNZ指令的具體功能是使操作數的內容減1,並判斷操作數是否等於0,如果不等於0,則跳轉至標號處,如果等於0,則順序往下執行。利用DJNZ指令,可以進行有條件的程序轉移,也可控制程序執行的次數,廣泛用於進行延長時間的設計。「DJNZ」指令經常被用在循環程序中,利用將寄存器中的值減1不為零跳到相對地址的標號處,實現某一部分指令的重複執行,從而達到延長時間的目的。[1]

參考文獻

  1. Djnz搜狗