作者BlueRurutia (嚕嚕替雅)
看板ASM
標題[問題] 8051問題??
時間Mon May 26 19:04:13 2008
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
1F:推 ck1362:DJNZ是-1之後判斷是否為零,是的話就往下執行 05/26 19:43
2F:→ ck1362:否的話就跳到標籤,因此DJNZ R5,L2,如果R5不為零 05/26 19:45
3F:→ ck1362:跳到L2是對的 05/26 19:45
4F:→ BlueRurutia:OK了= = 感謝 剛學不久把DJNZ記錯了 05/26 20:15