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

Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)

Ò»¸öC³ÌÐòµÄÄÚ´æ²¼¾Ö(memory layout)
2009-09-09 15:19
Ò»¸öC³ÌÐòÒ»Ö±ÒÔÀ´¶¼ÊÇÓÉÒÔÏÂ5¸ö¶Î(pieces)×é³É£º
´úÂë¶Î(text segment)£º´æ·ÅCPUÖ´ÐеĻúÆ÷Ö¸Áî(machine instructions)¡£Í¨³£Çé¿öÏ£¬´úÂë¶ÎÊǿɹ²ÏíµÄ£¬Ê¹Æä¿É¹²ÏíµÄÄ¿µÄÊǶÔÓÚÆµ·±±»Ö´ÐеijÌÐò£¬Ö»ÐèÒªÔÚÄÚ´æÖÐÓÐÒ»·Ý¿½±´¼´¿É£¬±ÈÈçÎı¾±à¼­Æ÷(text editors)£¬C±àÒëÆ÷£¬shellµÈµÈ¡£ÁíÍ⣬´úÂë¶ÎҲͨ³£ÊÇÖ»¶ÁµÄ£¬Ê¹ÆäÖ»¶ÁµÄÔ­ÒòÊÇ·ÀÖ¹Ò»¸ö³ÌÐòÒâÍâµØÐÞ¸ÄÁËËüµÄÖ¸Áî(prevent a program from accidentally modifying its instructions)¡£
³õʼ»¯Êý¾Ý¶Î/Êý¾Ý¶Î(initialized data segment/data segment):¸Ã¶Î°üº¬ÁËÔÚ³ÌÐòÖÐÃ÷È·±»³õʼ»¯µÄ±äÁ¿¡£ÀýÈ磬һ¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷(C declaration)
int   maxcount = 99;
ʹµÃ±äÁ¿maxcount¸ù¾ÝÆä³õʼֵ±»´æ´¢µ½³õʼ»¯Êý¾Ý¶Î¡£
δ³õʼ»¯Êý¾Ý¶Î/bss¶Î(uninitialized data segment/"bss" segment):bssÕâ¸ö½Ð·¨ÊǸù¾ÝÒ»¸öÔçÆÚµÄ»ã±àÔËËã·û¶øÀ´£¬Õâ¸ö»ã±àÔËËã·û±êÖ¾×ÅÒ»¸ö¿éµÄ¿ªÊ¼(stood for "block started by symbol")¡£ÔÚ³ÌÐò¿ªÊ¼Ö´ÐÐ֮ǰ£¬bss¶ÎµÄÊý¾Ý±»kernel³õʼ»¯Îª0»òÕß¿ÕÖ¸Õë(null pointers)¡£Ò»¸ö²»ÔÚÈκκ¯ÊýÄÚµÄCÉùÃ÷
long sum[1000];
ʹµÃ±äÁ¿sum±»´æ´¢µ½Î´³õʼ»¯Êý¾Ý¶Î/bss¶ÎÖС£
Õ»¶Î(stack)£ºwhere automatic variables are stored, along with information that is saved each time a function is called. ÿ´Îµ±Ò»¸öº¯Êý±»µ÷Ó㬸ú¯ÊýµÄ·µ»ØµØÖ·ºÍһЩ¹ØÓÚcallerµÄÐÅÏ¢£¬±ÈÈçijЩ¼Ä´æÆ÷µÄÄÚÈÝ£¬½«±»Ê×ÏÈ´æ´¢µ½Õ»¶Î¡£È»ºóÕâ¸ö±»µ÷Óõĺ¯Êý(caller)ÔÙΪËüµÄ×Ô¶¯±äÁ¿ºÍÁÙʱ±äÁ¿(automatic and temporary variables)ÔÚÕ»¶ÎÉÏ·ÖÅä¿Õ¼ä¡£Õâ¾ÍÊÇCÈçºÎʵÏÖº¯ÊýµÄµÝ¹éµ÷Óá£Ã¿´ÎÒ»¸öµÝ¹éº¯Êýµ÷ÓÃÆä±¾Éí£¬Ò»¸öеÄÕ»¿ò¼Ü(stack frame)¾Í»á±»Ê¹Óã¬ÕâÑùÕâ¸öÐÂʵÀýÕ»ÀïµÄÒ»×é±äÁ¿¾Í²»»áºÍ¸Ãº¯ÊýµÄÁíÒ»¸öʵÀýÕ»ÀïÃæµÄ±äÁ¿»¥Ïà¸ÉÈÅ¡£
¶Ñ¶Î(heap)£ºÓÃÓÚ¶¯Ì¬ÄÚ´æ·ÖÅä(dynamic memory allocation)¡£Ò»Ö±ÒÔÀ´£¬¶ÑÔÚÄÚ´æÖеÄλÖÃÊǽéÓÚbss¶ÎºÍÕ»¶ÎÖ®¼ä¡£
ͼ7.6ÏÔʾÁËÕâ5¸ö¶ÎÔÚÄÚ´æÖеĵäÐÍÅÅÁС£ÕâÊÇÒ»ÕÅÂß¼­Í¼£¬±íʾÁËÒ»¸ö³ÌÐòÔÚÄÚ´æÖп´ÆðÀ´ÊÇÔõôÑùµÄ¡£¶ÔÓÚÒ»¸ö¸ø¶¨µÄʵÏÖ£¬Ã»ÓÐÇ¿ÖÆµÄÒªÇó˵±ØÐë°´ÕÕÕâÖÖ·½Ê½À´ÅÅÁÐÕâ5¸ö¶Î¡£È»¶ø£¬Õâ¸øÁËÎÒÃÇÒ»ÖÖµäÐ͵ıãÓÚÃèÊöµÄÅÅÁз½Ê½¡£ÔËÐÐÔÚIntel x86´¦ÀíÆ÷ÉϵÄlinux£¬´úÂë¶Î(text segment)´ÓµØÖ·0x08048000¿ªÊ¼(ÍùÉÏ)£¬Õ»µ×´ÓµØÖ·0xC0000000ÍùÏ£¨ÔÚÕâ¸öÌØ¶¨µÄ±íʾ½á¹¹ÖУ¬Õ»¶Î´Ó¸ßµØÖ·Ïòµ


Ïà¹ØÎĵµ£º

¹ØÓÚ s3c2416 hspi spi linux Çý¶¯


        ×î½üÔÚ×ösamsung
s3c2416
ÔÚlinuxϵÄspiÇý¶¯³ÌÐò£¬²âÊÔÁËÏÂsamsung·¢²¼µÄspiµÄÄÚºËÔ´´úÂ룬ÎÞÂÛÊDzÉÓÃdma»òÕß·Çdmaģʽ¶¼ÎÞ·¨¹¤×÷¡£ÔĶÁ¸ÃÇý¶¯´úÂ룬·¢ÏÖ
ÕâÂëÓ¦¸ÃÊÇÒ»¸öδÍê³ÉµÄ°æ±¾£¬´æÔںܶàµÄbug¡£ÓÚÊÇÔÚÕâ¸ö°æ±¾µÄ»ù´¡ÉϽøÐÐÐ޸ģ¬ÖØÐ´Ò»¸ö¿ÉÓõġ¢Ö§³Öȫ˫¹¤µÄͨѶ ......

C Sharp ÈëÃÅ£¨Ò»£©¿ØÖÆÌ¨

 C#ºÍVBScript£¬ActionScript£¬C++·Ç³£ÏàËÆ£¡
ÏÈÔÚCSÖн¨Á¢Ò»¸ö¿ØÖÆÌ¨³ÌÐò£¬ÔÙ´ò¿ª“Program.cs”¡£
ÔÚ void_Main ÊäÈëÒÔÏ´úÂ룺
 
            //ÕâÊÇ×¢ÊÍ£¬×¢ÊͽöÔÚµ÷ÊÔʱÓÐÓÃ
         ......

C Sharp ÈëÃÅ£¨¶þ£©±äÁ¿

ÏÈѧVB£¬ÔÙѧC#¡£Ñ§ºÃÁËC#ѧC++¾Í²»ÔÚ»°ÏÂÁË£¡
 
»¹ÊÇÏÈÔÚCSÖн¨Á¢Ò»¸ö¿ØÖÆÌ¨³ÌÐò£¬ÔÙ´ò¿ª“Program.cs”¡£
ÔÚ void_Main ÊäÈëÒÔÏ´úÂ룺
Õâ´Î´úÂë½Ï³¤£¬ÎҾͲ»¸ßÁÁÁË£¡
            double pp1;//¶¨Òå±äÁ¿
    &nb ......

cÏÝÚåÓëȱÏÝѧϰ±Ê¼Ç

http://c.chinaitlab.com/c/basic/200907/789321.html
  ´Ê·¨ÏÝÚ壺
    1        = ²»Í¬ÓÚ£½£½²»ÒªÔÚ³ÌÐòÖн«Á½Õßд´í£¬Ð¡ÐÄ¡£½«±í´ïʽÓë³£Á¿±È½Ïʱ£¬¿É½«³£Á¿·ÅÔÚ×ó±ß¡£
    2        &ºÍ| ²»Í¬ÓÚ& ......

cÖÐÄÚ´æ·Ö²¼

¶ÑºÍÕ»µÄÇø±ð
Ò»¡¢Ô¤±¸ÖªÊ¶—³ÌÐòµÄÄÚ´æ·ÖÅä
Ò»¸öÓÉc/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
2¡¢¶ÑÇø£¨heap£©— Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ ¡£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ