+ -
当前位置:首页 → 问答吧 → 汇编中如何实现相当于Sleep函数的功能?

汇编中如何实现相当于Sleep函数的功能?

时间:2010-05-01

来源:互联网

如题!

作者: wuyuan563   发布时间: 2010-05-01

_sleep proc
delay: push ax
push dx
mov dx,1000h ;;循化10000000h次,读者可根据CPU速度自行调解循化次数.
mov ax,0
s1: sub ax,1
sbb dx,0
cmp ax,0
jne s1
cmp dx,0 
jne s1
pop dx
pop ax
ret
_sleep endp

引子王爽<<汇编语言>>第二版 p227的一段程序

作者: redher   发布时间: 2010-05-01

dos下可以调用定时器中断,win32中可以调用Sleep API。

作者: mydo   发布时间: 2010-05-01

引用 2 楼 mydo 的回复:

dos下可以调用定时器中断


是需要重写08h中断吗?
没找到这个中断的具体说明.
侯兄给我们扫扫盲吧.

另外在百度dos帖吧看见一个这样用的

Assembly code

goto make

A100
mov ah, 0
int 1a
add dx, 0f
mov bx, dx
int 1a
cmp dx, bx
JB 109
int 20

RCX
11
NC:\sleep.com
WCS:100
Q

:make
DEBUG<sleep.bat

把以上代码保存为sleep.bat,直接点击,会在C盘下生成一个sleep.com的小文件。

然后再cmd下输入一串命令试验一下:
for /l %i in (0,1,9) do ( color %i & sleep)



感觉也是在循环.

作者: redher   发布时间: 2010-05-01

这个帖子看到的太晚了,但还要喷一下我的思路,首先配置定时器间隔为一个合适的值这个值是活动可变的,然后执行hlt指令使CPU停机等待时钟中断后继续执行

作者: jilianglijie   发布时间: 2011-11-18

热门下载

更多