作业帮 > 综合 > 作业

DEALY:MOV R2,#02

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 05:52:03
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:\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延时