| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1605 人关注过本帖
标题:很久没来了.发个简单的进度条模拟程序.
只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏
 问题点数:0 回复次数:7 
很久没来了.发个简单的进度条模拟程序.
#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
Rank: 1
等 级:禁止发言
帖 子:354
专家分:0
注 册:2007-7-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-12-21 17:55
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼主高人啊.可以说明一下吗?汇编的代码vc++里面可以直截写进去吗?
2007-12-21 18:10
灭火的风
Rank: 2
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
vc里也可以插入汇编,不过这个程序用VC的话犯不着内联汇编,包含一个头文件<windows.h>用一个API函数就可以实现暂停效果。
void pause(int time)
{
    Sleep(time);
}
2007-12-21 18:39
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
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
来 自:杭州
等 级:论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
收藏
得分:0 
呵呵,用了一个系统中断哦
2007-12-21 18:59
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
回复 5# 的帖子
这样做没有任何好处吧,只会占用CPU。
2007-12-21 19:37
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
对,只调用了一个bios中断.有些中断在windows系统下禁使用,我在找有关如何取得windowsxp的0级特权.
各位朋友如果谁有的请发我一份:ioriliao.
2007-12-21 19:39
快速回复:很久没来了.发个简单的进度条模拟程序.
数据加载中...
 
   



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

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