DJNZ指令的执行过程是这样的,它将其后面的第一个参数中的值减1,然后看一下,这个值是否等于0,如果等于0,就往下执行,如果不等于0,就转到第二个参数所指定的地方去。
那么51网老师讲的是
执行完了DJNZ R6,D2之后(也就是R6的值等于0之后),就会去执行下面一行,也就是DJNZ R7,D1,请大家自行分析一下这句话执行的结果。(转去执行MOV R6,#250,同时R7中的值减1),最终DJNZ R6,D2这句话将被执行250*250=62500次,执行这么多次同一条指令干吗?就是为了延时。
我觉得:当R6的值为1之后,就会执行下一行了,并且DJNZ R6,D2只执行了249次。
请大家帮忙解答一下,好困惑啊
[此贴子已经被admin于2008-8-9 0:34:40编辑过]
|