DELAY:MOV A,#0A6H ;A= 0a6H
LOOP:DEC ;A=A-1
JNZ LOOP ;如果A=0;则下一句,否则跳到 LOOP:
DJNE R0,DELAY ;R0=R0-1; 如果R0=0,执行下一句,否则跳到DELAY:
RET ;退出子程序
我认为是个延时程序,而不是定时器程序
DEC 后面不跟操作数也可以???
上面的几位大哥都没提出疑问,莫不是汇编也有默认参数??
DEC 难道相当于 DEC A ?编译时不会出错?
晕了……你们啊……
再说为什么要用DEC A…… JNZ……组合?总觉得怪怪的。
MOV R1, #0A6H
DJNZ R1,$
不是更清楚更有效?
延时子程序开始
送立即数0a6h给a
子程序减1
判断其是否等于0
若等于则顺序
否则返会
判断r0-1是否为0
为则顺序
否则 返回
返回主程序
倒数第二行是djnz
not
djne
ok
同意是延时程序不是定时器程序。