DEALY:MOV R2,#02DEALY:\x05MOV\x05R2,#02LOOP1:\x05MOV\x05R3,#250LOOP2:\x05MOV\x05R4,#250LOOP3:\x05NOP\x05\x05NOP\x05\x05DJNZ\x05R4,LOOP3\x05\x05DJNZ R3,LOOP2\x05\x05DJNZ R2,LOOP1\x05\x05RET\x05\x05END晶振为12MHZ,求延时时间,

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 19:56:58

DEALY:MOV R2,#02DEALY:\x05MOV\x05R2,#02LOOP1:\x05MOV\x05R3,#250LOOP2:\x05MOV\x05R4,#250LOOP3:\x05NOP\x05\x05NOP\x05\x05DJNZ\x05R4,LOOP3\x05\x05DJNZ R3,LOOP2\x05\x05DJNZ R2,LOOP1\x05\x05RET\x05\x05END晶振为12MHZ,求延时时间,
DEALY:MOV R2,#02
DEALY:\x05MOV\x05R2,#02
LOOP1:\x05MOV\x05R3,#250
LOOP2:\x05MOV\x05R4,#250
LOOP3:\x05NOP
\x05\x05NOP
\x05\x05DJNZ\x05R4,LOOP3
\x05\x05DJNZ R3,LOOP2
\x05\x05DJNZ R2,LOOP1
\x05\x05RET
\x05\x05END
晶振为12MHZ,求延时时间,

DEALY:MOV R2,#02DEALY:\x05MOV\x05R2,#02LOOP1:\x05MOV\x05R3,#250LOOP2:\x05MOV\x05R4,#250LOOP3:\x05NOP\x05\x05NOP\x05\x05DJNZ\x05R4,LOOP3\x05\x05DJNZ R3,LOOP2\x05\x05DJNZ R2,LOOP1\x05\x05RET\x05\x05END晶振为12MHZ,求延时时间,
DEALY:\x09MOV\x09R2,#02 //R2=2
LOOP1:\x09MOV\x09R3,#250 //R3=250
LOOP2:\x09MOV\x09R4,#250 //R4=250
LOOP3:\x09NOP //空操作
\x09\x09NOP
\x09\x09DJNZ\x09R4,LOOP3 //R4减去1等于0吗?不等于转到LOOP3,所以这个程序会执行250次
\x09\x09DJNZ R3,LOOP2 //R4 减1不等于0转到LOOP 2 重新给R4赋值250
然后继续执行LOOP3 所以DJNZ\x09R4,LOOP3 会再次执行250次 一直执行250*250次
\x09\x09DJNZ R2,LOO1 //R2-1不等于0跳转到1
\x09\x09RET
\x09\x09END
所以这段程序执行了是2*250*250=125000次.延时时间为0.125S,因为DJNZ为双周期指令所以0.125*2=0.25S延时