相关疑难解决方法(0)

如何在16位MASM Assembly x86中创建睡眠功能?

我试图在16位MASM Assembly x86中创建一个睡眠/延迟程序,比如说,每500毫秒在屏幕上打印一个字符.从我所做的研究来看,似乎有三种方法可以实现这一点 - 我想使用一个使用CPU时钟滴答的方法.

请注意我在Mac OS X Snow Leopard上通过VMWare Fusion运行Windows XP - 我不确定这是否会影响任何内容.

有人可以指出我正确的方向,或提供一个我可以调整的工作代码吗?谢谢!

我发现的代码应该每秒在屏幕上打印'A',但不起作用(我还是想用毫秒).

TOP:
MOV AH,2C
INT 21
MOV BH,DH  ; DH has current second
GETSEC:      ; Loops until the current second is not equal to the last, in BH
MOV AH,2C
INT 21
CMP BH,DH  ; Here is the comparison to exit the loop and print 'A'
JNE PRINTA
JMP GETSEC
PRINTA:
MOV AH,02
MOV DL,41
INT 21
JMP TOP
Run Code Online (Sandbox Code Playgroud)

编辑:按照GJ的建议,这是一个工作程序.打电话吧

DELAY PROC
 TIMER:
 MOV     AH, …
Run Code Online (Sandbox Code Playgroud)

windows assembly sleep

10
推荐指数
3
解决办法
1万
查看次数

标签 统计

assembly ×1

sleep ×1

windows ×1