已知某单片机系统的晶振频率为6MHz ,NOP指令为单周期指令,DJNZ为双周期指令,用汇编语言编写一个单循环定时程序,实现1毫秒(循环体)的定时。
ORG 0x0000 ; 程序起始地址
DELAY:
MOV R1, #6 ; 设置循环计数器的初始值为6
LOOP:
MOV R0, #250 ; 设置内部循环计数器的初始值为250
DELAY_LOOP:
NOP ; 空操作指令,消耗一个周期
DJNZ R0, DELAY_LOOP ; 内部循环计数器减一,并检查是否为零,若不为零则跳转到DELAY_LOOP
DJNZ R1, LOOP ; 外部循环计数器减一,并检查是否为零,若不为零则跳转到LOOP
RET ; 程序返回
END ; 程序结束