| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 576 人关注过本帖
标题:很久没来了.发个简单的进度条模拟程序.
收藏  订阅  推荐  打印 
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30
很久没来了.发个简单的进度条模拟程序.

#include <stdio.h>
void pause(int time);
int main(void)
{
        int i;
        printf("=");
        for(i=0; i<58; i++)
        {
                printf("|");
                pause(3);
                printf("\b/");
                pause(3);
                printf("\b\\");
                pause(3);
                printf("\b=");
        }
        getchar();
        return 0;
}

void pause(int time)
{
        asm mov ah,0h;
        asm int 1ah;
        asm add dx,time;
        asm mov bx,dx;
label:
        asm int 1ah;
        asm cmp bx,dx;
        asm jne label;
}

在borlandc编译通过...
搜索更多相关主题的帖子: 模拟程序  进度  
2007-12-21 17:50
岳C

等级:禁止发言
帖子:354
积分:3722
注册:2007-7-16
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-12-21 17:55
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4128
积分:44851
注册:2006-12-28

楼主高人啊.可以说明一下吗?汇编的代码vc++里面可以直截写进去吗?
2007-12-21 18:10
灭火的风
Rank: 2
来自:杭州
等级:注册会员
帖子:150
积分:1714
注册:2006-6-15

vc里也可以插入汇编,不过这个程序用VC的话犯不着内联汇编,包含一个头文件<windows.h>用一个API函数就可以实现暂停效果。
void pause(int time)
{
    Sleep(time);
}
2007-12-21 18:39
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

vc的内联汇编格式我忘记了.你网上找找,应该差不多的.
我机器也没装有vc.
这只是调用了bios的1ah中断
功能描述:读取时钟“滴答”计数
入口参数:AH=00H
出口参数:AL=00H——未过午夜,否则,表示已过午夜
CX:DX=时钟“滴答”计数
void pause(int time)
{
        asm mov ah,0h;     调用1ah的0号功能,读取时钟“滴答”计数
        asm int 1ah;           调用1ah中断服务
        asm add dx,time;  在当前时钟滴答加上time滴答,一个滴答=55ms(毫秒)
        asm mov bx,dx;      把dx放到bx.因为后面dx的值会被刷新
label:                                这个不用说了吧,标签来的
        asm int 1ah;          再调用1ah中断服务
        asm cmp bx,dx;    用bx的滴答数和当前dx的滴答比较
        asm jne label;      jne是不等时跳转,就是说cmp bx,dx 如果两者不等就跳转
}

[[italic] 本帖最后由 ioriliao 于 2007-12-21 18:53 编辑 [/italic]]
2007-12-21 18:49
灭火的风
Rank: 2
来自:杭州
等级:注册会员
帖子:150
积分:1714
注册:2006-6-15

呵呵,用了一个系统中断哦
2007-12-21 18:59
leeco
Rank: 4
等级:高级会员
威望:8
帖子:870
积分:9662
注册:2007-5-10
回复 5# 的帖子

这样做没有任何好处吧,只会占用CPU。
2007-12-21 19:37
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

对,只调用了一个bios中断.有些中断在windows系统下禁使用,我在找有关如何取得windowsxp的0级特权.
各位朋友如果谁有的请发我一份:ioriliao.tom.com
2007-12-21 19:39
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047819 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved