终于狠下决心要学习单片机了.
买了两套经典教材
首先是<平凡的单片机教程>的作者周坚出的<单片机轻松入门>
然后是<例说8051>,在卓越订了,一共是48元包邮,我觉得如果这48块钱能够让
教会我单片机的知识的话,那是太值了.以前都在网上下电子书,呵呵.现在我觉得
有本纸质的书,会更有感觉.随时随地都可以看.不用整天坐在电脑前.
有点扯远了.其实我是来问问题D,呵呵
粗略地看了两本.周坚的比<例说8051>更适合我.主要是前者更自然,更基础一些.
本来我是看好<例说8051>的,甚至是先看它的,看了一两章,觉得还是有挺多东西要先背
下来,呵呵..而且它里面写程序没有用KEIL集成环境,还手动连接,,,而周坚的就是教KEIL,
光盘还带有软件模拟开发版(就是一些DLL),再有就是读他的书,你会发现他真是很细心.
几乎每个细节都照面到了.程序的解读,应该说是尽量照顾到新手了,甚至是假定你是一个从来没有接触
过单片机,从来没有接过编程的人来作为对象的....
再次回归到主题,如果你也和我一样买了周坚的教程(第二版的,非C语言版本),可以番到
第21页.程序如下...
;以下是延时子程序
DELAY: MOV R7,#250 ;(6)
D1: MOV R6,#250 ;(7)
D2: DJNZ R6,D2 ;(8)
DJNZ R7,D1 ;(9)
RET ;(10)
END ;(11)
由于我是汇编新手,所以很依赖书中的程序解读.这点跟一个盲人很相似,呵呵
而且我天生疑心较重.对于书中的解释,我觉得不太清楚.在这里确认下,请大家帮我
鉴定下,我的理解是不是正确的.
由于第(7)句把250送入到寄存器R6,所以R6装载的是250,
第(8)句,DJNZ,将R6里面的数减1,R6变成240,比较下是否等于0,如果等于0,执行第(9)句,如果不等于0,则执行 D2,
我的疑问是,DJNZ是否会把R6里面的数减1,并把结果再次存入到R6?
请鉴定下我这个理解是否正确? |