51单片机汇编语言--延时程序的延时时间

请高手帮我分析以下延时程序所占的时钟周期。

提问时间:| 2011-4-22 23:36

求解释:

DELAY:  MOV  R6, #13
DELAY1: MOV  R5, #250
DELAY2: NOP
        DJNZ  R5, DELAY2
        DJNZ  R6, DELAY1
        RET

问题补充:晶振为12MHz,机器周期即是1us。
;-----------------------------------------------------
最佳答案:


DELAY:  MOV  R6,#13     ;1
DELAY1: MOV  R5,#250    ;1
DELAY2: NOP              ;1
        DJNZ  R5,DELAY2 ;2      250 * (1 + 2) = 750
        DJNZ  R6,DELAY1 ;2      13 * (1 + 750 + 2) = 9789
        RET              ;2      1 + 9789 + 2 = 9792

加上调用指令,共用 9794 个机器周期。

当晶振频率为 12MHz,则延时时间为 9794 us。
;-----------------------------------------------------
回答时间:2011-4-23 13:01
回答者: 做而论道 | 十四级 采纳率:43% 名人 达人
提问者对于答案的评价:够详细!!
原题网址:http://zhidao.baidu.com/question/256771736.html
;-----------------------------------------------------

你可能感兴趣的:(51汇编语言)