我问的是微机里面的。
为什么用LOOP指令可以呢?反复的循环就可以让时间等待,可是怎么确保时间的精确性,比如只想等待5秒钟。或5毫秒。
loop指令就是循环做一件事,就像要求你从宿舍到教室,但必须绕操场跑10圈才能进教室,跑10圈得时间就是你延时的时间。比如:
MOV CX,16EAH
DELAY:LOOP DELAY
.......这两条指令就实现了延时,LOOP指令是根据CX的值循环执行,执行一次,CX自动减1,只要CX不为0,就继续执行,知道CX=0,就跳出循环往下继续执行。延时时间和CUP的时钟频率有关。LOOP指令占5个时钟周期,可根据时钟频率计算。像对于8086CPU来说,它的频率是5MHz,时钟周期200ns。(根据时钟周期计算CX的值)
不过LOOP一般只是用来示意性的延时,很少用来准确延时。如果要精确延时的话,最好用中断。