Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÎÒµÄCʵ¼ù(8)£º×ÖËÑË÷

  ×ÖËÑË÷¾ÍËÑË÷Ò»¸öÊýÖоßÓÐÄ³Ð©ÌØÕ÷µÄλ¡£ÊµÏÖÈçÏ£º
/* wsearch.c£º×ÖËÑË÷ */
/* ´Ó×ó±ßѰÕÒµÚÒ»¸ö0×Ö½Ú£ºµÚ0(1,2,3)¸ö×Ö½ÚÊÇ0ʱ£¬·µ»Ø0(1,2,3)£¬·ñÔò·µ»Ø4 */
int zbytel(unsigned x){
if((x>>24)==0) return 0;
else if((x & 0x00ff0000)==0) return 1;
else if((x & 0x0000ff00)==0) return 2;
else if((x & 0x000000ff)==0) return 3;
else return 4;
}
/* ·½°¸2£ºÎÞ·ÖÖ§´úÂ룬Óõ½ÁËnlzÖ¸Áî */
int zbytel_2(unsigned x){
int nlz(unsigned); /* ǰÏòÉùÃ÷ */
unsigned y;
y=(x & 0x7f7f7f7f)+0x7f7f7f7f; /* °Ñ0×Ö½Ú±ä³É0x7f£¬·Ç0×Ö½Ú×î¸ßλ±ä³É1 */
y=~(y | x | 0x7f7f7f7f); /* °Ñ0×Ö½Ú±ä³É0x80£¬·Ç0×Ö½Ú±ä³É0x00 */
return nlz(y)>>3; /* µÚ0(1,2,3)¸ö×Ö½ÚÊÇ0ʱ£¬yµÄǰµ¼ÓÐ0(8,16,24)¸ö0£¬¹Ê·µ»Ø0(1,2,3)£¬·ñÔò·µ»Ø4 */
}
/* ´Ó×ó±ßѰÕÒµÚÒ»¸ö³¤ÎªnµÄÁ¬Ðø1λ´®£¬·µ»ØÆäλÖ㨴Ó0¿ªÊ¼±àºÅ£© */
int ffstr1(unsigned x, int n){
int nlz(unsigned); /* ǰÏòÉùÃ÷ */
int k,p;
p=0; /* ³õʼ»¯·µ»ØµÄλÖà */
while(x!=0){
k=nlz(x);
x=x<<k; /* Ìø¹ýǰµ¼µÄ0 */
p=p+k;
k=nlz(~x); /* ¼ÆËãǰµ¼1µÄ¸öÊý */
if(k>=n)
return p; /* Èôǰµ¼1µÄ¸öÊý×ã¹»£¬ÔòÕÒµ½£¬Ö±½Ó·µ»ØÆäλÖà */
x=x<<k; /* ·ñÔòÁ¬ÐøµÄ1²»×ãn¸ö£¬Ìø¹ýËüÃÇ£¬¼ÌÐøÏòǰÕÒ */
p=p+k;
}
return 32; /* ûÕÒµ½Ôò·µ»Ø32 */
}
/* ¼ÆËãǰµ¼0µÄ¸öÊý */
int nlz(unsigned x){
int n;
if(x==0) return (32);
n=1;
/* Ó÷ÖÖβßÂÔ */
if((x>>16)==0){ /* x<=0x0000ffffʱ */
n=n+16;
x=x<<16; /* ÒÆ³ýǰµ¼µÄ16¸ö0 */
}
if((x>>24)==0){ /* x<=0x00ffffffʱ */
n=n+8;
x=x<<8; /* ÒÆ³ýǰµ¼µÄ8¸ö0 */
}
if((x>>28)==0){ /* x<=0x0fffffffʱ */
n=n+4;
x=x<<4; /* ÒÆ³ýǰµ¼µÄ4¸ö0 */
}
if((x>>30)==0){ /* x<=0x3fffffffʱ */
n=n+2;
x=x<<2; /* ÒÆ³ýǰµ¼µÄ2¸ö0 */
}
return n-(x>>31); /* ×¢Òân³õʼʱΪ1£¬Èç¹ûÒÆ³ýǰµ¼0ºóµÄx×î¸ßλΪ0£¬ÔònÇ¡ºÃ¼ÆËãÁËÕâ¸ö0£»
Èç¹û×î¸ßλΪ1£¬ÔòûÓжîÍâµÄǰµ¼0£¬n±ØÐëÒª¼õÈ¥¶à³öµÄ1 */
}


Ïà¹ØÎĵµ£º

ÀûÓÃÊÀ½ç×îС×î¿ìµÄC±àÒëÆ÷´òÔì×Ô¼ºµÄC±à¼­Æ÷

ÀûÓÃÊÀ½ç×îС×î¿ìµÄC±àÒëÆ÷´òÔì×Ô¼ºµÄC±à¼­Æ÷
¼ò½étinycc ÊÀ½çÉÏ×îС±àÒëËÙ¶È×î¿ìµÄCÓïÑÔ±àÒëÆ÷ ¸÷ÏÄܽø¹Ù·½È¥¿´
TCC¹Ù·½ÏÂÔØµØÖ·£ºhttp://ftp.twaren.net/Unix/NonGNU/tinycc/tcc-0.9.25-win32-bin.zip
ÎÒÖªµÀ ´ó¼Ò»ù±¾É϶¼ÓùýWIN—TC°É ÌØ±ðÊÇÉϹý´óѧµÄ CÓïÑÔÈëÃÅʱÓõͼÊÇ
ËûµÄ²Ù×÷½çÃæÈçͼ
¹þ¹þ ¿´ÏÂÍ ......

visual assist cÅ̿ռäÕ¼ÓõÄÌ«¶àÁË £­5G¿Õ¼ä


±àÒë³ÌÐò£¬ÌáʾCÅ̿ռ䲻×㣬ÎÒÇåÀícÅ̺ó£¬É¾³ýûÓõÄÈí¼þºó£¬·¢Ïֿռ仹ÊǺÜÉÙ£¬½ö½öÌáÉý200M×óÓÒ£¬ºÜÊÇÆæ¹Ö£¬Îҵÿռ䶼±»Ê²Ã´Õ¼È¥ÁËÄØ£¿
¾­¹ý²é¿´£¬·¢ÏÖC:\Documents and Settings\tangh\Application Data\VisualAssistĿ¼¾¹È»ÓÐ5G¶à£¬ÎÒµÄÂèѽ£¬ÉÏÍøÒ»²é£¬ÍøÉÏ˵Ëû˵CÅÌɱÊÖ£¬¸É´àÕ¤ÁË£¬Ã»ÓÐʲôӰÏ죡
......

linuxÄÚºËÒÆÖ²s3c2410£¬ÒÆÖ²Õýʽ¿ªÊ¼2

ÄÚºËÆô¶¯µÄÏÖÔÚÒѾ­ÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
    printk(KERN_NOTICE);
    printk(linux_banner);
    setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboo ......

hexdump s 0 n 52 CʵÀý helloworld

[root@localhost test]# hexdump -s 0 -n 52 -C helloworld
00000000  7f 45 4c 46 01 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 03 00 01 00 00 00  10 83 04 08 34 00 00 00  |............4...|
00000020  30 08 00 00 00 00 00 00  34 00 20 ......

ÎÒµÄCʵ¼ù(7)£ºÎ»¼ÆÊý

  λ¼ÆÊý¾ÍÊǶÔÒ»¸öÊýÖоßÓÐÄ³Ð©ÌØÕ÷µÄλ½øÐмÆÊý¡£¿´ÏÂÃæÊµÏÖ£º
/* bitscount.c£ºÎ»¼ÆÊý */
/* ¼ÆËãxÖÐ1λµÄÊýÄ¿£º·½°¸1£¬²ÉÓ÷ÖÖβßÂÔ */
inline int pop(unsigned x){
/* ¶Ôÿ¸ö2λ×ֶΣ¬ÏÈÎö³öÆäÓҶ˵Ä1룬ÔÙÎö³öÆä×ó¶ËµÄ1λ£¬È»ºóÈÃÕâÁ½¸öλÏà¼Ó */
x=(x & 0x55555555)+((x>>1) & 0x555555 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ