8086下求汇编语言延时3秒的代码

8086下求汇编语言延时3秒的代码,第1张

MOV AX,5FFFH可修改0000~0FFFFH之内 越大延时越高

REP2:

MOV CX,5FFFH

REP10MS:

LOOP REP10MS

DEC AXAX-1->AX

CMP AX,0H比较AX和0的大小

JNE REP2AX不等于0则跳转到 REP2

就是机器没执行一条指令要170ns,数字仅供参考

让循环重复执行5FFF*5FFF次,达到秒级 具体的要自己调试

用IO指令,但是你得先做试验。

比如IO给软盘寻址,会有很明显的时间延迟。

没有软盘没关系的,IO寻址不存在什么错误不错误的,因为是否错误是要编程者自己去判定的,你不需要理他,只需要试验下时间有多久就可以了。

默认的时间中断是每秒产生18.2次,如果要求不精确,就用18次时钟中断来延时一秒。

地址0:46c存放的就是这个计数器,可以读取这个,然后加上18,比较就可以实现。代码如下:

mov ax,0

mov ds,ax

mov si,46ch

lodsw

add ax,18

mov cx,ax

loc_1:

mov si,46ch

lodsw

cmp ax,cx

jnb loc_2

jmp loc_1

loc_2:

如果要求非常精确,那就要直接对定时器进行编程,通过端口 *** 作来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/10998914.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-12
下一篇2023-05-12

发表评论

登录后才能评论

评论列表(0条)

    保存