标题:看看你C语言是什么级别
只看楼主
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
 问题点数:0 回复次数:69 
看看你C语言是什么级别
要C是吧,就C个切底咯。条件是不允许你调用任何的函数库,函数库不是C语言必要的一部分,看你能C到什么地方?
连最简单的hello world输出都艰难是吧。
搜索更多相关主题的帖子: C语言 级别 
2010-10-22 13:32
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
你就算了吧、、、

我就是真命天子,顺我者生,逆我者死!
2010-10-22 13:43
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
你C语言不是很厉害吗?不调用任何函数库输出个SB给我看看啊。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-10-22 13:46
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:0 
程序代码:
void prints(char*);
void print(char*);
void crlf();

int main()
{
    char s[]="hello world!$";
    prints(s);
    crlf();
    print(s);
    getch();
    return 0;
}

void crlf()
{
    asm mov dl,0dh
    asm mov ah,2h
    asm int 21h
    asm mov dl,0ah
    asm int 21h
}

void prints(char* s)
{
    asm mov dx,s
    asm mov ah,9
    asm int 21h
}

void print(char* s)
{
    asm mov si,s
    asm mov ah,2
print1:
    asm lodsb
    asm or al,al
    asm jz over
    asm mov dl,al
    asm int 21h
    asm jmp print1
over:
    asm mov ah,3
    asm int 10h
    asm dec dl
    asm mov ah,2
    asm int 10h
    asm mov al,20h
    asm mov cx,1
    asm mov ah,0ah
    asm int 10h
}
tc编译,应该用堆栈传递的,有点长,算了
2010-10-22 14:38
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
回复 4楼 xiaomarn
看到了吧,这是汇编+C语言。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-10-22 14:47
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
程序代码:
#define BLACK        0  //黑色
#define BLUE         1  //蓝色
#define GREEN        2  //绿色
#define CYAN         3  //青色
#define Red          4  //红色
#define MAGENTA      5  //洋红色
#define BROWN        6  //褐色
#define LIGHTGRAY    7  //高亮灰色
#define DARKGRAY     8  //灰色
#define LIGHTBLUE    9  //高亮蓝色
#define LIGHTGREEN   10 //高亮绿色
#define LIGHTCYAN    11 //高亮青色
#define LIGHTRED     12 //高亮红色
#define LIGHTMAGENTA 13 //高亮洋红色
#define YELLOW       14 //黄色
#define WHITE        15 //白色
#define BLINK        16
void print(char* String,int Color)
{
    char far* screen_address=(char far*)0xB8000000;
    while(*String)
    {
        *screen_address=*String;
        screen_address++;
        *screen_address=Color;
        String++;
        screen_address++
    }
}
int main(void)
{
    print("hello world",GREEN);
    return 0;
}

我以前写了个直接读显存的。原文地址:https://bbs.bccn.net/viewthread.php?tid=220406&highlight=%2Bioriliao
BC编译。



[ 本帖最后由 ioriliao 于 2010-10-22 14:55 编辑 ]

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-10-22 14:53
abc3210cba
Rank: 2
等 级:论坛游民
帖 子:63
专家分:97
注 册:2010-9-26
得分:0 
真怀疑是你写的还是哪里抄的,回复的怎么少了一段,骂你的那段怎么不见了。(2008-6-21 15:13:37 )炫耀到现在,这两年多来,还在沉浸在那段代码的沾沾自喜中啊?


[ 本帖最后由 abc3210cba 于 2010-10-22 18:24 编辑 ]
2010-10-22 15:02
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
得分:0 
回复 7楼 abc3210cba
看来你是误闯白虎堂了,看在静老大的面上就算了。

[ 本帖最后由 ioriliao 于 2010-10-22 16:54 编辑 ]

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-10-22 15:08
wujieru
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:1108
专家分:1939
注 册:2010-10-9
得分:0 
又来了
2010-10-22 17:29
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
得分:0 
int main()
{
    char s[]="hello world!";

    asm mov dx,offset d@            ;d@这个符号在c伴随生成的asm文件中找到,指向数据段首
    asm mov bx,1
    asm mov ah,40h
    asm mov cx,12
    asm int 21h
    getch();
    return 0;
}
晕,在主函数中定义的数组s,竟然被c用了一大段代码,最后用一个集成在编译器中的SCOPY@给移到数据段了,
不然整个函数定义个数组就能输出了
tasm -ms ?.c
tc
2010-10-22 17:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323649-1-1.html




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

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