C´úÂëÓÅ»¯·½°¸
C´úÂëÓÅ»¯·½°¸
»ªÖпƼ¼´óѧ¼ÆËã»úѧԺ
ÐÕÃû£º ÍõÈ«Ã÷
QQ£º 375288012
Email£º quanming1119@163.com
Ŀ¼
Ŀ¼__ 2
C´úÂëÓÅ»¯·½°¸__ 4
1¡¢Ñ¡ÔñºÏÊʵÄËã·¨ºÍÊý¾Ý½á¹¹__ 4
2¡¢Ê¹Óþ¡Á¿Ð¡µÄÊý¾ÝÀàÐÍ__ 5
3¡¢¼õÉÙÔËËãµÄÇ¿¶È__ 5
£¨1£©¡¢²é±í(ÓÎÏ·³ÌÐòÔ±±ØÐÞ¿Î)_ 5
£¨2£©¡¢ÇóÓàÔËËã__ 6
£¨3£©¡¢Æ½·½ÔËËã__ 6
£¨4£©¡¢ÓÃÒÆÎ»ÊµÏֳ˳ý·¨ÔËËã__ 6
£¨5£©¡¢±ÜÃâ²»±ØÒªµÄÕûÊý³ý·¨__ 8
£¨6£©¡¢Ê¹ÓÃÔöÁ¿ºÍ¼õÁ¿²Ù×÷·û__ 8
£¨7£©¡¢Ê¹Óø´ºÏ¸³Öµ±í´ïʽ__ 8
£¨8£©¡¢ÌáÈ¡¹«¹²µÄ×Ó±í´ïʽ__ 9
4¡¢½á¹¹Ìå³ÉÔ±µÄ²¼¾Ö__ 9
£¨1£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò__ 10
£¨2£©°Ñ½á¹¹ÌåÌî³ä³É×ÀàÐͳ¤¶ÈµÄÕû±¶Êý__ 10
£¨3£©°´Êý¾ÝÀàÐ͵ij¤¶ÈÅÅÐò±¾µØ±äÁ¿__ 10
£¨4£©°ÑƵ·±Ê¹ÓõÄÖ¸ÕëÐͲÎÊý¿½±´µ½±¾µØ±äÁ¿__ 11
5¡¢Ñ»·ÓÅ»¯__ 12
£¨1£©¡¢³ä·Ö·Ö½âСµÄÑ»·__ 12
£¨2£©¡¢ÌáÈ¡¹«¹²²¿·Ö__ 13
£¨3£©¡¢ÑÓʱº¯Êý__ 13
£¨4£©¡¢whileÑ»·ºÍdo…whileÑ»·__ 14
£¨6£©¡¢Ñ»·Õ¹¿ª__ 14
£¨6£©¡¢Ñ»·Ç¶Ì×__ 15
£¨7£©¡¢SwitchÓï¾äÖиù¾Ý·¢ÉúƵÂÊÀ´½øÐÐcaseÅÅÐò__ 16
£¨8£©¡¢½«´óµÄswitchÓï¾äתΪǶÌ×switchÓï¾ä__ 17
£¨9£©¡¢Ñ»·×ªÖÃ__ 18
£¨10£©¡¢¹«ÓôúÂë¿é__ 19
£¨11£©ÌáÉýÑ»·µÄÐÔÄÜ__ 19
£¨12£©¡¢Ñ¡ÔñºÃµÄÎÞÏÞÑ»·__ 20
6¡¢Ìá¸ßCPUµÄ²¢ÐÐÐÔ__ 21
£¨1£©Ê¹Óò¢ÐдúÂë__ 21
£¨2£©±ÜÃâûÓбØÒªµÄ¶ÁдÒÀÀµ__ 22
7¡¢Ñ»·²»±ä¼ÆËã__ 23
8¡¢º¯Êý__ 24
£¨1£©Inlineº¯Êý__ 24
£¨2£©²»¶¨Ò岻ʹÓõķµ»ØÖµ__ 24
£¨3£©¼õÉÙº¯Êýµ÷ÓòÎÊý__ 24
£¨4£©ËùÓк¯Êý¶¼Ó¦¸ÃÓÐÔÐͶ¨Òå__ 24
£¨5£©¾¡¿ÉÄÜʹÓó£Á¿(const)_ 25
£¨6£©°Ñ±¾µØº¯ÊýÉùÃ÷Ϊ¾²Ì¬µÄ(static)_ 25
9¡¢²ÉÓõݹé__ 25
10¡¢±äÁ¿__ 25
£¨1£©register±äÁ¿__ 25
£¨2£©¡¢Í¬Ê±ÉùÃ÷¶à¸ö±äÁ¿ÓÅÓÚµ¥¶ÀÉùÃ÷±äÁ¿__ 26
£¨3£©¡¢¶Ì±äÁ¿ÃûÓÅÓÚ³¤±äÁ¿Ãû£¬Ó¦¾¡Á¿Ê¹±äÁ¿Ãû¶ÌÒ»µã__ 26
£¨4£©¡¢ÔÚÑ»·¿ªÊ¼Ç°ÉùÃ÷±äÁ¿__ 26
11¡¢Ê¹ÓÃǶÌ×µÄif½á¹¹__ 26
C´úÂëÓÅ»¯·½°¸
1¡¢Ñ¡ÔñºÏÊʵÄËã·¨ºÍÊý¾Ý½á¹¹
Ñ¡ÔñÒ»ÖÖºÏÊʵÄÊý¾Ý½á¹¹ºÜÖØÒª£¬Èç¹ûÔÚÒ»¶ÑËæ»ú´æ·ÅµÄÊýÖÐʹÓÃÁË´óÁ¿µÄ²åÈëºÍɾ³ýÖ¸ÁÄÇʹÓÃÁ´±íÒª¿ìµÃ¶à¡£Êý×éÓëÖ¸ÕëÓï¾ä¾ßÓÐÊ®·ÖÃÜÇеĹØÏµ£¬Ò»°ãÀ´Ëµ£¬Ö¸Õë±È½ÏÁé»î¼ò½à£¬¶øÊý×éÔò±È½ÏÖ±¹Û£¬ÈÝÒ×Àí½â¡£¶ÔÓڴ󲿷ֵıàÒëÆ÷£¬Ê¹ÓÃÖ¸Õë±ÈʹÓÃÊý×éÉú³ÉµÄ´úÂë¸ü¶Ì£¬Ö´ÐÐЧÂʸü¸ß¡£
ÔÚÐí¶àÖÖÇé¿öÏ£¬¿ÉÒÔÓÃÖ¸ÕëÔËËã´úÌæÊ
Ïà¹ØÎĵµ£º
±àÒë³ÌÐò£¬ÌáʾCÅ̿ռ䲻×㣬ÎÒÇåÀícÅ̺ó£¬É¾³ýûÓõÄÈí¼þºó£¬·¢Ïֿռ仹ÊǺÜÉÙ£¬½ö½öÌáÉý200M×óÓÒ£¬ºÜÊÇÆæ¹Ö£¬Îҵÿռ䶼±»Ê²Ã´Õ¼È¥ÁËÄØ£¿
¾¹ý²é¿´£¬·¢ÏÖC:\Documents and Settings\tangh\Application Data\VisualAssistĿ¼¾¹È»ÓÐ5G¶à£¬ÎÒµÄÂèѽ£¬ÉÏÍøÒ»²é£¬ÍøÉÏ˵Ëû˵CÅÌɱÊÖ£¬¸É´àÕ¤ÁË£¬Ã»ÓÐʲôӰÏ죡
......
ÄÚºËÆô¶¯µÄÏÖÔÚÒѾÊÇ¿ªÊ¼Ö´Ðк¯Êýstart_kernelº¯ÊýÁË¡£start_kernelº¯ÊýÔÚinit/main.cÖж¨Òå¡£start_kernelº¯ÊýÖ»ÊÇÍê³É
ÏàÓ¦µÄ½á¹¹µÄ³õʼ»¯ÈÎÎñ¡£
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
ÔÚubootµÄÒ»Ö±¹ý³ÌÖУ¬uboo ......
Ò» £¬ÔõÑùѧϰCÓïÑÔ
ºÜ¶àÈ˶ÔѧϰCÓïÑԸе½ÎÞ´ÓÏÂÊÖ£¬¾³£ÎÊÎÒͬһ¸öÎÊÌ⣺¾¿¾¹ÔõÑùѧϰCÓïÑÔ£¿ÎÒÊÇÒ»¸ö½Ìʦ£¬ÒѾ¿ª·¢Á˺ܶàÄêµÄ³ÌÐò£¬ºÍºÜ¶à¸Õ¸ÕÆð²½µÄÈËÒ»Ñù£¬Ñ§Ï°µÄµÚÒ»¸ö¼ÆËã»úÓïÑÔ¾ÍÊÇCÓïÑÔ¡£¾¹ýÕâЩÄêµÄ¿ª·¢£¬ÎÒÉîÉîµÄÌå»áµ½CÓïÑÔ¶ÔÓÚÒ»¸ö³ÌÐòÉè¼ÆÈËÔ±¶àôµÄÖØÒª£¬Èç¹û²»¶®CÓ ......
λ¼ÆÊý¾ÍÊǶÔÒ»¸öÊýÖоßÓÐÄ³Ð©ÌØÕ÷µÄλ½øÐмÆÊý¡£¿´ÏÂÃæÊµÏÖ£º
/* bitscount.c£ºÎ»¼ÆÊý */
/* ¼ÆËãxÖÐ1λµÄÊýÄ¿£º·½°¸1£¬²ÉÓ÷ÖÖβßÂÔ */
inline int pop(unsigned x){
/* ¶Ôÿ¸ö2λ×ֶΣ¬ÏÈÎö³öÆäÓҶ˵Ä1룬ÔÙÎö³öÆä×ó¶ËµÄ1λ£¬È»ºóÈÃÕâÁ½¸öλÏà¼Ó */
x=(x & 0x55555555)+((x>>1) & 0x555555 ......
λºÍ×Ö½ÚµÄÖØÅÅÔÚÃÜÂëѧËã·¨ÖÐÓй㷺µÄÓ¦Óá£
/* rearran.c£ºÎ»ºÍ×Ö½ÚµÄÖØÅÅ */
/* λ·´×ª£ºÒÔ×ÖµÄÖÐÐÄΪ¶Ô³Æµã½øÐÐλ·´Éä
ÀýÈ磺 abcd efgh ijkl mnop ABCD EFGH IJKL MNOP
λ·´×ª£ºPONM LKJI HGFE DCBA ponm lkji hgfe dcba */
unsigned rev(unsigned x){
/* ½»»»ÏàÁڵĵ¥¸öλ */
x=(x & 0x5 ......