看板 ASM 關於我們 聯絡資訊
ORG 0H L3: MOV R5,#3 DJNZ R5,L2 L1: SJMP L1 L2: SJMP L3 END 寫了一個很簡單的程式 但是現在有一個問題 我R5一開始給3 執行完第二行R5-1 變成2 這時候他不是應該執行第三行(L1這邊) 然後就L1一直跑 所以R5會一直停在2 問題來了 為什麼不會執行第三行(L1那行) 而會跳到L2標籤然後SJMP到L3 所以又從頭R5又變成3 就是不會再L1標籤那一直跑 DJNZ不是當R5變成0他才會跳到L2 可是現在R5應該是2 為什麼會跳到L2 組譯沒有錯 哪位大大可以跟我說一下為什麼嗎?? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.171.45
ck1362:DJNZ是-1之後判斷是否為零,是的話就往下執行 05/26 19:43
ck1362:否的話就跳到標籤,因此DJNZ R5,L2,如果R5不為零 05/26 19:45
ck1362:跳到L2是對的 05/26 19:45
BlueRurutia:OK了= = 感謝 剛學不久把DJNZ記錯了 05/26 20:15