| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 479 人关注过本帖
标题:一段代码,大家看看怎么改一下
只看楼主 加入收藏
qiuchen
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-16
收藏
 问题点数:0 回复次数:4 
一段代码,大家看看怎么改一下
这是一段俄罗斯方块的代码
是等待下一方块出现的模块
由于用到了Int15h 所以在Win2000/XP中的模拟16位环境并不真实,不支持15h的延时中断,导致速度过快.
大家有没有什么办法这个问题改掉 最好能用int21 多谢了
@wait: call @dispb ;显示当前新方块
push cx ;进入等待状态
xor cx,cx ;cx=等待时间(微秒)低字
mov dx,1000 ;dx=等待时间(微秒)高字
mov ah,86h
int 15h ;等待
pop cx ;退出等待状态
搜索更多相关主题的帖子: 代码 
2006-12-11 13:49
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 

可以参考

[URL=http://bbs.bc-cn.net/viewthread.php?tid=85580]http://bbs.bc-cn.net/viewthread.php?tid=85580[/URL]
打字练习

2006-12-11 15:14
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 

用CX循环执行已经是最简了,不过用不着INT 15H和INT 21H吧;
例如:
MOV CX,2801
LOOP $
这样可以延时大约10ms,如果再进行循环嵌套的话,就可以变成要延时的时间啦


我是金子,我要闪光的
2006-12-11 20:08
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
3楼的方法延时时间可能会因CPU的不同而不同吧?不过对延时时间精确度要求不高的应用应该是可以的。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2006-12-11 20:14
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 

嗯,具体得参照CPU的时钟频率


我是金子,我要闪光的
2006-12-11 20:30
快速回复:一段代码,大家看看怎么改一下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019547 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved