8086延时子程序(8086延时程序)
如果有更好的建议或者想看更多关于综合百科技术大全及相关资讯,可以多多关注茶馆百科网。

各位好,很多人不知道8086延时子程序(8086延时程序)。下面详细解释一下。现在让我们来看看!
1.8086如何实现装配延迟
;这个程序通过编译正确运行。
代码段
假设CS:Code,DS:Code
;-
;子例程延迟指定的时钟周期数。
;入口:
;Didas=时钟滴答声(大约1秒18.2滴答声,10秒182滴答声)。如果延迟不是秒的10倍,误差稍大)
延迟前进接近
推送dx
推送cx
异或ax,ax
int1ah
电影cs:时代,dx
movcs:Times[2],cx
Read_Time:异或ax,ax
int1ah
子dx,cs:次
sbbcx,cs:Times[2]
cmpdx,Didas
jb读取时间
流行cx
流行dx
浸水使柔软
乘以dw0,0
延迟结束
;-
迪达斯equ182延迟10秒钟
开始:通话延迟;这个延迟子程序与CPU速度无关。它是普遍的。
Exit_Proc:movah,4ch结束程序
int21h
代码结束
结束开始;编译到此结束。
2.跪求8086/8088系统的汇编程序延迟子程序一秒。
默认的时间中断是每秒18.2次。如果要求不准确,将使用18个时钟中断来延迟一秒钟。
该计数器存储在地址0:46c。你可以看看这个,然后加18比较一下。代码如下:
移动轴,0
移动ds,ax
movsi,46ch
lodsw
添加ax,18
movcx,ax
位置1:
movsi,46ch
lodsw
cmpax,cx
jnb位置_2
jmp位置_1
位置2:
如果要求非常精确,就需要直接对定时器编程,通过端口操作来实现。
3.8086如何实现装配延迟
;这个程序通过编译正确运行。
代码段
假设CS:Code,DS:Code
;-
;子例程延迟指定的时钟周期数。
;入口:
;Didas=时钟滴答声(大约1秒18.2滴答声,10秒182滴答声)。如果延迟不是秒的10倍,误差稍大)
延迟前进接近
推送dx
推送cx
异或ax,ax
int1ah
电影cs:时代,dx
movcs:Times[2],cx
Read_Time:异或ax,ax
int1ah
子dx,cs:次
sbbcx,cs:Times[2]
cmpdx,Didas
jb读取时间
流行cx
流行dx
浸水使柔软
乘以dw0,0
延迟结束
;-
迪达斯equ182延迟10秒钟
开始:通话延迟;这个延迟子程序与CPU速度无关。它是普遍的。
Exit_Proc:movah,4ch结束程序
int21h
代码结束
结束开始;编译到此结束。
4.用汇编语言编译一个延时1000个指令周期的子程序。
如果你想写一个延时子程序,不要用定时器。
也不要用C语言,因为C语言的执行时间不确定。
汇编语言最简单,最准确。
51单片机的程序如下:
DL1000:
MOVR7,编号248
DJNZR7美元
MOVR7,250号
DJNZR7美元
浸水使柔软
正好1000个机器周期。
R7为8位寄存器,最大值为255,不能直接存储在500中。
以上解释了8086延时子程序(8086延时程序)。这篇文章已经分享到这里了。希望能帮到大家。
本文主要介绍了关于8086延时子程序(8086延时程序)的相关养殖或种植技术,综合百科栏目还介绍了该行业生产经营方式及经营管理,关注综合百科发展动向,注重系统性、科学性、实用性和先进性,内容全面新颖、重点突出、通俗易懂,全面给您讲解综合百科技术怎么管理的要点,是您综合百科致富的点金石。
以上文章来自互联网,不代表本人立场,如需删除,请注明该网址:http://23.234.50.4:8411/article/198713.html