·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
   
 
 
   
 
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ¨ë] ÀÓº£µðµå ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ±â¹ý

¹ÚÀçÈ£(ºí·Î±×, 'ÄÄÇ»ÅÍ vs Ã¥' ¿î¿µÀÚ)   2007/11/14
1ºÎ | °³¹ß ȯ°æÀÇ º¯È­¿Í ´ëÀÀÇÏ´Â ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ÀÇ Àç¹ß°ß
2ºÎ | OPPÀû °³¹ßÀ» À§ÇÑ C++ ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ±â¹ý
3ºÎ | ¸®ÆÑÅ丵À» ÀÌ¿ëÇÑ ÀÚ¹Ù ¼º´É ÃÖÀûÈ­ ±â¹ý
4ºÎ | ¼º´É À̽´ ÇØ°áÀ» À§ÇÑ ´å³Ý ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ±â¹ý
5ºÎ | ARM°ú ÆÄ¿öpc¿¡ ±â¹ÝÇÑ ÀÓº£µðµå ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ±â¹ý
[Áöµð³ÝÄÚ¸®¾Æ]°ú°Å 8051°ú °°Àº CPU ½ÃÀý°ú´Â ´Þ¸® ¿äÁò ³ª¿À´Â ÀÓº£µðµå Çü CPU´Â ARM, PowerPC, MIPS¿Í °°ÀÌ ÇÑ ¶§ À¯´Ð½º ¿öÅ©½ºÅ×À̼ǿ¡¼­³ª »ç¿ëÇÏ´ø RISC ¹æ½ÄÀº ¹°·ÐÀ̰í CISC ¹æ½ÄÀÇ x86 Äھ Á¡Á¡ ´õ ¸¹ÀÌ »ç¿ëÇÑ´Ù. ¶§¹®¿¡ °ú°Å ¿öÅ©½ºÅ×À̼ǿ¡¼­ »ç¿ëÇÏ´ø ÃÖÀûÈ­ ±â¹ý±îÁö ´Ù·ï¾ß ÇÏ´Â °æ¿ì°¡ Á¡Á¡ ´õ ´Ã¾î³ª±â ½ÃÀÛÇß´Ù. ÇÑ ¼ú ´õ ¶° ÀÓº£µðµå Àåºñ¿¡ µé¾î°¡´Â CPU ¼º´Éµµ ³¯·Î ³ô¾ÆÁö°í CPU Äھ °è¼ÓÇØ¼­ ÆÇ¿Ã¸²À» °ÅµìÇϰí ÀÖ´Â Å¿¿¡ ÇÁ·Î±×·¡¹Ö ±â¹ýµéµµ ³¯·Î »õ·Î¿öÁö°í ÀÖ´Ù.

ÇÁ·Î±×·¡¹Ö ºÐ¾ß¿¡¼­ ¡®ÃÖÀûÈ­¡¯¸¸Å­ ´Ù¾çÇÑ Àǹ̷Π»ç¿ëµÇ´Â ´Ü¾îµµ µå¹° °ÍÀÌ´Ù. ÃÖÀûÈ­¶õ °³¹ß ¸ñÀû°ú »ç¿ëÇÏ´Â ¾ð¾î, ¾ÖÇø®ÄÉÀ̼ÇÀÇ Æ¯Â¡ µî¿¡ µû¶ó ¸ðµÎ ´Ù¸¥ Àǹ̷Π»ç¿ëµÇ´Â Å¿ÀÌ´Ù. ´Ù¸¸ ±× Çٽɸ¸Àº ´ëºÎºÐ ºñ½ÁÇÏ´Ù.

ÇÁ·Î±×·¡¹Ö ºÐ¾ßÀÇ ÃÖÀûÈ­´Â ¿ä±¸ »çÇ×À» ÃæÁ·½ÃŰÁö ¸øÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¸¦ °³¼±Çؼ­ ¿øÇÏ´Â °á°ú¸¦ ¾òµµ·Ï ÇÏ´Â ÀÛ¾÷À̶ó´Â Á¡¿¡¼­ µ¿ÀÏÇϱ⠶§¹®ÀÌ´Ù. ÇѸ¶µð·Î °³¹ßÀÚ³ª ȯ°æ¿¡ µû¶ó ÃÖÀûÈ­ÀÇ Àǹ̴ Á¦°¢±â ´Þ¶óÁöÁö¸¸, ÃÖÀûÈ­ÀÇ Á߽ɿ¡´Â¡®¼Óµµ¡¯¿Í ¡®Å©±â¡¯°¡ ÀÖ´Ù.

ÇÏÁö¸¸ ÀÌ ¶ÇÇÑ ½Ã´ë°¡ ¹Ù²ñ¿¡ µû¶ó Á¶±Ý¾¿ ´Þ¶óÁö°í ÀÖ´Ù. ½Ã´ë°¡ ¹Ù²î¸é¼­ CPUÀÇ ¼º´ÉÀÌ ÁÁ¾ÆÁö°í ¸Þ¸ð¸®ÀÇ ¿ë·® ¶ÇÇÑ ´Ã¾î³ª´Â ´ö¿¡ Á¤·®ÀûÀÎ ¡®¼Óµµ¡¯¿Í ¡®Å©±â¡¯°¡ Â÷ÁöÇÏ´Â Àǹ̰¡ ÀÛ¾ÆÁö´Â Å¿ÀÌ´Ù. ´ë½Å ¡®»ç¿ë ÆíÀǼº¡¯°ú ¡®Áñ°Å¿î °æÇ衯 °°Àº ¿ä¼Ò°¡ Áß¿äÇØÁö°í ÀÖ´Ù.

ÀÌ·± »óȲÀº ¾îµð±îÁö³ª ÇÁ·Î±×·¡¹Ö Àü¹Ý¿¡ ´ëÇÑ °ÍÀÏ »Ó ÀÓº£µðµå ¼ÒÇÁÆ®¿þ¾î´Â Á» ´õ º¹ÀâÇÑ Á¦¾à Á¶°ÇÇÏ¿¡¼­ °³¹ßµÇ´Â Å¿¿¡ ¿©ÀüÈ÷ ¼Óµµ¿Í Å©±â°¡ Áß¿äÇÑ ¿ªÇÒÀ» Â÷ÁöÇÑ´Ù.

ÀÏ¹Ý µ¥½ºÅ©Åé PC³ª ¿öÅ©½ºÅ×À̼ǰú´Â ´Þ¸® ÀÓº£µðµå Àåºñ¿¡ µé¾î°¡´Â CPU´Â ¼º´Éµµ ¶³¾îÁö°í ¸Þ¸ð¸®(·¥À̳ª Ç÷¡½Ã) ¿ë·®µµ Àû´Ù. ¶§¹®¿¡ ¼öÇà ¼Óµµ, ¹ÝÀÀ ¼Óµµ, ½Ç½Ã°£ ¼º´É, ½ÇÇà Àü Æß¿þ¾î À̹ÌÁö Å©±â¿Í ½ÇÇà Áß ÇÁ·Î¼¼½º À̹ÌÁö Å©±â¸¦ È®º¸Çϱâ À§ÇØ ÀûÀÝÀº °øÀ» µé¿©¾ß ÇÑ´Ù.

¹°·Ð ¼Óµµµµ ºü¸£¸é¼­ À̹ÌÁö Å©±âµµ ÀÛÀº ¿ä±¸ »çÇ×À» µ¿½Ã¿¡ ÃæÁ·ÇÒ ¼ö´Â ¾ø´Ù. ¾î´À ÇÑÂÊÀ» Èñ»ýÇØ¼­ ´Ù¸¥ ÇÑÂÊÀ» »ì·Á¾ß ÇÑ´Ù. ÀÌ·± °úÁ¤¿¡¼­ ƯÁ¤ Çϵå¿þ¾î¿¡ ´ëÇØ ¾ó¸¶³ª ±ÕÇüÀ» Àß ¸ÂÃß´À³Ä¿¡ µû¶ó ÀÓº£µðµå ¼ÒÇÁÆ®¿þ¾î °³¹ß ½ÂÆÐ°¡ ÆÇ°¡¸§ ³ª´Â °æ¿ìµµ ÀÖ´Ù.

5ºÎ´Â ÀÌ·± ¹è°æÀ» ¿°µÎ¿¡ µÎ°í ÀÓº£µðµå ºÐ¾ß¸¦ Áß½ÉÀ¸·Î ³Î¸® »ç¿ëµÇ´Â ARM(Advanced RISC Machine)°ú ÆÄ¿öPC °è¿­ CPU¸¦ Åä´ë·Î C¿Í ¾î¼Àºí¸® ¾ð¾î Ư¼ºÀ» Ȱ¿ëÇØ¼­ È¿°úÀûÀÎ ¼ÒÇÁÆ®¿þ¾î¸¦ Á¦ÀÛÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº»´Ù. ¿©±â¼­ ÁÖÀÇ »çÇ×ÀÌ Çϳª Àִµ¥, ¿ö³« º¯¼ö°¡ ¸¹Àº ¾Ë°í¸®Áò°ú ƯÁ¤ ÄÄÆÄÀÏ·¯ ¹öÀü¿¡ µû¸¥ ÃÖÀûÈ­ Ư¼ºÀº ¼³¸í¿¡¼­ Á¦¿ÜÇÑ´Ù.

  ÃÖÀûÈ­ÀÇ ±âÃÊ¿Í À߸øµÈ »ó½Ä

¼¼°è ÃÖÃÊÀÇ 64ºñÆ® CPU·Î µîÀåÇÑ ¾ËÆÄ(21x64 ½Ã¸®Áî)¸¦ ¼³°èÇÒ ´ç½Ã¿¡ ÇÙ½ÉÀûÀÎ ÆÀÀ» ³× °³·Î ³ª´©¾ú´Âµ¥, ±× Áß¿¡ ¼ÒÇÁÆ®¿þ¾î ÆÀÀÌ Çϳª ³¢¾îÀÖ¾ú´Ù.

³î¶ø°Ôµµ ÀÌ ÆÀÀÌ ´ã´çÇÑ ¾÷¹«´Â ¹Ù·Î ¾ËÆÄ¿¡ ÃÖÀûÈ­µÈ ÄÄÆÄÀÏ·¯¸¦ Á¦ÀÛÇÏ´Â °ÍÀ̾ú´Ù. ³ôÀº Ŭ·° Á֯ļö·Î ¿òÁ÷ÀÌ´Â CPU¸¦ Á¦ÀÛÇÏ´Â °úÁ¤¿¡¼­ Á¶±ÝÀÌ¶óµµ Çϵå¿þ¾îÀÇ º¹À⼺À» ÁÙÀ̱â À§ÇØ ÃÖ´ëÇÑ ´Ü¼øÇϰÔCPU¸¦ ¼³°èÇß´Ù. ¿øÇÏ´Â ¼º´ÉÀ» ¾ò±â À§ÇÑ ³ë·ÂÀ» ¼ÒÇÁÆ®¿þ¾î(Áï ÄÄÆÄÀÏ·¯)·Î ¶°³Ñ±ä °ÍÀÌ´Ù.

ÀÌ·± º¯È­´Â Ĩ Á¦Á¶»ç°¡ °¡Àå °ñ¸Ó¸®¸¦ ¾Î´Â ºÎºÐÀÌ Çϵå¿þ¾î ºÎ¹®¿¡¼­ ¼ÒÇÁÆ®¿þ¾î ºÎ¹®À¸·Î ¹Ù²î¾î ¹ö¸° ¿ª»çÀûÀÎ ÀüȯÁ¡À¸·Î »ý°¢Çصµ µÉ Á¤µµÀÌ´Ù.

ÁÖ·Î CISC(Complex Instruction Set Computer) ±â¹ÝÀ¸·Î ¼³°èµÈ CPU¸¦ ´Ù·ç´ø ÇÁ·Î±×·¡¸Ó´Â ¼ÕÀ¸·Î ÃÖÀûÈ­ÇÑ ¾î¼Àºí¸® Äڵ尡 ¿ùµîÈ÷ ¶Ù¾î³ª´Ù°í »ý°¢Çϱ⠽±´Ù.

ÇÏÁö¸¸, RISC(Reduced Instruction Set Computer) ȯ°æÀ̳ª RISC¿Í CISC¸¦ °áÇÕÇÑ CPU¿¡¼­´Â ±×´ÙÁö Å« Â÷À̰¡ ³ªÁö ¾Ê´Â´Ù. ¾î¶² °æ¿ì¿¡´Â ÄÄÆÄÀÏ·¯°¡ »ç¶÷º¸´Ù ´õ ¿ì¼öÇÑ ±â°è¾î Äڵ带 »ý¼ºÇϱ⵵ ÇÑ´Ù. ¿¬±¸¿¡ µû¸£¸é ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â µ¥ °É¸° ½Ã°£Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í »ó°ü¾øÀÌ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ ÇàÀÇ ¼ö¿¡ ºñ·ÊÇÑ´Ù.

±×·¯¹Ç·Î ±× ¸¸Å­ ¸¹Àº ÇàÀ» ´ã°í ÀÖ´Â ¾î¼Àºí¸®¾î ÇÁ·Î±×·¥Àº »ý»ê¼ºÀÌ ³·À» ¼ö¹Û¿¡ ¾ø´Âµ¥, ÃÖÁ¾ °á°ú¹°¸¶Àú C ¾ð¾î¿Í °°Àº °í±Þ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í ºñ½ÁÇÏ´Ù¸é ¶È °°Àº ÀÏÀ» Çϱâ À§ÇØ ½Ã°£°ú ³ë·Â¸¸ ³¶ºñÇÑ ¼ÀÀÌ µÈ´Ù.

¼º´ÉÀÌ Àǽɽº·¯¿ï °æ¿ì ¼öµ¿ ÃÖÀûÈ­¸¦ Çϱâ ÀÌÀü¿¡ ¿ì¼± ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ尡 Á¤¸» ÃÖÀûÀÎÁö ¾Æ´ÑÁö¸¦ °¡·Á³»¾ß Çϸç, ÇöÀç »óÅ¿¡¼­ ¾ó¸¶³ª °³¼±ÀÌ °¡´ÉÇÑÁö Æò°¡ÇØ¾ß ÇÑ´Ù.

¶ÇÇÑ ¼º´ÉÀÌ Áß¿äÇÑ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ °æ¿ì ¾ÆÅ°ÅØÃ³¿¡ ¸ÂÃç ÄÄÆÄÀÏ·¯°¡ ÇØ´ç ¾Ë°í¸®ÁòÀ» À§ÇÑ ÃÖÀûÀÇ Äڵ带 »ý¼ºÇϵµ·Ï ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼­ ÃÖÀûÈ­µÈ Äڵ带 »ý¼ºÇϱ⸦ ±â´ëÇØ¼­´Â ¾È µÈ´Ù´Â ¸»ÀÌ´Ù.

  ±¸Ã¼ÀûÀÎ ÃÖÀûÈ­ ±â¹ý ¼Ò°³

ÀÚ ±×·³ ÀÌÁ¦ºÎÅÍ C ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ Ȱ¿ëÇÑ º»°ÝÀûÀÎ ÃÖÀûÈ­ ±â¹ýÀ» »ìÆìº¸±â·Î ÇÏÀÚ. ¿ì¼± ABI(Application Binary Interface)¸¦ »ç¿ëÇÑ ÃÖÀûÈ­ ±â¹ýºÎÅÍ ¼Ò°³ÇÑ´Ù. ¿©±â¿¡¼­ ¸ÕÀú ¤°í ³Ñ¾î°¡¾ß ÇÒ °ÍÀº ÄÄÆÄÀÏ·¯°¡ ÁÁ¾ÆÇÏ´Â ¹æ½ÄÀ¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÃÖÀûÈ­¸¦ ´Þ¼ºÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.

±×·³ ¾î¶»°Ô ÇØ¾ß ÄÄÆÄÀÏ·¯°¡ ÁÁ¾ÆÇÏ´Â ¹æ½ÄÀÇ ÇÁ·Î±×·¥ÀÌ µÇ´Â °ÍÀϱî? º¹ÀâÇÑ ¾î¼Àºí¸®¾î·Î ÄÚµùÀ» ÇÏÁö ¾Ê´õ¶óµµ ÇÁ·Î±×·¥ ÀÛ¼º °úÁ¤¿¡¼­ Á¶±Ý¸¸ °øÀ» µéÀÌ¸é ±×·²µíÇÑ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ´Â ±ÔÄ¢µéÀÌ ÀÖ´Ù. ¿©±â¿¡¼­´Â °¡Àå ¹ü¿ëÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î °¡Áö ±âº» ±ÔÄ¢ µé¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.

ABI¿Í ÃÖÀûÈ­
ABI(Application Binary Interface)´Â ÀÀ¿ë ÇÁ·Î±×·¥°ú ¿î¿µÃ¼Á¦, ÀÀ¿ë ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸® »çÀÌ¿¡ ÇÊ¿äÇÑ Àú ¼öÁØ ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇÑ´Ù. ¶Ç, ¸ñÀû ÆÄÀϰú °ü·ÃµÇ¾î ÀÖ¾î ¿ø½Ã ÄÚµå ÄÄÆÄÀÏ °úÁ¤¿¡ °³ÀÔÇÏ´Â API(Application Programming Interface)º¸´Ù Àú¼öÁØÀÌ´Ù.

ABI´Â ¾ÆÅ°ÅØÃ³¿Í ¿î¿µÃ¼Á¦¸¶´Ù Á¶±Ý¾¿ Â÷À̰¡ ÀÖÀ¸¸ç, Àμö Àü´Þ ¹æ¹ý°ú ¹Ýȯ °ª Àü´Þ ¹æ¹ýÀ» Æ÷ÇÔÇÑ ÇÔ¼ö È£Ãâ ±Ô¾àÀ» Á¤ÀÇÇÑ´Ù.

°í¼öÁØ¿¡¼­ »ý°¢Çغ¸¸é ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â ÀÌÀ¯´Â °øÅëµÈ ºÎºÐÀ» ÇÑ °÷¿¡ ¸ð¾Æ¼­ Áߺ¹ÀÌ µÇÁö ¾Êµµ·Ï ¸¸µé¾î ÄÚµåÀÇ À¯Áö º¸¼ö¼ºÀ» ³ôÀ̴µ¥ ÀÖ´Ù. Àú¼öÁØ¿¡¼­ÀÇ ÇÔ¼ö´Â ÄÚµåÀÇ Å©±â¸¦ ÁÙÀ̸鼭 ¿¬°üµÈ Äڵ带 ÇÑ °÷¿¡ ¸ð¾Æ Áö¿ª¼ºÀ» ³ôÀÓÀ¸·Î½á ij½Ã ÀûÁß·üÀ» ³ôÀÌ´Â °úÁ¤¿¡ µµ¿òÀ» ÁØ´Ù.

±×·¸´Ù¸é ¸¸ÀÏ ÇÔ¼ö º»Ã¼ ±æÀ̰¡ ±æ¾î¼­ ÄÄÆÄÀÏ·¯°¡ ÇÔ¼ö º»Ã¼¸¦ È£ÃâÇÑ °÷¿¡ ÀζóÀÎÀ¸·Î È®ÀåÇÏÁö ¸øÇÏ¿© Ãß°¡ÀûÀÎ ¼Ó·Â °³¼±ÀÌ ÇÊ¿äÇÏ´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î? ÀÌ ¶§ ABI ±ÔÄ¢À» ¾Ë°í ÀÖ´Ù¸é »ó´çÈ÷ À¯¸®ÇÏ´Ù. ¾Õ¼­ ABI°¡ ¾ÆÅ°ÅØÃ³¸¶´Ù ´Ù¸£´Ù°í ÇßÀ¸¹Ç·Î ¿©±â¼­´Â ARM°ú ÆÄ¿öPC·Î ³ª´©¾î »ý°¢Çغ¸ÀÚ.

¡Ü ARM
ARM ABI Á¤ÀÇ ±ÔÄ¢ÀÎ APCS(ARM Procedure StandardCall)¿¡ µû¸£¸é ÄÄÆÄÀÏ·¯´Â ÇÔ¼ö·Î ³Ñ±â´Â Àμö¸¦ ´ã´Â ·¹Áö½ºÅÍ ³× °³¸¦(a1~a4) ÇÒ´çÇÑ´Ù. Áï Ç¥ÁØ C·Î ÇÔ¼ö¸¦ ¼±¾ðÇÒ ¶§ Àμö¸¦ ³× °³ ÀÌÇÏ·Î À¯ÁöÇÒ °æ¿ì Àμö¸¦ ³Ñ±â±â À§ÇØ ½ºÅÃÀ» »ç¿ëÇÏÁö ¾Ê°í ·¹Áö½ºÅ͸¸ »ç¿ëÇÏ°Ô µÇ¹Ç·Î »ó´çÇÑ ¼Óµµ °³¼±ÀÇ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

¡Ü ÆÄ¿öPC
ÆÄ¿öPC 32ºñÆ® ABI¿¡ µû¸£¸é ÀÏ¹Ý º¯¼ö¸¦ À§ÇØ ·¹Áö½ºÅÍ R3¿¡¼­ R10¹ø±îÁö¸¦ »ç¿ëÇϰí, ºÎµ¿¼Ò¼öÁ¡ º¯¼ö¸¦ À§ÇØ F1¿¡¼­ F8±îÁö¸¦ »ç¿ëÇÑ´Ù. µû¶ó¼­ Ç¥ÁØ C·Î ÇÔ¼ö¸¦ ¼±¾ðÇÒ ¶§ Àμö¸¦ ¿©´ü °³ ÀÌÇÏ·Î À¯ÁöÇÑ´Ù¸é ¼Óµµ¸¦ °³¼±ÇÒ ¼ö ÀÖ´Ù.

¹°·Ð Àμö¸¦ ·¹Áö½ºÅÍ·Î ³Ñ±â´Â ¹æ½ÄÀÌ ´Ã °¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. ¿¹¸¦ µé¾î, °¡º¯ ±æÀÌ Àμö(va_arg)¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â ¾î¿ ¼ö ¾øÀÌ ½ºÅÿ¡ Àμö¸¦ Áý¾î³Ö¾î¾ß ÇÑ´Ù. µû¶ó¼­ ¼Óµµ °³¼±ÀÌ ÇÊ¿äÇÏ´Ù¸é °¡º¯ ±æÀÌ Àμö¸¦ °íÁ¤ ±æÀÌ Àμö·Î º¯°æÇØ¾ß ÇÑ´Ù.

¶ÇÇÑ ·¹Áö½ºÅÍ ±æÀ̸¦ ÃʰúÇÏ´Â °æ¿ì(¿¹: ±¸Á¶Ã¼¸¦ Àμö·Î ³Ñ±ä´Ù)¿¡µµ ·¹Áö½ºÅÍ¿Í ½ºÅÃÀ¸·Î ³ª´µ¾îÁ®¼­ Àμö¸¦ Àü´ÞÇÏ°Ô µÇ¹Ç·Î ÀÌ Á¡µµ °í·Á ´ë»ó¿¡ ³Ö¾î¾ß ÇÑ´Ù.

ÇÔ¼ö È£Ãâ °úÁ¤¿¡¼­ ·¹Áö½ºÅ͸¦ »ç¿ëÇÑ´Ù°í ÇØ¼­ Å©°Ô ¼Óµµ°¡ ³ô¾ÆÁöÁö ¾ÊÀ» °Íó·³ º¸ÀÏÁöµµ ¸ð¸¥´Ù. ÇÏÁö¸¸ ÇÔ¼ö È£ÃâÀÌ ¼ö½Ê¸¸ ¹ø¿¡ °ÉÃÄ ÀϾ´Ù°í °¡Á¤ÇÒ ¶§ Äڵ塮ũ±â¡¯ÃÖÀûÈ­ ¶§¹®¿¡ ÀζóÀÎÀ̳ª ¸ÅÅ©·Î°¡ ºÒ°¡´ÉÇÑ »óȲ¿¡¼­ ¼Óµµ ÃÖÀûÈ­¸¦ °¡Àå ¸ÕÀú ´Þ¼ºÇÏ´Â ÁÁÀº ¼ö´ÜÀÌ µÉ ¼ö ÀÖ´Ù.

´Ù¸¥ CPU¿¡¼­ÀÇ ÃÖÀûÈ­ ÀÛ¾÷ ¼öÇà  

ºñ´Ü ARMÀ̳ª ÆÄ¿öPC »Ó¸¸ ¾Æ´Ï¶ó MIPSµµ Àμö Àü´Þ¿¡ ·¹Áö½ºÅÍ ³×°³¸¦ »ç¿ëÇϸç, x86_64µµ Àμö Àü´Þ¿¡ ·¹Áö½ºÅÍ ¿©¼¸ °³¸¦ »ç¿ëÇÑ´Ù.

x86ÀÇ °æ¿ì ABI ¼öÁØ¿¡¼­´Â ±âº»ÀûÀ¸·Î ½ºÅø¸ »ç¿ëÇØ¼­ Àμö¸¦ Àü´ÞÇϵµ·Ï Á¤ÇØÁ® ÀÖ´Ù. ¹°·Ð x86¿¡¼­µµ ÄÄÆÄÀÏ·¯¿¡ µû¶ó ·¹Áö½ºÅÍ µÎ¼¼°³¸¦ »ç¿ëÇØ¼­ Á¶±ÝÀÌ¶óµµ ¼Óµµ¸¦ ³ôÀÌ´Â ¿É¼ÇÀÌ Á¸ÀçÇÏ´Â °æ¿ìµµ ÀÖÁö¸¸ Ç¥ÁØÀº ¾Æ´Ï´Ù. ¿¹¸¦ µé¾î ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® ºñÁÖ¾ó C++Àº Àμö Àü´Þ¿¡ ·¹Áö½ºÅÍ µÎ °³¸¦ »ç¿ëÇϸç, º¼·£µå C++´Â ¼¼ °³, ¿ÓÄÞ C´Â ³× °³¸¦ »ç¿ëÇÑ´Ù.

·¹Áö½ºÅͰ¡ ÀûÀº x86ÀÇ °æ¿ì¿¡´Â ½ºÅà ÇÁ·¹ÀÓ Æ÷ÀÎÅ͸¦ ÀúÀåÇÏ´Â EBP(Base Stack Pointer)¸¦ ´Ù¸¥ ¸ñÀûÀ¸·Î Ȱ¿ëÇϵµ·Ï ÄÄÆÄÀÏ·¯°¡ ESP ·¹Áö½ºÅ͸¦ ±³¹¦ÇÏ°Ô Á¶ÀÛÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇϱ⵵ ÇÑ´Ù. ÀÏ·Ê·Î gccÀÇ °æ¿ì¿¡´Â -fomit-frame-pointer ¿É¼ÇÀ» ºÙÀ̰ųª ?O2 ÃÖÀûÈ­ ¿É¼ÇÀ» ºÙÀÏ °æ¿ì ÇÁ·¹ÀÓ Æ÷ÀÎÅ͸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù.



·çÇÁ ÃÖÀûÈ­
±¸Á¶È­µÈ ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼­ »ç¿ëÇÏ´Â ÁÖ¿ä ¿ä¼Ò·Î ÆÇ´Ü°ú ¹Ýº¹ÀÌ ¹«Ã´ Áß¿äÇÏ´Ù. ¿ì¼± ¹Ýº¹À» À§ÇÑ ·çÇÁ ÃÖÀûÈ­ºÎÅÍ »ìÆìº¸±â·Î ÇÏÀÚ.

¡Ü ºÒÇÊ¿äÇÑ ¹Ýº¹ Á¦°Å
°¡Àå ±âº»ÀûÀÎ ·çÇÁ ÃÖÀûÈ­ ±â¹ýÀ¸·Î ºÒÇÊ¿äÇÑ ¹Ýº¹À» Á¦°ÅÇÏ´Â ±â¹ýÀÌ ÀÖ´Ù. 3~5ȸ Á¤µµ¸¸ ¹Ýº¹ÇÏ°í ³¡³ª´Â °æ¿ì ·çÇÁ¸¦ Ç®¾î¼­ »ç¿ëÇÑ´Ù¸é Å©±â¸¦ Èñ»ýÇØ¼­ ¼º´ÉÀ» ³ôÀÏ ¼ö ÀÖ´Ù.

ÇÏÁö¸¸ ÄÚµå Å©±â°¡ Áõ°¡ÇÒ °æ¿ì ij½Ã ÀûÁß·üÀÌ ³·¾ÆÁ®¼­ ¼º´ÉÀ» ³ôÀ̱â´ÂÄ¿³ç ¼º´ÉÀ» ¶³¾îÆ®¸®´Â ¿øÀÎÀÌ µÉ ¼öµµ ÀÖÀ¸´Ï, ¹Ýµå½Ã ·çÇÁ³»¿¡ µé¾îÀÖ´Â ÄÚµå Å©±â°¡ ÀÛÀ» °æ¿ì¿¡¸¸ Àû¿ëÇØ¾ß ÇÑ´Ù.

·çÇÁ¸¦ ¿ÏÀüÈ÷ Ç®Áö ¾Ê°í ¾ð·Ñ¸µÀ̶ó´Â ±â¹ýÀ» »ç¿ëÇØ¼­ Å©±â¿Í ¼º´ÉÀÇ ±ÕÇüÀ» ¸ÂÃß´Â ¹æ¹ýµµ ÀÖ´Ù. ARM Ç÷§ÆûÀ» ¿¹·Î µé¾îº¸ÀÚ¸é ARM7À̳ª ARM9 ÇÁ·Î¼¼¼­¿¡¼­ »¬¼ÀÀ» ó¸®ÇÏ´Â µ¥ÇÑ »çÀÌŬ, ºÐ±â¸¦ ó¸®ÇÏ´Â µ¥ ¼¼ »çÀÌŬÀÌ ¼Ò¿äµÈ´Ù. ÀüüÀûÀ¸·Î ·çÇÁ¸¦ Çѹø µµ´Â µ¥¿¡ ³× »çÀÌŬÀÌ ÇÊ¿äÇÑ ¼ÀÀÌ´Ù.

ÀÌ·² °æ¿ì¿¡ ·çÇÁ¹®ÀÇ ¸öü¸¦ ¿©·¯ Â÷·Ê ¹Ýº¹Çؼ­ °°Àº ºñÀ²¸¸Å­ ¹Ýº¹¼ö¸¦ ÁÙÀÌ¸é ¼º´ÉÀ» ³ôÀÏ ¼ö ÀÖ´Ù. <¸®½ºÆ® 1>°ú <¸®½ºÆ® 2>¸¦ ºñ±³ÇØ º¸ÀÚ.

 <¸®½ºÆ® 1> ÀϹÝÀûÀÎ ¹æ¹ýÀÇ ¿¹Á¦


 <¸®½ºÆ® 2> ¾ð·Ñ¸µ ±â¹ýÀ¸·Î ÀÛ¼ºµÈ ¿¹Á¦


<¸®½ºÆ® 1>Àº ÀϹÝÀûÀÎ ¹æ¹ýÀ¸·Î ÀÛ¼ºÇßÀ¸¸ç, <¸®½ºÆ® 2>´Â ¾ð·Ñ¸µ ±â¹ýÀ¸·Î ÀÛ¼ºÇß´Ù. ¾ð·Ñ¸µ ±â¹ýÀ» »ç¿ëÇÒ °æ¿ì ·çÇÁ ¹Ýº¹ ȸ¼ö°¡ 4 * count »çÀÌŬ¿¡¼­ count »çÀÌŬ·Î ÁÙ¾îµé±â ¶§¹®¿¡ »ó´çÇÑ À̵æÀ» ¾òÀ» ¼ö ÀÖ´Ù. ¹°·Ð ¾ð·Ñ¸µ ¾çÀº ¹«ÀÛÁ¤ ´Ã¿©¼­´Â ¾È µÈ´Ù. ÄÚµå Å©±â°¡ Ä¿Áö°Ô µÇ¸é ij½Ã ÀûÁß·üÀÌ ¶³¾îÁ® »çÀÌŬÀ» Àý¾àÇØ¼­ ¾ò´Â ÀåÁ¡À» ¸ðµÎ »ó¼â½ÃÄѹö¸®´Â Å¿ÀÌ´Ù.

¹è¿­ Å©±â°¡ ¾ð·Ñ¸µ ¾ç¿¡ ºñ·ÊÇÒ °æ¿ì, °¡Àå ³ôÀº ¼º´ÉÀ» ´Þ¼ºÇϱ⠶§¹®¿¡ ¸¸ÀÏ ¹è¿­ Å©±â°¡ ¾ð·Ñ¸µ ¾çÀÇ ¹è¼ö·Î ¶³¾îÁöÁö ¾ÊÀ¸¸é ¹è¼ö Å©±â¸¸Å­¸¸ ¾ð·Ñ¸µ ·çÇÁ·Î ¸¸µé°í ³ª¸ÓÁö´Â ·çÇÁ ¹Ù±ù¿¡¼­ ¾ð·Ñ¸µÇÏ¸é µÈ´Ù. °á±¹ ¹è¿­ Å©±â¸¦ 4³ª 8 ¹è¼ö·Î Á¤·Ä½Ãų °æ¿ì Äڵ带 ¾îÁö·´È÷Áö ¾Ê°íµµ ·çÇÁ¸¦ 2, 4, 8¹è·Î ½±°Ô ¾ð·Ñ¸µÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

¡Ü ·çÇÁ °áÇÕ
·çÇÁ´Â ¾ÆÅ°ÅØÃ³¸¦ ºÒ¹®ÇÏ°í °ªºñ½Ñ ¿¬»êÀÌ ÇÊ¿äÇϹǷΠ¿©·¯·çÇÁ°¡ ÀÖÀ» °æ¿ì Çϳª·Î °áÇÕÇÏ´Â ÆíÀÌ ¼º´É¸é¿¡¼­ ¿ùµîÈ÷ À¯¸®ÇÏ´Ù. <¸®½ºÆ® 3>°ú <¸®½ºÆ® 4>¸¦ »ìÆìº¸ÀÚ.

 <¸®½ºÆ® 3> ·çÇÁ¸¦ µÎ ¹ø µ¹¸®´Â ¿¹Á¦


 <¸®½ºÆ® 4> ·çÇÁ¸¦ ÇÑ ¹ø µ¹¸®´Â ¿¹Á¦


¿¹Á¦¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ <¸®½ºÆ® 3>ÀÇ foo´Â ·çÇÁ¸¦ µÎ ¹ø µ¹¸®´Â ¹Ý¸é¿¡ <¸®½ºÆ® 4>ÀÇ bar´Â ÇÑ ¹ø¸¸ µ¹¸°´Ù. ÀÌ·² °æ¿ì ·çÇÁ ¿¬»ê¿¡ µû¸¥ »çÀÌŬÀ» Àý¾àÇÒ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó °æ¿ì¿¡ µû¶ó¼­´Â ij½Ã¸¦ Á» ´õ È¿°úÀûÀ¸·Î »ç¿ëÇÏ¿© ¼º´ÉÀ» ³ôÀÏ ¼ö ÀÖ´Ù.

¡Ü ºÒº¯ ÄÚµå ºÐ¸®
ÄÚµå ³»ºÎ¿¡¼­ ¹Ù²îÁö ¾ÊÀº ºÎºÐÀº ÄÚµå ¹Ù±ùÀ¸·Î ºÐ¸®½ÃÅ´À¸·Î½á ¹Ýº¹ÀûÀÎ °è»êÀ» ¸·À» ¼ö ÀÖ´Ù. ¾ÆÁÖ ´Ü¼øÇÑ ³í¸®ÀÎ µíÇÏÁö¸¸ Á¶±Ý¸¸ ½Å°æ ¾²¸é »ó´çÇÑ È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 5> ´ÙÁß ÇÔ¼ö È£Ãâ ¿¹Á¦


ºñ´Ü strlen °°Àº ÇÔ¼ö È£Ãâ»Ó¸¸ÀÌ ¾Æ´Ï¶ó »çÄ¢¿¬»ê°ú °°Àº °æ¿ì¿¡µµ °íÁ¤µÈ »ó¼ö °ªÀ» ·çÇÁ ³»ºÎ¿¡¼­ ¸Å¹ø °è»êÇÏ´Â ´ë½Å, º¯¼ö¸¦ Çϳª Àâ¾Æ ¹Ì¸® °è»êÇÑ µÚ¿¡ ·çÇÁ·Î ÁøÀÔÇÏ¿© »ó´çÇÑ °³¼± È¿°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. °¡µ¶¼ºÀ̳ª ±âŸ ÀÌÀ¯·Î ¸öü Å©±â°¡ ÀÛÀº ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÑ´Ù¸é ¸ÅÅ©·Î È®ÀåÀ̳ª ÀζóÀÎÀ» °í·ÁÇÏÀÚ.

 <¸®½ºÆ® 6> ´ÜÀÏ ÇÔ¼ö È£Ãâ ¿¹Á¦


µÎ ¸®½ºÆ® Áß <¸®½ºÆ® 6>ÀÇ barÀº ¸Å¹ø strlen ÇÔ¼ö¸¦ È£ÃâÇÏ´Â foo¿Í ´Þ¸® Çѹø¸¸ È£ÃâÇÑ´Ù. <¸®½ºÆ® 5>ÀÇ foo´Â strÀÇ ±æÀ̰¡ ±æ¾îÁú¼ö·Ï ´«¿¡ ¶ç°Ô ¼Ó·ÂÀÌ ´À·ÁÁöÁö¸¸ bar´Â Ç×»ó °íÁ¤ ½Ã°¢¿¡ ·çÇÁ¸¦ µ¹¸± ¼ö ÀÖ´Ù.

¡Ü ·çÇÁ Áõ°¡¸¦ °¨¼Ò·Î ´ëü
°ÅÀÇ ´ëºÎºÐÀÇ ¾ÆÅ°ÅØÃ³¿¡¼­´Â 0¿¡ µµ´ÞÇÒ ¶§ ZERO Ç÷¡±×¸¦ Àç¼³Á¤ÇÑ´Ù. ¶§¹®¿¡ ÁÙ¾îµç º¯¼ö¸¦ ¸í½ÃÀûÀ¸·Î 0°ú ºñ±³ÇÒ Çʿ䰡 ¾ø´Ù. ÀÌ·± ¹æ¹ýÀ» ÀÀ¿ëÇϸé for ·çÇÁ ¼Óµµ¸¦ ³ôÀÌ´Â ÇÑ °¡Áö ÈùÆ®¸¦ ãÀ» ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 7> ·çÇÁ Áõ°¡ ¿¹Á¦


 <¸®½ºÆ® 8> ·çÇÁ °¨¼Ò ¿¹Á¦


³í¸®ÀûÀ¸·Î´Â Å« Â÷À̰¡ ¾ø¾î º¸ÀδÙ. ÇÏÁö¸¸ µÎ Äڵ带 ¾î¼ÀºíÇÑ ³»¿ëÀ» »ìÆìº¸¸é À̾߱Ⱑ ´Þ¶óÁø´Ù. ARMÀÇ °æ¿ì¸¦ ¿¹·Î µéÁö¸¸ ´Ù¸¥ ¾ÆÅ°ÅØÃ³µµ °ÅÀÇ À¯»çÇÏ´Ù.

 <¸®½ºÆ® 9> ·çÇÁ Áõ°¡ÀÇ ¾î¼Àºí ¿¹


 <¸®½ºÆ® 10> ·çÇÁ °¨¼ÒÀÇ ¾î¼Àºí ¿¹


checksum_dec¿Í checksum_inc¸¦ ºñ±³Çغ¸¸é(¹ØÁÙ ±×Àº °÷À» ÂüÁ¶) Ç÷¡±× ¼³Á¤À» À§ÇÑ CMP ¸í·ÉÀÌ Çϳª ÁÙ¾îµé¾ú´Ù´Â »ç½ÇÀ» ¹ß°ßÇÒ ¼ö ÀÖ´Ù.

¡Ü ºÐ±â Á¦°Å
·çÇÁ¹®¿¡ ºÐ±â°¡ µé¾î°¡¸é ¼º´ÉÀÌ ¶³¾îÁø´Ù. ¶§¹®¿¡ ·çÇÁ ³»¿¡¼­ ºÐ±â¸¦ ¾î¶»°Ô Á¦°ÅÇØ¾ß ÇÒ Áö °í¹ÎÇØ¾ß ÇÑ´Ù. ¸¸¾à ÃÖÀûÈ­ ÄÄÆÄÀÏ·¯¶ó´Â °ÍÀÌ À־ ÀÌ·± ÀϵéÀ» °³¹ßÀÚ°¡ ÀÏÀÏÀÌ ÇÏÁö ¾Ê´Â´Ù¸é ¸ô¶óµµ ÀÏ´Ü ¾ÆÁ÷Àº ¸ðµÎ ¼öÀÛ¾÷À¸·Î ÇØ¾ß ÇÏ´Â ÀϵéÀÌ´Ù. <¸®½ºÆ® 11>À» »ìÆìº¸ÀÚ.

 <¸®½ºÆ® 11> ºÐ±â°¡ ÀÖ´Â ·çÇÁ¹®


ÄÚµå ³í¸®»óÀ¸·Î´Â Å« ¹®Á¦°¡ ¾ø¾î º¸ÀδÙ. ÇÏÁö¸¸ <¸®½ºÆ®11>À» <¸®½ºÆ® 12>¿Í °°ÀÌ ¼öÁ¤ÇÏ¸é ·çÇÁ¹® ¾È¿¡¼­ Á¶°Ç¹®À» Á¦°ÅÇÒ ¼ö ÀÖ¾î ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 12> <¸®½ºÆ® 11>¿¡¼­ ºÐ±â°¡ Á¦°ÅµÈ ÄÚµå


À̹ø¿¡´Â <¸®½ºÆ® 1>ÀÇ checksum ÇÔ¼ö¸¦ <¸®½ºÆ® 13>°ú °°ÀÌ °íÃĺ¸ÀÚ.

 <¸®½ºÆ® 13> <¸®½ºÆ® 1>ÀÇ ¼öÁ¤


Äڵ带 ÀÌ·¸°Ô °íÄ¡¸é ¿ª½Ã óÀ½¿¡ count¿Í 0À» ºñ±³ÇÏ´Â ºÎºÐÀÌ ºüÁ®¼­ µÎ »çÀÌŬ(ºñ±³¿¡ ÀÌÀº ºÐ±â)À» Àý¾àÇÒ ¼ö ÀÖ´Ù. ¹°·Ð ¾ð·Ñ¸µ ±â¹ý¿¡ ºñÇØ ¼º´ÉÀÌ ¶³¾îÁö±ä ÇÏÁö¸¸ ÄÚµå Å©±â¸¦ À¯ÁöÇÑ »óÅ¿¡¼­ ó¸® ¼Óµµµµ ¾î´À Á¤µµ °³¼±ÇÒ ¼ö ÀÖÀ¸´Ï µÎ ¸¶¸® Åä³¢¸¦ ¸ðµÎ Àâ¾Æ¾ß ÇÏ´Â °æ¿ì¿¡ À¯¿ëÇÏ°Ô ¾µ ¼ö ÀÖ´Ù.

¿Ö ÀÌ·¸°Ô ·çÇÁ ÃÖÀûÈ­¿¡ ¸ñ¼ûÀ» °Å³ª?  

´Ù¸¥ ÃÖÀûÈ­ ±â¹ýµµ ¸¹Àº »óȲ¿¡¼­ ·çÇÁ ÃÖÀûÈ­¿¡ »ó´çÇÑ Áö¸éÀ» ÇÒ¾ÖÇØ¼­ ´Ù¾çÇÑ ¹æ¹ýÀ» ¼Ò°³ÇÏ´Â ÀÌÀ¯´Â ¿ì¸® ÁÖº¯¿¡¼­ »ý°¢º¸´Ù ·çÇÁ¿Í °ü·ÃµÈ ¼º´É ÀúÇϰ¡ ¸¹ÀÌ ÀϾ±â ¶§¹®ÀÌ´Ù.

ÀÓº£µðµå Àåºñ¸¦ °³¹ßÇÒ ¶§ ½Ã½ºÅÛ ¼Óµµ¸¦ °³¼±Çϱâ À§ÇØ »ç¹æÆÈ¹æÀ¸·Î ¶Ù¾î´Ù³à º¸´Ï °á±¹ ·çÇÁ Ƚ¼ö¸¦ ÁÙÀ̰ųª, ·çÇÁ Çϳª¸¦ µ¹ ¶§ ´Ü ¸î »çÀÌŬÀÌ¶óµµ ¾Æ³¢´Â ¹æ¹ýÀ¸·Î ±Í°áµÊÀ» ¿©·¯ Â÷·Ê ¸ñ°ÝÇß´Ù.

Áö±Ýµµ ±â¾ï³ª´Â °¡Àå ±ØÀûÀÎ ¼º´É °³¼±Àº ¼öõ ¹ø¿¡¼­ ¼ö¸¸ ¹øÀ» ¹Ýº¹ÇÏ´Â ·çÇÁ ³»ºÎÀÇ ºÒº¯½ÄÀ» ¸ÅÅ©·Î·Î Á¤ÀÇÇØ¼­ È®ÀåÇßÀ» ¶§ ¼º´ÉÀÌ Àڱ׸¶Ä¡ 2¹è¿¡¼­ 10¹è±îÁö Çâ»óµÇ¾úÀ» ¶§¿´´Ù.

¾Õ¼­ strlen°ú °°Àº °ªºñ½Ñ ÇÔ¼ö¸¦ ·çÇÁ ³»ºÎ¿¡ ³ÖÀº ¿¹Á¦¸¦ º¸°í ¿ô°í ³Ñ±æÁö ¸ð¸£°ÚÁö¸¸, ÁÖº¯ Äڵ带 »ìÆìº¸¸é ÀǿܷΠÀÌ·± »ç¼ÒÇÏ´Ù°í º¸¸é »ç¼ÒÇÏÁö¸¸ ¼º´É¿¡ Ä¡¸íŸ¸¦ ÀÔÈ÷´Â Äڵ尡 ¸¹´Ù. ÃÖÀûÈ­°¡ ÇÊ¿äÇÏ´Ù¸é °¡Àå ¸ÕÀú ·çÇÁ¿Í ·çÇÁ ³»ºÎ¿¡ µé¾îÀÖ´Â ºÐ±â¹®À» ÁýÁß °ø·«Çϱ⠹ٶõ´Ù.


ºÐ±â ÃÖÀûÈ­
·çÇÁ ÃÖÀûÈ­¿¡ À̾î À̹ø¿¡´Â ºÐ±â ÃÖÀûÈ­¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ. ·çÇÁ ÃÖÀûÈ­´Â Á¶±Ý¸¸ ¼ÕÀ» º¸¸é »ó´çÇÑ ¼º´É °³¼±À» ÀÌ·ê ¼ö ÀÖ´Â ¹Ý¸é ºÐ±â ÃÖÀûÈ­´Â ±¸Çöµµ ¾î·Æ°í ¼º´É °³¼± È¿°úµµ ¹Ì¹ÌÇÏ´Ù. ÇÏÁö¸¸ ¸î °¡Áö ±ÔÄ¢À» ¾Ë°í ÀÖ´Ù¸é ÇÁ·Î±×·¥ ÀÛ¼º °úÁ¤¿¡¼­ ÀÚ¿¬½º·´°Ô ¼º´ÉÀ» ³ôÀÌ´Â Ãâ¹ßÁ¡À̶ó´Â Á¡À» ¿°µÎ¿¡ µÐ´Ù¸é ¹Ýµå½Ã °ü½ÉÀ» °¡Á®¾ß ÇÒ ±â¹ýÀÌ´Ù.

¡Ü ±âº» switch ~ case ¹® ÃÖÀûÈ­
ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Ù º¸¸é switch ~ case ¹®À» ÀÚÁÖ »ç¿ëÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸ switch ~ case ¹®Àº ½ÇÇà Áß¿¡ ¼ö¸¹Àº Á¶°ÇÀ» ÆÇº°Çؼ­ ºÐ±âÇØ¾ß Çϱ⠶§¹®¿¡ CPU ÀÔÀå¿¡¼­´Â »ó´çÈ÷ ³­°¨ÇÑ ±¸¹®À̶ó°í º¸¸é Ʋ¸²¾ø´Ù. <¸®½ºÆ® 14>¸¦ »ìÆìº¸ÀÚ.

 <¸®½ºÆ® 14> switch ~ case ¹® ¿¹Á¦


<¸®½ºÆ® 14>¿Í °°Àº Äڵ带 ÀÛ¼ºÇßÀ» °æ¿ì ÄÄÆÄÀÏ·¯´Â 10, 12, 14, 16, 20ÀÏ °æ¿ì¸¦ ÀÏÀÏÀÌ ÆÇ´ÜÇØ¾ß ÇÏ´Â Å¿¿¡ »ó´çÇÑ ¾î·Á¿òÀ» °Þ´Â´Ù. ÆÄ¿öPCÀÇ ¾î¼Àºí¸® ÄÚµåÀÎ <¸®½ºÆ® 15>¸¦ º¸¸é <¸®½ºÆ® 14> Äڵ尡 ¾ó¸¶³ª º¹ÀâÇÏ°Ô ¸¸µé¾îÁö´ÂÁö ¾Ë ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 15> <¸®½ºÆ® 14>ÀÇ ÆÄ¿öPC ¾î¼Àºí¸® ÄÚµå


ÇÏÁö¸¸ ¾ÆÁÖ °£´ÜÇÑ ¼öÁ¤¸¸ ÇÑ <¸®½ºÆ® 16>À» ¾î¼Àºí¸® ÄÚµå·Î ¸¸µé¸é ÀüÇô ´Ù¸¥ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 16> ¼öÁ¤µÈ switch ~ case ¹® ¿¹Á¦


<¸®½ºÆ® 16>À» ¾î¼Àºí¸® ÄÚµå·Î ¸¸µé¸é <¸®½ºÆ® 14>¶§ º¸´Ù ÄÚµåÀÇ ¾çµµ ÈξÀ Àû¾îÁö°í ÆÇ´Ü Ƚ¼öµµ ÁÙ¾îµå´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù. º°·Î ´Ù¸£Áö ¾ÊÀº ÄÚµåÁö¸¸ ±× °á°ú´Â Å« Â÷À̸¦ ³ªÅ¸³»´Â °ÍÀÌ´Ù. ±×¸®°í ÀÌ Â÷ÀÌÀÇ Á߽ɿ¡´Â ÄÄÆÄÀÏ·¯°¡ ÁÁ¾ÆÇÏ´Â ¹æ¹ýÀ¸·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÑ´Ù´Â ±ÔÄ¢ÀÌ ÀÖ´Ù.

 <¸®½ºÆ® 17> <¸®½ºÆ® 16>ÀÇ ¾î¼Àºí¸® ÄÚµå


¡Ü °í±Þ switch ~ case ¹® ÃÖÀûÈ­
¾Õ¿¡¼­´Â ¾ÆÁÖ ±âÃÊÀûÀÎ ±¸¼ºÀÇ switch ~ case ¹®ÀÇ ÃÖÀûÈ­ ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. À̹ø¿¡´Â Á¶±Ý ´õ º¹ÀâÇÑ ÇüÅÂÀÇ Switch~ case ¹®À» ÀÌ¿ëÇØ¼­ ÃÖÀûÈ­ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¸ÀÚ.

 <¸®½ºÆ® 18> °í±Þ switch ~ case ¹® ¿¹Á¦


°¨ÀÌ ÀÖ´Â °³¹ßÀÚ¶ó¸é <¸®½ºÆ® 18>°ú °°Àº Äڵ尡 Å×ÀÌºí °Ë»ö¹ýÀ» »ç¿ëÇÒ °æ¿ì Á¦°ÝÀ̶ó´Â »ý°¢ÀÌ µéÁö ¸ð¸£°Ú´Ù. À̹ø¿¡´Â ÆÄ¿öPC ¾î¼Àºí¸®¾î¿Í ARM ¾î¼Àºí¸®¾î¸¦ µ¿½Ã¿¡ Á¦½ÃÇØ¼­ ºñ±³Çغ¸±â·Î ÇÏÀÚ. ¸ÕÀú <¸®½ºÆ® 19>¸¦ ÅëÇØ Å×ÀÌºí °Ë»ö ±â¹ýÀ» »ç¿ëÇÏ´Â ÆÄ¿öPCºÎÅÍ »ìÆìº¸ÀÚ.

 <¸®½ºÆ® 19> <¸®½ºÆ® 18>ÀÇ ÆÄ¿öPC ¾î¼Àºí¸® ÄÚµå


<¸®½ºÆ® 20>Àº Å×ÀÌºí °Ë»ö ±â¹ýÀ» Ȱ¿ëÇÏ´Â ARM ¾î¼Àºí¸®¾îÀÇ ÄÚµåÀÌ´Ù. code_for_case_?¸¦ ´ãÀº TABLEÀ» Á¤ÀÇÇϰí, ¿ÀÇÁ¼ÂÀ» °è»êÇØ¼­ ¹Ù·Î ÇÁ·Î±×·¥ Ä«¿îÅ͸¦ ÀûÀçÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÒ °æ¿ì ÃÖÀûÈ­¸¦ ´Þ¼ºÇÒ ¼ö ÀÖ´Ù.

 <¸®½ºÆ® 20> <¸®½ºÆ® 18>ÀÇ ARM ¾î¼Àºí¸® ÄÚµå


<¸®½ºÆ® 18>°ú °°Àº ¹æ½ÄÀº ¾ÆÁÖ ºü¸£°Ô ½ÇÇàµÇ±â ¶§¹®¿¡ switch ¹®À» »ç¿ëÇÏ´õ¶óµµ ºñ±³¿¡ µû¸£´Â ºÎÇϰ¡ °ÅÀÇ ¾ø´Ù. ¹°·Ð ÃÖÀûÈ­ ÄÄÆÄÀÏ·¯ Á¾·ù³ª ¹®¸Æ¿¡ µû¶ó ¹üÀ§ ºñ±³³ª Å×ÀÌºí ¹æ½ÄÀ¸·Î Äڵ带 »ý¼ºÇÏÁö ¸øÇÒ ¼öµµ ÀÖ´Ù. ¹Ý¸é¿¡ ¹«ÀÛÀÇ caseó·³ 100% ºÒ°¡´ÉÇÑ »óȲÀÌ ¾Æ´Ô¿¡ ÁÖ¸ñÇÏÀÚ.¡® ÇÒ ¼ö ¾ø´Ù¡¯¿Í¡®ÇÒ ¼ö ÀÖ´Ù¡¯´Â Çϴðú ¶¥ Â÷À̱⠶§¹®ÀÌ´Ù.

°í±Þ ÃÖÀûÈ­ ±â¹ý: ARM CPU ¾ÆÅ°ÅØÃ³¿¡ ¹ÐÁ¢ÇÑ memcpy ·çƾ
Áö±Ý±îÁö´Â ±¸Á¶È­ ÇÁ·Î±×·¡¹Ö¿¡¼­ °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â ¿ä¼ÒÀÎ ¹Ýº¹°ú ºÐ±â¿¡ ´ëÇÑ C ÇÁ·Î±×·¡¹Ö ÃÖÀûÈ­ ¹æ¾È¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. ±×·³, CPU ¾ÆÅ°ÅØÃ³¿¡ ¹ÐÁ¢ÇÑ ¹æ½ÄÀ¸·Î ¾î¼Àºí¸® ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ¾ß ÇÏ´Â °æ¿ì´Â ¾î¶³±î? ¹°·Ð ÀÌ °æ¿ì¿¡µµ ÃÖÀûÈ­¸¦ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ±â¹ýµéÀÌ ÀÖ´Ù.

±× Áß °¡Àå ´ëÇ¥ÀûÀÎ °ÍÀÌ ¹Ù·Î ¸Þ¸ð¸® °ü·Ã ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ¶§ÀÌ´Ù. ½ÇÁ¦·Î ÃÖÀûÈ­µÈ ¸Þ¸ð¸®°ü·Ã ¶óÀ̺귯¸®´Â ´ëºÎºÐ ¾î¼Àºí¸® ¾ð¾î·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù.

¸®´ª½º Ä¿³Î ³»ºÎ¿¡¼­µµ ÀÚÁÖ »ç¿ëÇÏ´Â ¸Þ¸ð¸® ÇÔ¼ö´Â ¸ðµÎ ¾ÆÅ°ÅØÃ³ º°·Î ¾î¼Àºí¸®¾î¸¦ »ç¿ëÇÑ´Ù. ¸®´ª½º Ä¿³Î Äڵ带 ¹Þ¾Æ¿Í¼­ arch/¾ÆÅ°ÅØÃ³/lib ¾Æ·¡¸¦ º¸¸é ¾ÆÅ°ÅØÃ³ º° ÃÖÀûÈ­ ±â¹ýÀ» ÃÑÁ¤¸®ÇÑ ¾î¼Àºí¸® Äڵ带 È®ÀÎÇÒ ¼ö ÀÖ´Ù.

³í¸® Æ®¸®¿Í ÇØ½Ã¸¦ »ç¿ëÇÑ ¼öµ¿ switch ~ case ¹® Á¦ÀÛ  

case ¹®¿¡ µé¾î°¡´Â °ªÀÌ ¿¬¼ÓÀûÀÎ °íÁ¤ ¹üÀ§ÀÏ °æ¿ì¿¡´Â ÄÄÆÄÀÏ·¯ Â÷¿ø¿¡¼­ ¾î´À Á¤µµ ÃÖÀûÈ­°¡ °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ ÀϹÝÀûÀÎ switch ~ case ¹®¿¡¼­´Â ¾î¶»°Ô ÇÒ±î? Å©°Ô µÎ °¡Áö ¹æ¹ýÀ» »ý°¢Çغ¼ ¼ö ÀÖ´Ù. Çϳª´Â ¼±Çü ½ºÀ§Ä¡ Æ®¸®¿¡¼­ ¹þ¾î³ª ±íÀ̰¡ ¾èÀº Æ®¸®¸¦ ±¸¼ºÇÏ´Â ¹æ¹ýÀÌ´Ù.

³ª¸ÓÁö Çϳª´Â case ¹®¿¡ µé¾î°¡´Â Á¶°ÇÀÌ ±ÔÄ¢¼ºÀ» °¡Áú °æ¿ì ÇØ½Ã Å×À̺íÀ» ¸¸µé¾î¼­ ´ëÀÀÇϵµ·Ï ÇÏ´Â ¹æ¹ýÀÌ´Ù. ÇÏÁö¸¸ µÑ ´Ù ¾î¼Àºí¸®¾î¸¦ »ç¿ëÇØ¼­ ÄÚµùÀ» ÁøÇàÇØ¾ß ÇϹǷΠ½ÇÁ¦ Àû¿ë °úÁ¤¿¡¼­ ÅõÀÔÇÑ ºñ¿ë¿¡ ºñÇØ ÀÌÀÍÀº ±×´ÙÁö Å©Áö ¾Ê´Ù.

°á±¹ switch ~ case ¹®À» »ç¿ëÇÒ °æ¿ì ÃÖ´ëÇÑ case ¹®¿¡ Àϰü¼º ÀÖ´Â Á¶°ÇÀ» ÁöÁ¤ÇØ¾ß ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÑ ÀÚµ¿ ÃÖÀûÈ­ ÀÛ¾÷À̳ª ¾î¼Àºí¸®¾î¸¦ »ç¿ëÇÑ ¼öµ¿ ÃÖÀûÈ­ ÀÛ¾÷ÀÌ ½¬¿öÁø´Ù.



°ü·Ã ¶óÀ̺귯¸®´Â ´ëºÎºÐ ¾î¼Àºí¸® ¾ð¾î·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù. ¸®´ª½º Ä¿³Î ³»ºÎ¿¡¼­µµ ÀÚÁÖ »ç¿ëÇÏ´Â ¸Þ¸ð¸® ÇÔ¼ö´Â ¸ðµÎ ¾ÆÅ°ÅØÃ³ º°·Î ¾î¼Àºí¸®¾î¸¦ »ç¿ëÇÑ´Ù. ¸®´ª½º Ä¿³Î Äڵ带 ¹Þ¾Æ¿Í¼­ arch/¾ÆÅ°ÅØÃ³/lib ¾Æ·¡¸¦ º¸¸é ¾ÆÅ°ÅØÃ³ º° ÃÖÀûÈ­ ±â¹ýÀ» ÃÑÁ¤¸®ÇÑ ¾î¼Àºí¸® Äڵ带 È®ÀÎÇÒ ¼ö ÀÖ´Ù.

CPU ¾ÆÅ°ÅØÃ³¿¡ ¹ÐÁ¢ÇÑ ÃÖÀûÈ­ÀÇ ÁÁÀº ¿¹·Î uClibc¿¡¼­ ±¸ÇöÇϰí ÀÖ´Â memcpy(memmove, bcopy) ·çƾÀ» µé ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ´Â °úÁ¤¿¡¼­ »ç¿ëÇÏ´Â °¢Á¾ ÃÖÀûÈ­ ±â¹ýÀ» ÀÌÇØÇϰí ÀÖ´Ù¸é ¾î·ÆÁö ¾Ê°Ô ´Ù¸¥ ºÎ¹®¿¡µµ Àû¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

uClibc¿¡ µé¾îÀÖ´Â memcpy ÇÔ¼ö ±¸ÇöºÎ´Â »ó´çÈ÷ ±æ°í º¹ÀâÇϱ⠶§¹®¿¡ ¸ðµÎ ¼Ò°³Çϱâ´Â ¾î·Æ´Ù. ¿©±â¿¡¼­´Â ÀÏ´Ü ³»ºÎ¿¡¼­ ¾î¶² Á¡¿¡ ÁÖ¸ñÇØ¼­ ±¸ÇöÇß´ÂÁö¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.

º¹»ç °úÁ¤¿¡¼­ Á¶±ÝÀÌ¶óµµ ¼Ó·ÂÀ» ³ôÀ̱â À§ÇØ ´Ù¾çÇÑ Á¶°ÇÀ» °í·ÁÇÑ´Ù.

¡Ü ¹æÇâ: Á¤¹æÇâ º¹»çÀΰ¡ ¿ª¹æÇâ º¹»çÀΰ¡(º¹»ç ½ÃÀÛ ÁÖ¼Ò¿Í º¹»ç ´ë»ó ÁÖ¼Ò Å©±â¸¦ ºñ±³ÇÑ´Ù)

¡Ü Á¤·Ä: º¹»ç ½ÃÀÛ ÁÖ¼Ò¿Í º¹»ç ´ë»ó ÁÖ¼Ò À§Ä¡°¡ Á¤·ÄµÇ¾îÀִ°¡

¡Ü Å©±â: 12¹ÙÀÌÆ®³ª 32¹ÙÀÌÆ® ´ÜÀ§·Î º¹»ç°¡ °¡´ÉÇѰ¡

°¢ °æ¿ì¸¦ ¸ðµÎ µûÁ®¼­ ÇØ´ç Á¶°Ç¿¡ ¸Â´Â ¼­ºê·çƾÀ¸·Î ºÐ±âÇϱ⠶§¹®¿¡ memcpy¸¦ ±¸ÇöÇÏ´Â ¾î¼Àºí¸® ÄÚµå ±æÀ̰¡ ¹«Ã´ ±æ¾îÁ³´Ù. ARM CPU¿¡¼­ Á¦°øÇÏ´Â LDM/STM ¸í·ÉÀ» »ç¿ëÇØ¼­ Çѹø¿¡ ºí·Ï Àü¼ÛÀÌ °¡´ÉÇÑ °æ¿ì¸¦ »ìÇDZâ À§ÇØ Å©±â¸¦ µûÁö¸ç, Á¤·ÄÀÇ °æ¿ì ¸Þ¸ð¸® ¹ö½º¿Í ij½Ã ¶óÀÎÀ» È¿°úÀûÀ¸·Î »ç¿ëÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î µûÁø´Ù. ARM CPUÀÇ °æ¿ì ¿£µð¾ÈÀ» ¸®Æ²À̳ª ºò ¾çÂÊ Áß Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î, ¹æÇâ±îÁö Àß µûÁ®¾ß ÇÑ´Ù.

32ºñÆ® ºí·Ï Àü¼ÛÀ» À§ÇÑ ARM ¾î¼Àºí¸® ÄÚµå Á¶°¢À» º¸¸é <¸®½ºÆ® 21>°ú °°ÀÌ ´Ü¼øÇϸ鼭µµ ¹«Ã´ È¿À²ÀûÀÌ´Ù.

 <¸®½ºÆ® 21> 32ºñÆ® ºí·Ï Àü¼ÛÀ» À§ÇÑ ARM ¾î¼Àºí¸® ÄÚµå


¾Õ¿¡¼­ ¼³¸íÇÑ Á¶°ÇÀ» °í·ÁÇØº¸¸é Lmemcpy¸¦ »ç¿ëÇÒ °æ¿ì¿¡´Â º¹»ç ½ÃÀÛ°ú º¹»ç ´ë»ó ÁÖ¼Ò°¡ Á¤·ÄÀÌ µÇ¾îÀÖ°í, Àüü ÀÚ·á Å©±â°¡ 32ºñÆ® ¹è¼ö°¡ µÉ °æ¿ì ÃÖ´ëÀÇ È¿°ú¸¦ ¿Ã¸± ¼ö ÀÖ´Ù. ÀÌ·¡¼­ ¿ì¸®´Â ¶§·Î C¸¸ »ç¿ëÇÏ´Â °æ¿ì¿¡µµ º°·Î »ó°ü¾ø¾î º¸ÀÌ´Â ¾î¼Àºí¸®¾î·Î ±¸ÇöµÈ ¶óÀ̺귯¸®¸¦ È®ÀÎÇÒ Çʿ䰡 ÀÖ´Â °ÍÀÌ´Ù.

C ¾ð¾î¸¦ ÄÄÆÄÀÏ·¯°¡ ÁÁ¾ÆÇÏ´Â ¹æ½ÄÀ¸·Î Á¦´ë·Î ÀÛ¼ºÇϱ⸸ ÇØµµ »ó´çÇÑ ¼º´É °³¼±À» ´Þ¼ºÇÒ ¼ö ÀÖ´Ù´Â »ç½ÇÀ» Á÷Á¢ È®ÀÎÇß´Ù. ¹°·Ð Á¤¸» ÁÁÀº ÄÄÆÄÀÏ·¯¶ó¸é À̹ø ±â»ç¿¡¼­ ¼Ò°³ÇÑ ³»¿ë¿¡ ¸ÂÃç¼­ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏÁö ¾Ê´õ¶óµµ °³¹ßÀÚ Àǵµ¸¦ ÆÄ¾ÇÇØ¼­ ÀÚµ¿À¸·Î ó¸®ÇØÁà¾ß ÇϰÚÁö¸¸ À¯°¨½º·´°Ôµµ ÀÌ·¸°Ô ÈǸ¢ÇÑ ÄÄÆÄÀÏ·¯´Â Á¸ÀçÇÏÁö ¾Ê´Â´Ù.

ÄÄÆÄÀÏ·¯ ÀÌ·ÐÀÌ °è¼ÓÇØ¼­ ¹ßÀüÇϰí ÃÖÀûÈ­ ±â´ÉÀ» °­È­ÇÑ ÄÄÆÄÀÏ·¯ ±¸Çö °á°ú¹°ÀÌ °è¼ÓÇØ¼­ ³ª¿À°í´Â ÀÖÁö¸¸ ±× ¸¸Å­ ÄÄÇ»ÅÍ ¾ÆÅ°ÅØÃ³¿Í ¾Ë°í¸®ÁòÀÌ º¹ÀâÇØÁ³±â ¶§¹®¿¡ È¿°ú°¡ ¹Ý°¨µÇ´Â ´À³¦ÀÌ´Ù.

°á±¹ ÃÖ°í ¼º´ÉÀ» ´Þ¼ºÇϱâ À§Çؼ­´Â °³¹ßÀÚ°¡ ¸¸µç ÇÔ¼ö¸¦ ¾î¼Àºí¸® ÄÚµå·Î ¹Ù²ã¼­ ¾î¶² ¹®Á¦Á¡ÀÌ ÀÖ´ÂÁö ÆÄ¾ÇÇÏ°í ¼Óµµ¸¦ ³ôÀ̱â À§ÇØ ´Ù¸¥ ÄÚµåµé°ú ºñ±³ÇÏ¸ç ¾î¶² Á¦¾àÁ¡ÀÌ ÀÖ´ÂÁö ÆÄ¾ÇÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô ¹®Á¦Á¡°ú Á¦¾àÁ¡À» ÆÄ¾ÇÇÏ°í ³ª¸é ÄÄÆÄÀÏ·¯°¡ ÁÁ¾ÆÇϵµ·Ï ÃÖÀûÈ­ÇÑ Äڵ带 C·Î ¸¸µé ¼ö ÀÖ°Ô µÈ´Ù.

ÃÖÀûÈ­¿Í °ü·ÃÇØ¼­ ÁÖ·Î C ¾ð¾îÀûÀΠƯ¼º¿¡ ÁýÁßÇÏ´Ù º¸´Ï À̹ø ±â»ç¿¡¼­´Â CPU ¸Þ¸ð¸®¹ö½º Ư¼º, CPU ij½Ã ¶óÀÎ Á¤·Ä, ÆÄÀÌÇÁ¶óÀÎ, ºÎµ¿¼Ò¼öÁ¡ ·çƾ±îÁö °í·ÁÇÑ ÃÖÀûÈ­ ¹æ½ÄÀº ´Ù·çÁö ¾Ê¾Ò´Ù. ´ÙÀ½¿¡ ±âȸ°¡ »ý±â¸é CPU ¾ÆÅ°ÅØÃ³¿Í °ü·ÃÇØ¼­ Á» ´õ ±íÀÌ ÀÖ´Â ÃÖÀûÈ­ ±â¹ýÀ» ´Ù·ç±â·Î ¾à¼ÓÇϸç, ¾µ¸¸ÇÑ Âü°í ÀڷḦ Á¤¸®ÇØ µÎ¾úÀ¸´Ï Âü°íÇÏÀÚ. @


Âü°íÀÚ·á
1. ARM System Developer¡¯s Guide, (ÁÖ) ¾¾·¦½Ã½º ¿ª, Andrew N. Sloss, Dominic Symes, Chris Wright Àú, 2005³â »çÀÌÅØ ¹Ìµð¾î Ãâ°£.
2. ÀÓº£µðµå ¸Þ¸ð¸® ÃÖÀûÈ­ ±â¹ý, ¿©ÀÎÃá ¿ª, Kris Kaspersky Àú, 2004³â ¿¡ÀÌÄÜ Ãâ°£.
3. GCC ¿ÏÀü Á¤º¹, ±è°æÇå ¿ª, Kurt Wall°ú William von Hagen Àú, 2006³â ¿¡ÀÌÄÜ Ãâ°£.
4. ¸®´ª½º ¹®Á¦ ºÐ¼®°ú ÇØ°á, ¹ÚÀçÈ£ ¿ª, ¸¶Å© Àªµù Àú, 2006³â ¿¡ÀÌÄÜ Ãâ°£.
5. ¸®´ª½º µð¹ö±ë°ú ¼º´É Æ©´×, ¹ÚÀçÈ£ ¿ª, ½ºÆ¼ºê º£½ºÆ® Àú, 2006³â ¿¡ÀÌÄÜ Ãâ°£.
6. Inside the machine, John Stokes, 2007. No Starch Press Ãâ°£.
7. À§Å°Çǵð¾Æ(ÃÖÀûÈ­): http://en.wikipedia.org/wiki/Optimization_%28computer _science%29
8. PowerPC Compiler Writer¡¯s Guide: http://openlook.org/blog/684
9. x86 ABI: http://www.caldera.com/developers/devspecs/abi386-4.pdf
10. x86_64 ABI: http://www.x86-64.org/documentation/abi.pdf
11. PowerPC 32bit ABI: http://www-3.ibm.com/chips/techlib/techlib.nsf/ techdocs/852569B20050FF77852569970071B0D6/$file/eabi_app.pdf
12. PowerPC 64bit ABI: http://www.freestandards.org/spec/ELF/ppc64/PPCelf64abi-1.9.html



* ÀÌ ±â»ç´Â ZDNet KoreaÀÇ Á¦ÈÞ¸ÅüÀÎ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î¿¡ °ÔÀçµÈ ³»¿ëÀÔ´Ï´Ù.
µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
¾ÆÀ̵ð ºñ¹Ð¹øÈ£
 
 
'ÁÖÃãÁÖÃã ¼Ò´Ï' º¸±ÞÇü Ä·ÄÚ´õ ½ÃÀå »ï¼º ¸Í°ø¡¦À¯Æ©ºê ¸ÂÃãÇü 'VM-MX20C' [00:07:48]
ÁøÇà ·ùÁØ¿µ ±âÀÚ, Á¦ÀÛ À¯È¸Çö PD
[ZDNET ¿µ¹®¹æ¼Û]±¸±Û À¥ºê¶ó¿ìÀú '±¸±Û Å©·Ò' º£Å¸¹öÀü °ø°³ [00:01:29]
Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
EMC-·¹³ëº¸, ¿Â¶óÀÎ µ¥ÀÌÅÍ ¹é...
SK C&C, ¾È»ê½Ã Áö´ÉÇü±³ÅëÁ¤...
Ä«Æä24 ¼îÇθô ÇØ¿Ü¹è¼Û '½ºÇǵå...
Çѱ¹¾îµµºñ, '¾ÖÅ©·Î¹î 9' ÇѱÛ...
LGÀüÀÚ, 8¹é¸¸ È­¼Ò ¸ÖƼ¹Ìµð¾î...
 
 
The Korean edition of 'ZDNet' is published under license from CNET Networks, Inc., San Francisco, CA, USA. Editorial items appearing in 'ZDNet Korea' that were originally published in the US Edition of 'ZDNet', 'CNET', and 'CNET News.com' are the copyright properties of CNET Networks, Inc. or its suppliers.
Copyright ¨Ï 2008 CNET Networks, Inc. All Rights Reserved. 'ZDNet', 'CNET' and 'CNET News.com' are trademarks of CNET Networks, Inc.