汇编语言中,怎么实现等待功能?

比如等待5秒后,程序继续执行。

不知道你是说的单片机里的还是微机原理的,两种情况指令不同。
微机原理的就用LOOP指令就可以了。
我给一个单片机的子程序吧,直接调用就行了,修改#后面的数就能修改延时时间了,不够的话可以再加一层D3:。。。。。
DELAY:MOV R0,#65H
D2: MOV R1,#65H
D1: DJNZ R1,D1
DJNZ R0,D2
RET追问

我问的是微机里面的。

为什么用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一般只是用来示意性的延时,很少用来准确延时。如果要精确延时的话,最好用中断。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-18
延迟程序吧,如果是程序等待五秒并且无需操作自动运行,只需要你写个延迟程序
比如
delay proc
mov cx,0ffffh
loop $
ret
delay endp本回答被网友采纳
第2个回答  2011-03-18
就是延时5秒啊