作者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