关于定时器微秒的问题

rotApple 2011-09-08 12:25:27
delay:
push ax

xor ax,ax
delay_lp:
in al,61h
and al,10h
cmp al,ah
je delay_lp
mov ah,al
loop delay_lp

pop ax

ret


这是我在网上抄的。
说参数CX为15.08微秒的倍数。0.5秒就是33144
但是我怎么算以15.08为倍数0.5秒是7540000
但是7540000是73D020,CX放不下,怎么办?
...全文
128 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rotApple 2011-09-08
  • 打赏
  • 举报
回复
我后来是用的dx和ax传递
然后
sub ax,1
sbb dx,0
rotApple 2011-09-08
  • 打赏
  • 举报
回复
好的, 谢谢了。
zara 2011-09-08
  • 打赏
  • 举报
回复
如果说的是正确的,你计算有误吧。CX 为 15.08 微秒的倍数,即 CX=1 时,是 15.08 微秒。0.5 秒时,CX 该是多少?CX = 0.5(s)x1,000,000(us/s)/15.08(us)=33156 。你的 7540000 怎么得来的?0.5x15.08x1,000,000?单位也不对啊。
如果结果在 CX 里真的放不下,可以用多重循环。就如你这个 7540000,可以外循环 1000,里循环 7540;这样总的循环次数就是 7540000 了。当然,也可以是其它的组合,只要总的循环次数达到要求即可。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧