Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d40f11cf5b21d4287bbb5af7cbeec0a9 > files > 4

howto-text-ko-2006-5mdv2010.0.noarch.rpm

  ¾î  ¼À  ºí  ¸®   H O W T O    V 0 . 3 C

  ¿øÀúÀÚ : Francois-Rene Rideau rideau@ens.fr <mailto:rideau@ens.fr>
  ¹ö  Á¯ : 1996.6.15 0.3C
  ¹ø¿ªÀÚ : Çѵ¿ÈÆ      ddoch@hitel.kol.co.kr
  <mailto:ddoch@hitel.kol.co.kr>
  ¹ø¿ªÀÏ : 1996.9.27

  ( ¹ø¿ªÁÖ: ÀÌ ¹ø¿ª¹®¼­´Â ºÎÁ·ÇÑ ÀúÀÇ ¹®Àå½Ç·ÂÀ¸·Î Çʿ伺¿¡ ÀÇÇÏ¿©
  ¹ø¿ªÇÑ °á°ú·Î À߸øµÈ ¿À¿ª°ú Àǹ̿¡ ÀÌ»ó¾ø´Â ºÎºÐÀÌ ºüÁú ¼öµµ ÀÖÀ½À»
  ¹Ì¸® ¾Ë¸³´Ï´Ù.  µû¶ó¼­ À߸øµÈ ¹ø¿ªÀ¸·Î ¿À´Â Ã¥ÀÓÀº Àú¿¡°Ô ¾øÀ¸¸ç, ¸¸ÀÏ
  ¼öÁ¤ÇØ¾ß ÇÒ °÷ÀÌ ÀÖ´Ù¸é Àú¿¡°Ô ¿¬¶ôÀ» ÇØÁֽñ⠹ٶó¸ç, ¿øÀúÀÇ ¿À·ù¶ó¸é
  ¿øÀúÀÚ¿¡°Ô ¿¬¶ôÇØÁֽñ⠹ٶø´Ï´Ù.)  ¾î¼Àºí¸® HOWTO aka *Free* 32-bit
  x86 ¾î¼Àºí¸® FAQ aka Linux x86 ¾î¼Àºí¸® HOWTO == ÇÁ¸® ÇÁ·Î±×·¡¹Ö ÅøÀ»
  »ç¿ëÇÏ´Â x86 ¾î¼Àºí¸® ÇÏ¿ìÅõ == °Ë»ö¾î :assembly, assembler, free,
  macroprocessor, preprocessor, asm, inline asm, 32-bit, x86, i386, gas,
  as86, nasm Copyright (C) 1996 Francois-Rene Rideau.  ¿©·¯ºÐµéÀº ÀÌ
  ¹®¼­¸¦ º¯°æÇÏÁö ¾Ê´Â ¼±¿¡¼­ ¸¶À½´ë·Î ¹èÆ÷ÇÒ ¼ö ÀÖÀ¸¸ç, Á¶±ÝÀÇ ÁÖ¼®Àº
  °¡Çصµ »ó°ü¾ø´Ù.  ¿©·¯ºÐµéÀº ´Ù¸¥ °æ¿ì¿¡ ³ª¿¡°Ô À̹®¼­ÀÇ ¹èÆ÷¿¡ ´ëÇØ
  ÀÚÀ¯·Ó°Ô ¹°¾îº¼ ¼ö µµ ÀÖ´Ù.  ¸®´ª½º ¹®¼­È­ °èȹÀÇ ÁøÇàÀÚµéÀº ÀÌ ¹®¼­¸¦
  ÀÚÀ¯·Ó°Ô ÇÒ °ÍÀ̸ç, ´Ù¸¥ LDP ¹®¼­µéµµ °ð ¹Ù·Î Çã¶ôÀÌ µÉ °ÍÀÌ´Ù.
  Áß¿äÇÑ Á¡: ÀÌ ¹®¼­´Â ¾îµð±îÁö³ª º£Å¸ ¹öÁ¯ÀÌ´Ù. ¿©·¯ºÐµé¿¡°Ô´Â ´ÙÀ½°ú
  °°Àº Åö¼öÇÑ ±Ç¸® °¡ ÁÖ¾îÁø´Ù.  Áú¹®Çϱâ, Áú¹®¿¡ ´äÇϱâ, ÁÖ¾îÁø ´äº¯À»
  ¹Ù·Î Á¤Á¤Çϱâ, »õ·Î¿î FAQ ´äº¯µé¿¡ Ãß°¡Çϱâ, ´Ù¸¥ ¼ÒÇÁÆ®¿þ¾î¿¡ ¾Ï½Ã¸¦
  ÁÖ±â, ÇöÀçÀÇ °³¹ßÀÚ(³ª)¿¡°Ô ¿åÇϱâ, ±×¸®°í FAQÁøÇàÀ» ³ª´©¾î¼­ Çϱâ,
  ¿Ö³ÄÇÏ¸é ³ª´Â ´Ù¸¥ ÀÏÀ» ÇÏ°í Àֱ⠶§¹®ÀÌ´Ù...  ´Ù¸¥ °æ¿ì, ³ª¿¡°Ô
  ¿¬¶ôÇØ ´Þ¶ó.( ¸ÞÀÏ: rideau@ens.fr <mailto:rideau@ens.fr>) ¾Æ¸¶µµ
  ¿ì¸®´Â Raymond Moon ¿¡°Ô comp.lang.asm.x86¿¡ ÀÖ´Â °ÅÀÇ FAQ¿¡ À̺κÐÀ»
  º¸Å´ °ÍÀ» ³³µæ½Ãų ¼ö ÀÖÀ» °ÍÀÌ´Ù.
  ______________________________________________________________________

  ¸ñÂ÷

  1. ½ÃÀÛ
     1.1 ÀÌ ¹®¼­¸¦ È°¿ëÇÏ´Â ¹æ¹ý
     1.2 ´Ù¸¥ °ü·Ã ¹®¼­

  2. ¾î¼Àºí·¯µé
     2.1 GCC ÀζóÀÎ ¾î¼Àºí¸®
        2.1.1 GCC°¡ ÀÖ´Â °÷
        2.1.2 GCC ÀζóÀÎ ¾î¼Àºí¸® DOCµéÀ» ±¸ÇÏ´Â °÷
        2.1.3 ¾î¶»°Ô GCC ¾È¿¡¼­ Á¤È®È÷ ¾î¼Àºí¸® Äڵ带 ºÒ·¯³»´Â°¡?
     2.2 GAS
        2.2.1 ¾îµð¼­ ãÀ» ¼ö Àִ°¡
        2.2.2 AT&T ¹®¹ýÀº ¹«¾ùÀ» ¸»Çϴ°¡
        2.2.3 2.2.3 Á¦ÇÑµÈ 16ºñÆ® ¸ðµå
     2.3 2.3 GASP
        2.3.1 2.3.1 GASP¸¦ ¾îµð¼­ ãÀ» °ÍÀΰ¡
        2.3.2 2.3.2 GASP´Â ¾î¶°ÇÑ ÀÏÀ» Çϴ°¡
     2.4 2.4 AS86
        2.4.1 2.4.1 AS86À» ¾îµð¼­ ¾òÀ» ¼ö Àִ°¡
        2.4.2 docµéÀ» ¾îµð¼­ ãÀ» ¼ö Àִ°¡
        2.4.3 ¾î¶»°Ô ¾î¼Àºí·¯¸¦ ºÒ·¯¿À´Â°¡ ?
        2.4.4 ÀÌ »õ·Î¿î ¹öÁ¯À¸·Î ¸®´ª½º¸¦ ÄÄÆÄÀÏ ÇÒ¼ö ¾ø´Ù¸é ¾î¶»°Ô ÇØ¾ß Çϴ°¡?
     2.5 ´Ù¸¥ ¾î¼Àºí·¯µé
        2.5.1 Win32Forth ¾î¼Àºí·¯
        2.5.2 NASM
        2.5.3 Tunes
        2.5.4 ÇÁ¸®°¡ ¾Æ´Ï°Å³ª 32ºñÆ®°¡ ¾Æ´Ñ x86 ¾î¼Àºí·¯µé

  3. META ÇÁ·Î±×·¡¹Ö/ ¸ÅÅ©·Î ó¸®
     3.1 À§¿¡¼­ ÅëÇÕµÈ °ÍÀ̶õ ¹«¾ùÀ» ¶æÇϴ°¡
        3.1.1 GCC
        3.1.2 GAS
        3.1.3 GASP
        3.1.4 AS86
        3.1.5 ´Ù¸¥ ¾î¼Àºí·¯µé
        3.1.6 ¿ÜºÎ ÇÊÅÍ
        3.1.7 CPP
        3.1.8 M4
        3.1.9 ÇÊÅ͸¦ ÅëÇÑ ¸ÅÅ©·Î ó¸®
        3.1.10 ¸ÞŸ ÇÁ·Î±×·¡¹Ö

  4. ÄÁº¥¼Ç ºÎ¸£±â
     4.1 4.1 Linux
        4.1.1 GCC·Î ¸µÅ©Çϱâ
        4.1.2 ELF vs a.out ¹®Á¦µé
        4.1.3 Á÷Á¢ÀûÀÎ ¸®´ª½º ½Ã½ºÅÛ ÄÝ
     4.2 µµ½º
     4.3 ¿©·¯ºÐµéÀÇ OS
        4.3.1 ºÎÆ® ·Î´õ ÄÚµå¿Í 32ºñÆ® ¸ðµå·Î µé¾î°¡±â
        4.3.2 ÇÁ·ÎÅؼÇÀÇ ±âÃÊ
        4.3.3 ÀÎÅÍ·´Æ® ´Ù·ç±â
        4.3.4 16ºñÆ® ½Ã½ºÅÛ ¼­ºñ½º¸¦ »ç¿ëÇÏ´Â V86/R86 ¸ðµå
        4.3.5 À̰͵鿡 ´ëÇÑ Á¤º¸¸¦ ¾îµð¼­ ¾òÀ» °ÍÀΰ¡

  5. ÇØ¾ß ÇÒÀÏ

  ______________________________________________________________________

  1.  ½ÃÀÛ

  ÀÌ ¹®¼­´Â ¸®´ª½º ¿î¿µÃ¼Á¦¿¡¼­ ÇÁ¸® ¾î¼Àºí·¯¸¦ »ç¿ëÇÑ 32ºñÆ® x86
  ¾î¼Àºí¸® ÇÁ·Î±×·¡¹ÖÀ̳ª ÇÁ·Î±×·¥µé¿¡ ´ëÇØ Áú¹®ÇÏ´Â »ç¶÷µé¿¡°Ô ´äº¯Çϱâ
  À§ÇØ Á¦ÀÛ ÀÌ µÇ¾ú´Ù.  ±×°ÍÀº ¶ÇÇÑ ÇÁ¸®°¡ ¾Æ´Ñ, x86ÀÌ ¾Æ´Ñ, 32ºñÆ®
  ¾î¼Àºí·¯°¡ ¾Æ´Ñ ±×·¯ÇÑ °Íµé¿¡ ´ëÇÑ ¹®¼­µéÀ» ¾ð±ÞÇÒ ¼ö ÀÖ´Ù.  ¿Ö³ÄÇϸé
  ¾î¼Àºí¸® ÇÁ·Î±×·¡¹Ö¿¡¼­ ÁÖ·Î Èï¹ÌÀÖ´Â ºÐ¾ß´Â ¿î¿µÃ¼Á¦, ¾ð¾î, °ÔÀÓ, C
  ÄÄÆÄÀÏ·¯°¡ Ç¥ÇöÀ» Á¦´ë·Î Çϱâ Èûµç ºÎºÐµéÀ» °Ç´õ¸®´Â °ÍÀÌ´Ù.  ¿ì¸®´Â
  ±×·¯ÇÑ ¼ÒÇÁÆ®¿þ¾î °³¹ßÀ» ¸ñÇ¥·Î ÇÏ°í ÀÖ´Ù.

  1.1.  ÀÌ ¹®¼­¸¦ È°¿ëÇÏ´Â ¹æ¹ý

  ÀÌ ¹®¼­´Â Á¾Á¾ Áú¹®ÇÏ´Â °Íµé¿¡ ´ëÇÑ ´äº¯µéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¸¹Àº °æ¿ì,
  ¼ÒÇÁÆ®¿þ¾î³ª ¹®¼­ »çÀÌÆ®¿¡ URLÀÌ ÁÖ¾îÁø´Ù.  °¡Àå À¯¿ëÇÑ »çÀÌÆ®°¡ ¹Ì·¯
  µÇ¾ú°í, °¡±îÀÌÀÇ ¹Ì·¯ »çÀÌÆ®¸¦ ÅëÇØ ÀÌ¿ëÇÒ ¼ö ÀÖ ´Ù¸é, ¿©·¯ºÐµéÀº
  ¾Æ±î¿î ÀÚ½ÅÀÇ ½Ã°£À» ¹ö¸®Áö ¾Ê°í, ºÒÇÊ¿äÇÑ ³ë·ÂÀ» ÁÙÀÏ ¼ö ÀÕÀ» °ÍÀÌ´Ù.
  ƯÀÌÇÑ °æ¿ì¿¡, Àαâ»çÀÌÆ®¸¦ ¹Ì·¯ÇÏ´Â ¼¼°è¿¡¼­ ¾ÆÁÖ Å« »çÀÌÆ®°¡ ÀÖ´Ù.
  º¸ÅëÀº ¹Ì·¯¸®½ºÆ®µéÀÌ ÆÄÀÏ·Î Á¦°øµÉ ¼öµµ ÀÖ°í ¶Ç´Â, ·Î±ä ¸Þ¼¼Áö¿¡
  ³ªÅ¸³­´Ù.  Ãæ°í¸¦ ¹Þ¾Æµé¿©¶ó.  ±×¹Û¿¡, ¿©·¯ºÐµéÀº ã°íÀÚ ÇÏ´Â °ÍÀ»
  archie¸¦ ÀÌ¿ëÇÔÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  °¡Àå ÃÖ±ÙÀÇ ¹®¼­¹öÁ¯ÀÌ
  ÀÖ´Â °÷Àº ´ÙÀ½°ú °°´Ù.

  http://www.eleves.ens.fr:8080/home/rideau/Assembly

  ±×·¯³ª ¸®´ª½º ÇÏ¿ìÅõ ½ÎÀÌÆ®´Â Á¤¸» ¹ø°³°°ÀÌ ¾÷µ¥ÀÌÆ® µÈ´Ù. ³ªµµ ¸ð¸£´Â
  »çÀÌ¿¡..  sunsite.unc.edu/pub/linux/docs/HOWTO/
  <ftp://sunsite.unc.edu/pub/linux/docs/HOWTO/> (?)

  1.2.  ´Ù¸¥ °ü·Ã ¹®¼­

  * ¸¸ÀÏ ¿©·¯ºÐµéÀÌ ÇÁ¸® ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇØ Àß ¸ð¸¥´Ù¸é GNU °ø°ø
  ¶óÀ̼¾½º¸¦ ÁÖÀÇ ±í°Ô ÀÐ¾î º¸±æ ¹Ù¶õ´Ù. ±×°ÍÀº ¸¹Àº ÇÁ¸® ¼ÒÇÁÆ®¿þ¾îµé°ú
  ´ëºÎºÐÀÇ ¸ð µ¨¿¡¼­ »ç¿ëµÇ¾î Áö°í ÀÖ´Ù: º¸Åë "COPYING"À̶ó´Â
  ÆÄÀÏÀ̸§À¸·Î µé¾î ÀÖÀ¸¸ç, ¶óÀ̺귯¸®¹öÁ¯À̶ó¸é "COPYING.LIB" ¶ó´Â
  À̸§À¸·Î µÇ¾î ÀÖÀ» °ÍÀÌ´Ù.  FSF(free software foundation)ÀÇ ¹®Àå°¡µéÀº
  ¶ÇÇÑ ´ç½ÅÀ» µµ¿ï °ÍÀÌ´Ù.  * Ưº°ÇÏ°Ô, Èï¹ÌÀÖ´Â ÇÁ¸® ¼ÒÇÁÆ®¿þ¾îµéÀº
  ´ëºÎºÐ ¼Ò½º¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â µ¥, ¿©·¯ºÐµéÀº ÀÌ°ÍÀ» Âü°íÇϰųª,
  ¼öÁ¤Çϰųª, ¶§·Î´Â ±×³É ±×´ë·Î Â÷¿ëÇؼ­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿©·¯ºÐµé¿¡°Ô
  ÁÖ¾îÁö´Â ¶óÀ̼¾½º¸¦ ÁÖÀDZí°Ô ÀÐ°í ±×±â¿¡ µû¸£´Â °ÍÀÌ ÁÁ´Ù.  * x86
  ¾î¼Àºí¸® ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇÑ ÀϹÝÀûÀÎ Áú¹®°ú ¸î¸îÀÇ »ó¾÷ÀûÀÎ ¾î¼Àºí·¯
  (16ºñÆ® µµ½ºÈ¯°æÀÇ..)¿¡ ´ëÇÑ Áú¹®¿¡ ´ëÇÑ ´äº¯µéÀ» ´ã°í ÀÖ´Â comp.lang.
  asm.x86À» À§ÇÑ FAQ°¡ ÀÖ´Ù.  ±×Áß¿¡¼­ ¸î°³´Â ÇÁ¸® 32ºñÆ® ¾î¼Àºí¸®
  ÇÁ·Î±×·¡¹Ö¿¡ Àû¿ëÀÌ µÇ´Â µ¥, ¿©·¯ºÐ µéÀº ÀÌ FAQ¸¦ ´ÙÀ½¿¡¼­ ÀÐÀ» ¼ö
  ÀÖ´Ù.  www2.dgsys.com/~raymoon/faq/asmfaq.zip
  <http://www2.dgsys.com/~raymoon/faq/asmfaq.zip> * FAQµé°ú docµéÀº µ¶ÀÚ
  ¿©·¯ºÐµéÀÇ Ç÷§Æû»óÀÇ ÇÁ·Î±×·¡¹Ö¿¡ °ü·ÃµÈ °ÍµéÀÌ ÀÖ´Ù. ±×¸®°í Ç÷§Æû
  ÀÇÁ¸ÀûÀÎ °ÍµéÀº ¾î¼Àºí·¯¿¡¼­ ÇÁ·Î±×·¡¹Ö¿¡ ¹Ù·Î Àû¿ë ÀÌ µÇÁö ¾Ê´Â ´Ù´Â
  Á¡À» ÂüÁ¶ÇÏ¿©¾ß ÇÑ´Ù.

  2.  ¾î¼Àºí·¯µé

  2.1.  GCC ÀζóÀÎ ¾î¼Àºí¸®

  Àß ¾Ë·ÁÁø ¹Ù¿Í °°ÀÌ, GNU ÇÁ·ÎÁ§Æ®¿¡¼­ Áß¿äÇÑ À§Ä¡¸¦ Â÷ÁöÇÏ°í ÀÖ´Â
  ÃÖÀûÈ­µÈ 32ºñÆ® ÄÄÆÄÀÏ·¯ÀÎ GNU C/C++ ÄÄÆÄÀÏ·¯ (GCC)´Â x86
  ¾ÆÅ°ÅØÃĸ¦°­·ÂÇÏ°Ô Áö¿ø ÇÑ´Ù. ±×¸®°í C ÇÁ·Î±×·¥¾È¿¡ ¾î¼Àºí¸® Äڵ带
  »ðÀÔÇÒ ¼ö ÀÖ´Â ´É·ÂÀ» Á¦°øÇÑ´Ù.  GCC ´Â ´ëºÎºÐÀÇ °¡´ÉÇÑ Ç÷§Æû¿¡¼­
  µ¿ÀÛÇÑ´Ù.  ±×Áß¿¡¼­µµ Linux, *BSD, VSTa, OS/2, *DOS, Win*, µîµî..

  2.1.1.  GCC°¡ ÀÖ´Â °÷

  GCC ¿øº»»çÀÌÆ®´Â prep.ai.mit.edu/pub/gnu/
  <ftp://prep.ai.mit.edu/pub/gnu/> ¿¡ ´Ù¸¥ GNU °èȹ¿¡ ÀÇÇÑ ¾îÇø®ÄÉÀ̼Ç
  ¼ÒÇÁÆ®¿þ¾îµé°ú °°ÀÌ ¹ßÇ¥µÈ´Ù.  ±×¸®°í, ¶ÇÇÑ ¸¹Àº ¹Ì·¯ »çÀÌÆ®µéÀÌ
  Á¸ÀçÇÏ°í ÀÖ´Ù.  ¿©·¯ºÐµéÀÇ °³¹æÀûÀÎ OS¿¡ ¸Âµµ·Ï °³Á¤µÈ ¼Ò½ºµé°ú ¹Ì¸®
  ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ®µéÀÌ Åë»óÀûÀÎ FTP »çÀÌÆ®¿¡ÀÖ´Ù.  inux ÀÇ GCC¸¦
  »ç¿ëÇÑ´Ù¸é ¾Æ·¡¿¡ °¡º»´Ù.  www.linux.org.uk/
  <http://www.linux.org.uk/> °¡Àå Àαâ ÀÖ´Â µµ½º±â¹ÝÀÇ GCC´Â DJGPPÀÌ´Ù.
  ´ÙÀ½ »çÀÌÆ®ÀÇ µð·ºÅ丮¿¡¼­ ¹ß°ßÇÒ ¼ö ÀÖ´Ù: www.delorie.com/djgpp/
  <http://www.delorie.com/djgpp/> OS/2 ±â¹ÝÀÇ µµ½º¿¡¼­ ÀÛµ¿ÇÏ´Â GCC´Â
  ¶ÇÇÑ EMX¶ó ºÒ¸°´Ù; www.leo.org/pub/comp/os/os2/gnu/emx+gcc/
  <http://www.leo.org/pub/comp/os/os2/gnu/emx+gcc/>
  warp.eecs.berkeley.edu/os2/software/shareware/emx.html
  <http://warp.eecs.berkeley.edu/os2/software/shareware/emx.html>
  2.1.2.  GCC ÀζóÀÎ ¾î¼Àºí¸® DOCµéÀ» ±¸ÇÏ´Â °÷

  GCC ¹®¼­´Â texinfo Æ÷¸äÀ¸·Î ¹®¼­ÆÄÀϵéÀ» Æ÷ÇÔÇÑ´Ù. ´ç½ÅÀº ±×°ÍÀ»
  Åؽº·Î º¯ ȯÇÒ ¼ö ÀÖ°í, Åؽº·Î ÄÄÆÄÀÏ ÇÒ¼öµµ ÀÖÀ¸¸ç, ÇÁ¸°Æ®¸¦ ÇÏ´øÁö,
  À̸·½º .infoÆÄÀÏ À̳ª ºê¶ó¿ìÀú, ±âŸ ¿©·¯ºÐµéÀÌ ÁÁ¾ÆÇÏ´Â Æ÷¸äÀ¸·Î
  º¯È¯ÇÒ ¼ö ÀÖ´Ù.  .info ÆÄÀÏÀº GCCÀÇ ±¦ÂúÀº ¼³Ä¡º»¿¡´Â µé¾î ÀÖ´Â °Í
  °°´Ù.  ±× ºÎºÐÀº ´ÙÀ½°ú °°´Ù: C È®Àå::È®ÀåµÈ Asm:: ºÎºÐ GCC
  ºÒ·¯¿À±â::¼­ºê¸ðµ¨ ¿É¼Ç::i386 ¿É¼Ç:: ÀÌ·¯ÇÑ °ÍµéÀÌ µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
  ¼¼¼¼ÇÏ°Ô º¸¸é, ±×°ÍÀº i386ÀÇ ·¹Áö½ºÅ͸¦ À§ ÇØ Æ¯º°È÷ ±ÔÁ¤µÈ À̸§À»
  Á¦°øÇÑ´Ù: abcdSDB ´Â %eax, %ebx, %ecx, %edx,%esi, %edi, %ebp ¿Í Çϳª¾¿
  ÀÏÄ¡ÇÑ´Ù.  (%esp¿¡´Â ±ÛÀÚ°¡ ¹è´çµÇ¾î ÀÖÁö ¾Ê´Ù.)  HTML Æ÷¸äÀ¸·Î º¯È¯µÈ
  ÀÌ·¯ÇÑ ¹®¼­µé°ú ºÎºÐµéÀÇ URLÀº ´ÙÀ½°ú °°´Ù.
  www.cygnus.com/doc/usegcc_89.html
  <http://www.cygnus.com/doc/usegcc_89.html>#SEC92 DJGPP °ÔÀÓ¸®¼Ò½º
  (°ÔÀÓ ÇØÄ¿µé¿¡°Ô »Ó¸¸ÀÌ ¾Æ´Ï¶ó)´Â Ưº°ÇÏ°Ô ¾î¼Àºí¸®¿¡ °üÇÑ ÀÌ·¯ÇÑ
  ÆäÀÌÁö¸¦ °¡Áö°í ÀÖ´Ù: www.rt66.com/~brennan/djgpp/djgpp_asm.html
  <http://www.rt66.com/~brennan/djgpp/djgpp_asm.html> ¸¶Áö¸·À¸·Î, ÀÌ·¯ÇÑ
  À¥ÆäÀÌÁöµéÀº "DJGPP Quick ASM Programming Guide" ·Î ºÒ¸®¿öÁö°í FAQµé°ú
  AT&T x86 ¾î¼Àºí¸® ¹®¹ý, ¸î¸îÀÇ ÀζóÀÎ ¾î¼Àºí¸® Á¤º¸, .obj/.lib
  ÆÄÀϵéÀ» º¯È¯ÇÏ´Â °Íµé¿¡ ´ëÇÑ °Íµé·Î °¡µæÂ÷ ÀÖ´Ù.
  remus.rutgers.edu/~avly/djasm.html
  <http://remus.rutgers.edu/~avly/djasm.html>

  GCC ´Â ¾î¼Àºí¸µ¿¡¼­´Â GAS¿¡ ÀÇÁ¸ÇÏ°í ¾Æ·¡ÀÇ ¹®¹ýÀ» µû¸¥´Ù; ÀζóÀÎ
  ¾î¼Àºí¸®´Â ÀοëµÈ ÆÛ¼¾Æ® ¹®ÀÚ¸¦ ÇÊ¿ä·Î ÇÑ´Ù.  ±×·¡¼­ ±×°ÍµéÀº GAS
  ¿¡°Ô·Î °Ç³×Áø´Ù.  ¾Æ·¡ÀÇ GAS¿¡ ´ëÇÑ ºÎºÐÀ» º¸ÀÚ.  ¸¹Àº À¯¿ëÇÑ ¿¹Á¦µéÀ»
  ¸®´ª½ºÀÇ linux/include/asm-i386/ ¼Ò½º ¼­ºêµð·ºÅ丮 ¿¡¼­ ã¾Æº¸ÀÚ.

  2.1.3.  ¾î¶»°Ô GCC ¾È¿¡¼­ Á¤È®È÷ ¾î¼Àºí¸® Äڵ带 ºÒ·¯³»´Â°¡?

  ÃÖÀûÈ­¿Í ÀζóÀÎ ¾î¼Àºí¸®¸¦ °¡´ÉÇÏ°Ô Çϱâ À§Çؼ­ GCC ¸¦ "-O" Ç÷¡±×¿Í
  °°ÀÌ ºÒ·¯³»ÀÚ.  ±×·¸°Ô ÇÏÁö ¾Ê´Â ´Ù¸é, ÄÚµå´Â ÄÄÆÄÀϵDZâ´Â Çϳª,
  Á¤È®È÷ µ¿ÀÛÇÏÁö ¾ÊÀ» °Í ÀÌ´Ù.  Á» ´õ ÀϹÝÀûÀ¸·Î, x86 Ç÷§Æû¿¡¼­ ÁÁÀº
  ÄÄÆÄÀÏ Ç÷¡±×´Â

           gcc -O2 -fomit-frame-pointer -m386

  Á¤µµ°¡ µÉ °ÍÀÌ´Ù.  -O2 ´Â ÁÁÀº ÃÖÀûÈ­ ·¹º§ÀÌ´Ù. ÃÖÀûÈ­¿¡ ´õÇÏ¿©
  ÄÄÆÄÀÏ·¯´Â Äڵ带 Å©°Ô ¸¸µç´Ù.  ±×·¯³ª ±×°ÍÀº ´ÜÁö bit fasterÀÏ
  »ÓÀÌ´Ù; ±×·¯ÇÑ °ú´ÙÇÑ ÃÖÀûÈ­´Â ·çÇÁ¸¦ ŸÀÌÆ®ÇÏ°Ô ¸¸µå´Â µ¥ Á¤µµ¿¡¸¸
  À¯¿ëÇÒ ¼ö ÀÖ´Ù. ¿©·¯ºÐµéÀÌ ¾î¶»°Ôµç ¾î¼Àºí¸®¿¡¼­ »ç¿ëÇÑ´Ù¸é ¸»ÀÌ´Ù.
  ±×°ÍÀÌ ÇÊ¿äÇÏ´Ù¸é ÇÊ¿äÇÑ ¸¸Å­¸¸ÀÇ ·çƾµé¿¡ »ç¿ëÇ϶ó.  -fomit-frame-
  pointer ´Â stupid frame pointer maintenance¸¦ °Ç³Ê¶Ù°Ô Äڵ带
  »ý¼º½ÃÅ°°í, Äڵ带 Á»´õ ÀÛ°í ºü¸£°Ô ¸¸µé¸ç, ±× ÀÌ»óÀÇ ÃÖÀûÈ­¸¦ À§Çؼ­
  ·¹Áö½ºÅ͸¦ ÀÚÀ¯·Ó°Ô ÇÑ´Ù.  ÀÌ°ÍÀº µð¹ö±ë Åø(gdb)µéÀ» »ç¿ëÇϱ⠾î·Æ°Ô
  ¸¸µé±ä Çϳª, ´õÀÌ»ó »çÀÌÁî¿Í ¼Óµµ ¸¦ Çâ»ó ½Ãų ¼ö ¾øÀ» °ÍÀÌ´Ù.  -m386
  Àº ¾î¶°ÇÑ ¼ÓµµÀÇ ÀúÇϾøÀÌ Á» ´õ ÄÞÆÑÆ®ÇÑ Äڵ带 »ý¼ºÇØ ³½´Ù.  ( ÀÛÀº
  ÄÚµå´Â ¶ÇÇÑ µð½ºÅ© ÀÔÃâ·ÂÀ» Àû°Ô ¼öÇàÇÏ°í ºü¸¥ ½ÇÇàÀ» ÇÑ´Ù´Â °ÍÀ»
  ±â¾ïÇÏÀÚ.)  ±×·¯³ª ¾Æ¸¶µµ À§¿¡ ¾ð±ÞÇÑ Å¸ÀÌÆ®ÇÑ ·çÇÁ»ó¿¡¼­ ÀÏ °ÍÀÌ´Ù.
  Á»´õ ÃÖÀûÈ­ ÇÏ·Á¸é, -mregparm=2 ¿É¼ÇÀ̳ª ÀÌ¿¡ ´ëÀÀÇÏ´Â ÇÔ¼ö°¡ µµ¿òÀÌ
  µÉ °ÍÀÌ´Ù. ±×·¯³ª ¿ÜºÎ ÄÚµå¿Í ¸µÅ·À» ÇÒ¶§¿¡´Â ¸¹Àº ¹®Á¦Á¡µéÀÌ
  ¿©·¯ºÐµéÀ» ±«·ÓÈ÷°Ô µÉ °ÍÀÌ´Ù.  ¿©·¯ºÐµéÀº ÀÌ·¯ÇÑ Ç÷¡±×µéÀ»
  ±âº»¼³Á¤ÆÄÀÏÀÎ

           /usr/lib/gcc-lib/i486-linux/2.7.2/specs

  ¿¡ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. (ÀÌ ÆÄÀÏÀº ½Ã½ºÅÛ¿¡ µû¶ó Á¶±Ý Ʋ¸± ¼ö ÀÖ´Ù.)

  2.2.  GAS

  GAS´Â GCC¿Í ÇѽÖÀ¸·Î ¿òÁ÷ÀÌ´Â GNU ¾î¼Àºí·¯ÀÌ´Ù.

  2.2.1.  ¾îµð¼­ ãÀ» ¼ö Àִ°¡

  binutils¶ó À̸§ºÙ¿©Áø ÆÐÅ°Áö ¼Ó¿¡ GCC°¡ ÀÖ´Â °°Àº °÷¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.

  2.2.2.  AT&T ¹®¹ýÀº ¹«¾ùÀ» ¸»Çϴ°¡

  GAS´Â 32ºñÆ® À¯´Ð½º ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇϱâ À§ÇØ Ã¢¾ÈµÇ¾ú±â ¶§¹®¿¡ Ç¥ÁØ
  AT&T ¹®¹ýÀ» ÀÌ¿ëÇÑ´Ù.  AT&T ¹®¹ýÀº ¸¹Àº °ÍµéÀÌ Ç¥ÁØ 680x0 ¾î¼Àºí·¯¿Í
  ´à¾Ò´Ù.  ÀÌ ¹®¹ýÀº "Intel" ¹®¹ý¿¡ ºñÇؼ­ ÁÁÁöµµ ¾Ê°í, ³ª»ÚÁöµµ ¾Ê´Ù.
  ´ÜÁö ´Ù¸¦ »ÓÀÌ´Ù.  ¿©·¯ºÐµéÀÌ ±×°ÍÀ» »ç¿ëÇغ¸°Ô µÇ¸é, ÀÎÅÚ ¹®¹ý¿¡ ºñÇØ
  Á»´õ ¸¹Àº ±ÔÄ¢ÀÌ ÀÖÀ½ À» ¾Ë°Ô µÉ °ÍÀÌ´Ù.  ¿©·¯ºÐµéÀÌ ÇÁ·Î±×·¥À»
  º¯È¯ÇÏ´Â °ÍÀ» µ½±â À§ÇÑ ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÑ´Ù.  ÀÌ°ÍÀº TASM ¹®¹ýÀ» AT&T
  ¹®¹ýÀ¸·Î º¯È¯ÇÏ´Â °ÍÀÌ´Ù.
  ftp.oulu.fi/pub/msdos/programming/convert/ta2asv08.zipgas.doc
  <ftp://ftp.oulu.fi/pub/msdos/programming/convert/ta2asv08.zipgas.doc>
  À̳ª as.docÆÄÀÏ(GAS¸¦ ãÀº °°Àº °÷ ÁÖÀ§¿¡ ÀÖÀ» °ÍÀÌ´Ù)Àº ±× ¹®¹ýÀ»
  ±â¼úÇÑ´Ù.  ´ÙÀ½ÀÇ FTP µð·ºÅ丮¿¡ ÀÖ´Ù sunsite.unc.edu/pub/linux/GCC/
  <ftp://sunsite.unc.edu/pub/linux/GCC/>
  sunsite.doc.ic.ac.uk/packages/linux/sunsite.unc-mirror/GCC/
  <ftp://sunsite.doc.ic.ac.uk/packages/linux/sunsite.unc-mirror/GCC/>
  (?)  ´Ù½ÃÇѹø À̾߱âÇÏÁö¸¸, ¸®´ª½º¿¡´Â ±¦ÂúÀº ¿¹µéÀÌ µé¾îÀÖ´Ù; ¾Æ·¡ÀÇ
  linux/arch/i386ÀÇ ´ÙÀ½ ÆÄÀϵéÀ» º¸¶ó: kernel/entry.S, kernel/head.S,
  boot/compressed/head.S, mathemu/*.S

  2.2.3.  2.2.3 Á¦ÇÑµÈ 16ºñÆ® ¸ðµå

  GAS ´Â 32ºñÆ® ¾î¼Àºí·¯À̸ç 32ºñÆ® ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
  GAS ´Â ÇöÀç Á¦ÇÑµÈ 16 ºñÆ®¸ðµå¸¦ Á¦°øÇϴµ¥, ±× 16ºñÆ®¸ðµå´Â ¹Ì¸®
  ¿¹ºñµÈ, ¸í·É¾îµéÀÇ 32ºñÆ® Á¢µÎ¾î·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç, µû¶ó¼­ 32ºñÆ®
  CPU»óÀÇ 16ºñÆ® ¸ðµå¿¡¼­ µ¹¾Æ°¡´Â 32ºñÆ® ¸ðµå¸¦ ¾µ ¼ö ÀÖ´Ù.  ¾ç¸ðµå¿¡¼­
  °øÈ÷, ±×°ÍÀº 16ºñÆ® ·¹Áö½ºÅÍ »ç¿ëÀÌ °¡´ÉÇϳª, 16ºñÆ® ¾îµå·¹½Ì Àº
  Á¦°øÇÏÁö ¾Ê´Â´Ù.  ¸ðµå»çÀ̸¦ ÀüȯÇÏ·Á¸é "code16"°ú "code32"ÀÇ Áö½ÃÀÚ¸¦
  »ç¿ëÇ϶ó.  ÀζóÀÎ ¾î¼Àºí¸®¿¡¼­ÀÇ asm("code16\n") »óÅ´ 32ºñÆ® GCC·Î
  ÇÏ¿©±Ý ¸®¾ó¸ðµå!  ¿¡¼­ µ¹¾Æ°¡´Â Äڵ带 ¸¸µé°ÍÀ» Çã¿ëÇÑ´Ù.  ¿©·¯ºÐµéÀÌ
  ÇÊ¿äÇÏ´Ù°í ´À³¤´Ù¸é Ç® 16ºñÆ®¸¦ »ç¿ëÇÔÀ¸·Î½á ¸¶À½²¯ ´©·Áº¸ÀÚ.

  2.3.  2.3 GASP

  GASP ´Â GASÀÇ Àü󸮱âÀÌ´Ù.  ÀÌ°ÍÀº GAS¿¡ ¸ÅÅ©·Î¿Í ¸î¸î ±¦ÂúÀº ¹®¹ýÀ»
  Ãß°¡½ÃŲ´Ù.

  2.3.1.  2.3.1 GASP¸¦ ¾îµð¼­ ãÀ» °ÍÀΰ¡

  ³ª´Â Á¤È®ÇÏ°Ô ¸ð¸¥´Ù. GNU »çÀÌÆ® (prep.ai.mit.edu & mirrors)¸¦
  º¸±â¹Ù¶õ´Ù.  ¾Æ¸¶µµ GAS¿Í °°ÀÌ binutils ÆÐÅ°Áö¿¡ °°ÀÌ ÀÖÀ» °ÍÀÌ´Ù.

  2.3.2.  2.3.2 GASP´Â ¾î¶°ÇÑ ÀÏÀ» Çϴ°¡

  ³­ ¾Æ¹« »ý°¢ÀÌ ¾ø´Ù, ±×·¯³ª ±×°ÍÀº ÀÚüÀÇ texinfo ¹®¼­°¡ µû¶ó¿Ã
  °ÍÀÌ´Ù.  ±×·¡¼­ ±×°ÍÀ» ÇÁ¸°Æ® Çؼ­ º¸¶ó, ¾Æ´Ï¸é .info ÆÄÀϵéÀ»
  ºê¶ó¿ìÁîÇϱ⠹ٶõ´Ù.  ¸ÅÅ©·Î ¾î¼Àºí·¯ÀÇ ±ÔÄ¢À» ³ª¿¡°Ô º¸³»ÁÖ¸é ÁÁ°Ú´Ù.

  2.4.  2.4 AS86

  AS86Àº Bruce Evans' C ÄÄÆÄÀÏ·¯ ºÎºÐÁßÀÇ 16ºñÆ®, 32ºñÆ®¸¦ ´Ù °°ÀÌ
  Á¦°øÇÏ´Â 80x86 ¾î¼Àºí·¯ÀÌ´Ù.  ±×°ÍÀº ÃÖ±ÙÀÇ ÀÎÅÚ ¹®¹ýÀ» °¡Áö°í ÀÖÀ¸¸ç
  as¿Í Á¶±Ý ¾îµå·¹½Ì ¸ðµå¸¦ ´Þ¸®ÇÑ´Ù.

  2.4.1.  2.4.1 AS86À» ¾îµð¼­ ¾òÀ» ¼ö Àִ°¡

  ¿ÏÀüÈ÷ ½Ã´ë¿¡ µÚ¶³¾îÁø AS86Àº HJLu¿¡ ÀÇÇØ ¹èÆ÷µÇ¸ç ¹Ù·Î ¸®´ª½º Ä¿³ÎÀ»
  ÄÄ ÆÄÀÏ ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÆÐÅ°Áö´Â bin86(ÇöÀç¹öÁ¯ 0.3)·Î µÇ¾î ÀÖÀ¸¸ç
  Linux GCC »çÀÌÆ®¿¡¼­ ¹ß°ßÇÒ ¼ö ÀÖ´Ù.  ±×·¯³ª ³»°¡ º¸±â¿¡´Â ¸®´ª½º
  ÄÄÆÄÀϸµÀ» Á¦¿ÜÇÏ°í´Â ¾Æ¹«°÷¿¡µµ »ç¿ëµÇÁö ¾Ê°í ÀÖ´Ù.  ÀÌ ¹öÁ¯Àº ¿À·ÎÁö
  ÇØÅ·µÈ ¹Ì´Ð½º ¿ÀºêÁ§Æ® ÆÄÀÏ Æ÷¸äÀ» Á¦°øÇϸç 32ºñÆ®¸ðµå¿¡¼­ ´Â Á¶±ÝÀÇ
  ¹ö±×°¡ Àִµ¥, ´ÜÁö ¸®´ª½º¸¦ ÄÄÆÄÀϸ¸ Çϱâ À§Çؼ­¶ó¸é ±¦ÂúÀ¸¸®¶ó.
  °¡Àå ÃÖ±ÙÀÇ ¹öÁ¯Àº FreeBSD ¹èÆ÷ÆÇ°ú °°ÀÌ Ãâ½ÃµÇ¾ú´Ù.  ³ª´Â ±×°ÍÀ»
  ´ÙÀ½¿¡¼­ ±¸Çß´Ù.
  ftp.ibp.fr/pub/FreeBSD/packages-2.1/development/bcc-95.3.12.tgz
  <ftp://ftp.ibp.fr/pub/FreeBSD/packages-2.1/development/bcc-95.3.12.tgz>
  ±×·¯³ª ±× ¹öÁ¯ÀÌ ÀÌÁ¦ ¸¹ÀÌ ¹ßÀüÇßÀ» °ÍÀÌ´Ù.  ¿©·¯°³µé Áß¿¡¼­ AS86µµ
  ÀÌÁ¦ ¸®´ª½º GNU a.out Æ÷¸ËÀ» Áö¿øÇÑ´Ù. ±×·¡¼­ ¿©·¯ºÐ µéµµ Äڵ带
  ¸®´ª½º ÇÁ·Î±×·¥¿¡ ¸µÅ©¸¦ ½Ãų ¼ö ÀÖ°í, µ¥ÀÌŸ¸¦ ´Ù·ç±â À§ÇØ GNU
  binutil ÆÐÅ°ÁöÀÇ º¸ÅëÀÇ ÅøÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  ÀÌ ¹öÁ¯Àº ÀÌÀüÀÇ
  °Íµé°ú ÇÔ²² ¾Æ¹«·± ¼Õ»ó¾øÀÌ °øµ¿À¸·Î Á¸ÀçÇÒ ¼ö ÀÖ´Ù.  (¾Æ·¡ÀÇ Áú¹®
  2.4.4¸¦ º¸¶ó).  BCC ÀÇ 1995.3.12 ÀÌÀüÀÇ ¹öÁ¯µéÀÌ ½Ç¼öÇÑ ÀÌÀ¯´Â 32ºñÆ®
  ¸ðµå ÇÁ·Î±×·¡¹Ö ½Ã¿¡ ¸ðµç ¼¼±×¸ÕÆ® ÆË°ú Ǫ½¬¸¦ 16ºñÆ®·Î ó¸®ÇÔÀ¸·Î½á
  ¸Å¿ì ¹ø°Å·Ó°Ô µÈ µ¥ ÀÖ¾ú´Ù.  ±× ÆÐÄ¡°¡ Tunes ÇÁ·ÎÁ§Æ®¿¡ ÀÇÇØ ´ÙÀ½¿¡
  ¹ßÇ¥µÇ¾ú´Ù.  www.eleves.ens.fr:8080/home/rideau/Tunes/
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/> º¸Á¶ÆäÀÌÁö´Â
  files/tunes.0.0.0.25.src.tgz ÀÌ´Ù.  Ç®¸° ¼­ºêµð·ºÅ丮ÀÇ LLL/i386/ ±×
  ÆÐÄ¡´Â ¶ÇÇÑ ¹Ù·Î ´ÙÀ½¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.
  www.eleves.ens.fr:8080/home/rideau/files/as86.bcc.patch.gz
  <http://www.eleves.ens.fr:8080/home/rideau/files/as86.bcc.patch.gz>
  Bruce Evans ´Â ÀÌ ÆÐÄ¡¸¦ ¹Þ¾Æµé¿´´Âµ¥, °¡Àå ÃÖ±ÙÀÇ bcc ¹öÁ¯Àº ÀÌ ÆÐÄ¡
  ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.  µµ½º »ç¿ëÀÚ¸¦ À§ÇÑ ÁÖÀÇ»çÇ×:

  o  µµ½º¿¡¼­ ÄÄÆÄÀÏ ÇÏ·Á¸é POSIX_HEADERS_MISSING ¸¦ ¸ÕÀú Á¤ÀÇÇ϶ó.

  o  bcc/as¿¡ À־ DJGPP¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é mops.cÀÇ mcall() ÇÔ¼ö¿¡¼­
     "far"¶ó°í À̸§ ºÙ¿©Áø °ÍÀ» °ªÀ» ¹Ù²ã¾ß ÇÑ´Ù.  ¿Ö³ÄÇÏ¸é ¸î¸î µµ½º
     ÄÄÆÄÀÏ·¯¿¡¼­´Â "far"´Â ¿¹¾à¾îÀ̱⠶§¹®ÀÌ´Ù.  bcc/ld µð·ºÅ丮·ÎºÎÅÍ
     typeconf.obj·Î ¸µÅ©¸¦ ½ÃÄÑ¾ß ÇÑ´Ù´Â °ÍÀ» ÁÖÀÇÇ϶ó.

  o  bcc/ld¿¡ À־ ¾Æ¸¶µµ a.out.h¿Í ar.hÀÇ º¹»çº»ÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù.
     DJGPP´Â ±×°ÍÀ» °¡Áö°í Àִµ¥, ´Ù¸¥ C ÄÄÆÄÀÏ·¯ ÀÏ °æ¿ì¿¡´Â ´Ù¸¥
     GCC(µµ½º, ¸®´ª½º, VSTa, µîµî)¿¡¼­ ¸ô·¡ »ì¦ ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ( ^.% )

  o  bcc/ld¿¡ À־ BSD_A_OUT ¸ÅÅ©·ÎÁ¤ÀǸ¦ ¸ðµç ÆÄÀÏ¿¡¼­ ÇØ¾ß ÇÒ ÇÊ¿ä°¡
     ÀÖÀ» °ÍÀÌ´Ù. ±×¸®°í STADARD_GNU_A_OUT Á¤ÀǸ¦ writebin.c¿¡ Çصΰí
     ¸®´ª½º a.out.h º¹»çº»À» »ç¿ë°¡´ÉÇÑ µµ½º À̸§À¸·Î º¯°æÇÑ´Ù.

  o  turnsÀÇ ¸®´ª½º a.outÀº asm/a.out.h¿¡ Æ÷ÇÔÀÌ µÇ¾î Àִµ¥, À̰͵µ
     Æ÷ÇÔÀÌ µÇ µµ·Ï ÇØ¾ß ÇÑ´Ù. 16ºñÆ® ¾î¼Àºí·¯¿¡¼­´Â asm/a.out.h¸¦
     24ºñÆ® º¸´Ù ÀûÀº ºñÆ® Çʵå·Î ¼¼Æ®µÈ °Í¿¡ ´ëÀÀÇÏ´Â 24ºñÆ® ºñÆ®Çʵ带
     º¯°æÇÏ¿©¾ß ÇÑ´Ù.

  o  ³ª´Âcc1À» ½ÃµµÇØ º¸Áö ¾Ê¾Ò´Âµ¥, ±×·¯³ª ½ÇÁ¦·Î ¿©·¯ºÐµéÀÌ Çغ¸°í
     ½Í´Ù¸é cc1À» ÄÄÆÄÀÏ ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª, ¾Æ¸¶µµ bcc
     frontend¸¦ ´Ù½Ã Àû¾î¾ß Çϰųª ¹Ù·Î cc1À» »ç¿ëÇØ¾ß ÇÒ°ÍÀÌ´Ù.¿Ö³ÄÇϸé
     ±×°ÍÀº ÄÄÆÄÀÏ ½Ã cc1, as, ld¸¦ ÀÛµ¿½Ãų ¶§ fork()/exec()/wait()
     Æ®·¹ºí¿¡ ÀÇÁ¸Çϱ⠶§¹®ÀÌ´Ù.

  o  Àüó¸®µÈ µµ½º¹öÁ¯Àº ´ÙÀ½¿¡¼­ ¹ß°ßÇÒ ¼ö ÀÖ´Ù.
     www.eleves.ens.fr:8080/home/rideau/files/asld86.zip
     <http://www.eleves.ens.fr:8080/home/rideau/files/asld86.zip> ¸¸ÀÏ
     ±×°ÍµéÀ» ÇÁ¸® ÄÄÆÄÀÏ·¯·Î Á¦ÄÄÆÄÀÏÀ» ÇÏ°Ô µÈ´Ù¸é ³ª¿¡°Ô º¸³»´Þ¶ó.
     ±×·¯¸é ¸Å¿ì °í¸¶¿ï °ÍÀÌ´Ù.

  2.4.2.  docµéÀ» ¾îµð¼­ ãÀ» ¼ö Àִ°¡

  docµéÀº bcc ÆÐÅ°Áö¿¡ Æ÷ÇÔÀÌ µÇ¾î ÀÖ´Ù. ¸ÇÆäÀÌÁöµµ ¶ÇÇÑ FreeBSD
  »çÀÌÆ®ÀÇ ¾î ´À °÷ÀÌ´øÁö ±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  ÀǽÉÀÌ °£´Ù¸é, ±×µé
  ¼Ò½º¿¡ °¡²û ±¦ÂúÀº docµéÀÌ ÀÖ´Ù: ±×¸® Àß ¼³¸íÀÌ µÈ °ÍÀº ¾Æ´ÏÁö¸¸,
  ÇÁ·Î±×·¡¹Ö ½ºÅ¸ÀÏÀº ±ú²ýÇÏ°Ô µÇ¾î ÀÖ´Ù.  °ü½ÉÀÌ ÀÖ´Ù¸é Tunes 0.0.0.25
  ¿¡¼­ ¾î¶»°Ô as86ÀÌ »ç¿ëµÇ¾ú´Â Áö¸¦ »ìÆ캸¶ó.

  2.4.3.  ¾î¶»°Ô ¾î¼Àºí·¯¸¦ ºÒ·¯¿À´Â°¡ ?

  bcc¸¦ »ç¿ëÇؼ­ .s ¾î¼Àºí¸® ¼Ò½º ÆÄÀÏÀ» GNU a.out .o ¿ÀºêÁ§Æ® ÆÄÀÏ, .l
  ¸®½ºÆà ÆÄÀÏ·Î º¯È¯ÇÏ´Â GNU ¸ÞÀÌÅ© ÆÄÀÏÀÇ ¿¹¸¦ Çϳª µé¾îº¸ÀÚ.

  %.o %.l:       %.s
           bcc -3 -G -c -A-d -A-l -A$*.l -o $*.o $<

  ¾î¶°ÇÑ ¸®½ºÆà ÆÄÀϵµ ¹ºÇÏÁö ¾Ê´Â´Ù¸é "%.l", "-A-l", "-A$*.l"À» ¾ø¾Ö¶ó.
  GNU a.out ÀÌ¿ÜÀÇ °ÍÀ» ¾ò°íÀÚ ÇÑ´Ù¸é bcc docÁß¿¡¼­ ´Ù¸¥ Á¦°øÇÏ´Â Æ÷¸Ë¿¡
  ´ëÇÑ ±ÛÀ» º¸°Å³ª GNU binutils ÆÐÅ°ÁöÀÇ objcopy À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÒ ¼ö
  ÀÖ´Ù.

  2.4.4.  ÀÌ »õ·Î¿î ¹öÁ¯À¸·Î ¸®´ª½º¸¦ ÄÄÆÄÀÏ ÇÒ¼ö ¾ø´Ù¸é ¾î¶»°Ô Çؾß
  Çϴ°¡?

  ¸®´©½º´Â ¸ÞÀÏ·Î ¿Õ¼ºÇÏ°Ô È°µ¿ÇÏ°í ÀÖ´Ù. ¸®´ª½º a.out as86À¸·Î ¸®´ª½º¸¦
  ÄÄ ÆÄÀÏÇÏ´Â ³ªÀÇ ÆÐÄ¡µµ ±×°ÍÀ» ¸¸µéÁö ¸øÇÑ´Ù.  ÀÌÁ¦, À̰͵éÀÌ ¼º°øÇÏÁö
  ¸øÇÑ´Ù¸é: bin86 ÆäÅ°Áö¾ÈÀÇ /usr/bin¿¡ ÀÖ´Â ¿©·¯ºÐµéÀÇ as86 À» °¡Áö°í
  ÀÖ°í, ´õ ÁÁÀº as86À» /usr/local/libexec/i386/bcc/as¿¡ °¡Á®´Ù ³õ¾Æ¶ó.
  ¾Æ¸¶µµ ÀÌ "ÁÁÀº" as86À» ºÎ¸¦ ÇÊ¿ä°¡ ´õÀÌ»ó ¾øÀ» °ÍÀÌ´Ù.

  2.5.  ´Ù¸¥ ¾î¼Àºí·¯µé

  2.5.1.  Win32Forth ¾î¼Àºí·¯

  Win32Forth ´Â Win32s, Win95, Win/NT¿¡¼­ ÈǸ¢ÇÏ°Ô µ¹¾Æ°¡´Â ÇÁ¸® 32ºñÆ®
  FORTH ½Ã½ºÅÛÀÌ´Ù.  ±×°ÍÀº ¾î¼Àºí·¯¿¡ ÅëÇÕµÈ ÇÁ¸® 32ºñÆ®
  ¾î¼Àºí·¯(Á¢µÎ»ç ¶Ç´Â Á¢¹Ì»ç ¹®¹ý)¸¦ Æ÷ ÇÔÇÏ°í ÀÖ´Ù.  ¸ÅÅ©·Î 󸮴Â
  »ç·Á±íÀº FORTH ¾ð¾îÀÇ full power¿¡ ÀÇÇØ Ã³¸®µÈ´Ù.  ±×·¯³ª ´ÜÁö
  ÀÔÃâ·ÂÀº Win32For ±×°Í ÀÚü¸¦ ÀÌ¿ëÇÒ »ÓÀÌ´Ù.  ´ÙÀ½¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.
  ftp.forth.org/pub/Forth/win32for/
  <ftp://ftp.forth.org/pub/Forth/win32for/>

  2.5.2.  NASM

  ³×Æ®¿öÅ© »ó¿¡¼­ ¹ú¾îÁö°í ÀÖ´Â ¾î¼Àºí·¯ ÇÁ·ÎÁ§Æ®´Â ¾ÆÁ÷ ´Ù¸¥ ¾î¼Àºí·¯¸¦
  ¸¸µé±â À§ÇØ ³ë·ÂÇÏ°í ÀÖ´Â ÁßÀÌ´Ù. ÀÌ°ÍÀº C¿¡¼­ ¾²¿©Á³´Âµ¥, ¸ðµç ¾Ë·ÁÁø
  ¹®¹ýµé°ú ¿ÀºêÁ§Æ® Æ÷¸ËµéÀ» Á¦°øÇÏ´Â µ¥ ÃæºÐÇÑ ¸ðµâ·¯°¡ µÉ°ÍÀÌ´Ù.  ÇöÀç
  ¹öÁ¯Àº Á¶±ÝÀÇ ¸Å¿ì °£´ÜÇÑ ¹®¹ýµé°ú ÆòÀÌÇÑ ¹ÙÀ̳ʸ® Ãâ·Â¿¡ À־´Â
  Àßµ¹¾Æ°£´Ù; ¸ÅÅ©·Î ÇÁ·Î¼¼½Ì¿¡´Â Èï¹Ì°¡ ¾ø¾îº¸ÀδÙ.  È®½ÇÈ÷ NASMÀº ÀÌ
  ÇÏ¿ìÅõ°¡ ¾÷µ¥ÀÌÆ® µÇ´Â °Í º¸´Ù ºü¸£°Ô ¹ßÀüÇÏ°í ÀÖ´Ù; ±×·¸´Ù°í NASMÀÌ
  ÇöÀç ¿ä±¸µÇ´Â ¸ðµç Ư¡µéÀ» °¡Áö°í ÀÖÀ» °ÍÀ̶ó°í ±â´ëÇÏ Áö´Â ¸»¶ó.
  Àû¾îµµ ¿©·¯ºÐµéÀÌ ±×°ÍÀÇ °èȹÀÌÇàÀ» µµ¿ï Áغñ¾øÀÌ´Â...
  www.dcs.warwick.ac.uk/~jules/nasm1.html
  <http://www.dcs.warwick.ac.uk/~jules/nasm1.html>

  2.5.3.  Tunes

  Tunes OS ÇÁ·ÎÁ§Æ®´Â ±×µé ÀÚ½ÅÀÇ ¾î¼Àºí·¯¸¦ Scheme ¾ð¾î¸¦ »ç¿ëÇÔÀ¸·Î½á
  Àüü °³¹ß ¼öÇàÀÇ ÀϺκÐÀ¸·Î °³¹ßÇÏ°í ÀÖ´Ù.  ±×°ÍÀº ¾ÆÁ÷ Àß µ¹¾Æ°¡Áö
  ¾Ê°í ÀÖÀ¸¸ç µµ¿òÀ» ÇÊ¿ä·Î ÇÏ°í ÀÖ´Ù.  ÀÌ ¾î¼Àºí·¯´Â ½Éº¼¸¯ ¹®¹ý Æ®¸®¸¦
  ó¸®ÇÏ´Â µ¥, ÀÌ°ÍÀº ¾î¼Àºí¸® ¹®¹ýÀÇ ±âÃÊ·Î µ¿µîÇÏ°Ô ¼­ºñ½º µÉ ¼ö
  ÀÖÀ¸¸ç, µð½º¾î¼Àºí·¯, °øÅë ¾î¼Àºí·¯/ÄÄÆÄÀÏ·¯ back-end µîµîÀÇ, ±×¸®°í
  ÀüÁ¤ÇÑ ¾ð¾îÀÎ SchemeÀÇ Ç®ÆÄ¿ö´Â ¸ÅÅ©·Îó¸®/¸ÞÆ®·Î󸮿¡ À־ ŸÀÇ
  ÃßÁ¾À» ºÒÇãÇÑ´Ù.  www.eleves.ens.fr:8080/home/rideau/Tunes/
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/>

  2.5.4.  ÇÁ¸®°¡ ¾Æ´Ï°Å³ª 32ºñÆ®°¡ ¾Æ´Ñ x86 ¾î¼Àºí·¯µé

  ¿©·¯ºÐµéÀº x86 ¾î¼Àºí¸® ÇÁ·Î±×·¡¹ÖÀÇ ±âº»À¸·Î¼­ ±×°Íµé¿¡ ´ëÇØ Á»´õ
  ã¾Æ º¼ ¼ö ÀÖ´Ù. Raymond MoonÀÇ comp.lang.asm.x86À» À§ÇÑ FAQ ¸¦
  ã¾Æº¸±â ¹Ù¶õ ´Ù.  www2.dgsys.com/~raymoon/faq/asmfaq.zip
  <http://www2.dgsys.com/~raymoon/faq/asmfaq.zip>

  3.  META ÇÁ·Î±×·¡¹Ö/ ¸ÅÅ©·Î ó¸®

  ¿©·¯ºÐµéÀº ÀÌ·¯ÇÑ ÀÛ¾÷À» À§Çؼ­ Àû´çÇÑ ÅøÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, ±×°ÍÀÌ
  Àû´çÇÏÁö ¾Ê´Ù¸é ¾î¼Àºí¸®¸¦ ¼±ÅÃÇÒ ¼ö ¾ø´Ù; C, OCAML, perl, Scheme °¡
  ´ç½ÅÀÇ ÇÁ·Î±×·¡¹ÖÀÇ ÃÖ¼±ÀÇ ¼±ÅÃÀÌ µÉ °ÍÀÌ´Ù.  ±×·¯³ª, ÀÌ·¯ÇÑ ÅøµéÀÌ
  ±â°è»ó¿¡¼­ ÃæºÐÈ÷ ¾µ¸¸ÇÑ Á¦¾î±â´ÉÀ» ÁÖÁö ¾Ê´Â´Ù¸é, ¾î¼Àºí¸®´Â
  À¯¿ëÇϰųª ÇÊ¿äÇÒ °ÍÀÌ´Ù.  ´Ù¸¥ °æ¿ì¿¡, ¸¸ÀÏ ¿©·¯ºÐµéÀÌ ¾ÈÀüÇÑ
  ÇÁ·Î±×·¡¹Ö, Æí¾ÈÇÑ ¼öÁ¤ µîµîÀ» Çã¶ôÇÏ´Â ÀζóÀÎ È®Àå¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î
  ½Ã½ºÅÛÀÇ ¸ÅÅ©·Îó¸®¿Í ¸ÞŸÇÁ·Î±×·¡¹ÖÀ» ÀÌÇØÇÏ °íÀÚ ÇÑ´Ù¸é ±×°ÍÀº Çѹø
  Á¤ÀǵǴ Àç±ÍÆÐÅÏÀ» Çã¶ôÇÒ °ÍÀ̸ç, ´ÙÁß ½Ã°£À» Àç»ç¿ë ÇÒ °ÍÀÌ´Ù.
  "ÆòÀÌÇÑ" ¾î¼Àºí·¯´Â Á¾Á¾ ÀÛÀº ·çƾÀ» C·Î ¸µÅ©½Ãų ¶§ Á¶Â÷ ÃæºÐÈ÷
  ¾ÊÀº¶§°¡ ÀÖ´Ù.

  3.1.  À§¿¡¼­ ÅëÇÕµÈ °ÍÀ̶õ ¹«¾ùÀ» ¶æÇϴ°¡

  3.1.1.  GCC

  GCC ¿¡¼­ ÀζóÀÎ ¾î¼Àºí¸® Äڵ带 »ç¿ëÇÑ´Ù¸é ±× ¼Ó¿¡¼­ÀÇ ·¹Áö½ºÅÍ ±ÔÄ¢À»
  ²Ä²Ä ÇÏ°Ô »ìÆ캸¾Æ¾ß ÇÑ´Ù. ÃÖÀûÈ­½ÇÇàÀÚ´Â Ç×»ó ±×°Í¿¡ ´ëÇØ ¾Ë°í
  ÀÖÀ¸¹Ç·Î, ÀζóÀÎ ¾î¼Àºí¸® ÄÚµå´Â Á¤È®ÇÏÁö ¾Ê´Â Äڵ带 ¸¸µé¾î ³½´Ù.
  ±×·¯¸é, ¿©·¯ºÐµéÀÇ ¾î¼Àºí¸®¸¦ CPP ¸ÅÅ©·Î¿¡ ³õÀ» ¼ö ÀÖÀ¸¸ç, ¸ðµç
  »ç¶÷µéµµ ±×°ÍÀ» C ÇÔ¼ö/¸ÅÅ©·Î·Î »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  ÀζóÀÎ ÇÔ¼ö´Â
  ¸ÅÅ©·Î¿Í ¸Å¿ì ¸¹ÀÌ ºñ½ÁÇѵ¥, ±×°ÍÀº °¡²û »ç¿ëÀ» Çϱâ À§ÇØ ±ú²ýÇÏ°Ô
  û¼ÒµÉ ¶§°¡ ÀÖ´Ù.  ±×·¯ÇÑ °æ¿ì¿¡ Äڵ尡 º¹»ç°¡ µÉ ¼ö ÀÖÀ¸´Ï ÁÖÀÇÇؾß
  ÇÑ´Ù.  ±×·¡¼­ ·ÎÄà ¶óº§("1:" ½ºÅ¸ÀÏÀÇ)¿¡¼­¸¸Àº ¾î¼Àºí¸® Äڵ忡¼­
  Á¤ÀǵǾî ÀÖ¾î¾ß ÇÑ´Ù.  ±×·¸´Ù ÇÒÁö¶óµµ, ¸ÅÅ©·Î´Â ·ÎÄÃÀÌ ¾Æ´Ñ
  Á¤ÀǶóº§ÀÇ À̸§µµ  Çã¿ëÀ» ÇÑ´Ù.  ¶ÇÇÑ, ¿©·¯ºÐµéÀÇ Äڵ峪 GCCÀÇ Á¶±ÝÀÇ
  ¹ö±×´Â ·¹Áö½ºÅÍ ±ÔÁ¤ÀÌ ¾Æ¸¶µµ ¼±¾ðµÇ Áö ¾Ê¾ÒÀ» ¶§, ÀζóÀÎ ÇÔ¼ö¸¦
  ¾î¼Àºí¸® ÄÚµå·Î »ç¿ëÇÒ ¶§, ³ªÅ¸³¯ ¼ö ÀÖÀ» °Í À̸ç GCC¸¦ È¥µ¿¿¡
  ºü¶ß¸°´Ù.  ¸¶Áö¸·À¸·Î, C ¾ð¾î´Â ±×Â÷ü°¡ ¾î¼Àºí¸® ÇÁ·Î±×·¡¹Ö¿¡ À־
  Á¦¹ý ±¦ÂúÀº Ãß»óÈ­ ¶ó°í ´ë¿ì¹Þ°í ÀÖ´Ù. ¾î¼Àºí¸µÀÇ °íÃæ¿¡¼­ ¸¹Àº ºÎºÐÀ»
  µé ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.  ±×¸®°í ÇÔ¼ö·Î ÀÎÀÚ¸¦ ·¹Áö½ºÅ͸¦ ÅëÇØ ³Ñ°ÜÁÖ´Â
  ¸î¸î ÃÖÀûÈ­´Â ¾î¼Àºí¸®¿¡¼­ ±× ÇÔ¼ö¸¦ ºÎ¸¦ ¶§ ºÎÀû´ç ÇÒ ¼öµµ ÀÖ´Ù.
  Àû¾îµµ ¿©·¯ºÐµéÀÌ ¾îÆ®¸®º× asmlinkage ¿¡°Ô ±×°ÍµéÀ» ÁÖ¾î¾ß ÇÑ´Ù.
  ¸®´ª½º Ä¿³Î ¼Ò½ºÀÇ ºÎºÐÀ» Âü°í ÇÒ ¼ö ÀÖ´Ù.

  3.1.2.  GAS

  GAS´Â Àý´ë·Î ¸ÅÅ©·Î ±â´ÉÀ» Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê´Ù.  ±×·¯³ª, GCC ¿Í
  °Ç³×Áö´Â .S ÆÄÀϵéÀº ±×°ÍµéÀÌ GAS¿¡°Ô °Ç³×Áö±â Àü¿¡ CPP¸¦ Åë ÇÒ ¼öµµ
  ÀÖ´Ù.  .s ÆÄÀÏÀº Çϳª¸¦ »ý¼º½ÃÅ°°í ¹Ù·Î GAS¿¡°Ô·Î °Ç³×Áø´Ù.  ´Ù½ÃÇѹø
  ¸»ÇÏÁö¸¸, ¿¹¸¦ º¼·Á¸é ¸®´ª½º ¼Ò½ºµéÀ» º¸¶ó.

  3.1.3.  GASP

  º¸ÅëÀÇ °ÅÀÇ ¸ðµç ¸ÅÅ©·Î¾î¼Àºí¸®¸¦ GAS¿¡°Ô º¸ÅÄ´Ù.  texinfo doc¸¦ º¸¶ó.

  3.1.4.  AS86

  ÀÌ°ÍÀº °£´ÜÇÑ ¸ÅÅ©·Î¸¦ Á¦°øÇÑ´Ù. ³ª´Â docµéÀ» ¸øã¾Ò´Ù.  ÀÌ ¼Ò½ºµéÀº
  ¾ÆÁÖ °£°áÇÏ°í ±ò²ûÇÏ´Ù.  ¿©·¯ºÐµéÀÌ Èï¹Ì¸¦ °¡Áø´Ù¸é ±×°ÍµéÀ» ½±°Ô
  ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  Ãʺ¸ÀûÀÎ °Íº¸´Ù ´õ ¸¹ÀÌ ¾Ë°í ½Í´Ù¸é ¿ÜºÎÇÊÅ͸¦
  ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.  (¾Æ·¡ÀÇ 3.2 ºÎºÐÀ» º¸¶ó.)

  3.1.5.  ´Ù¸¥ ¾î¼Àºí·¯µé

  Win32FORTH: CODE ¿Í END-CODE´Â Çؼ³¸ðµå·ÎºÎÅÍ ¼±ÅÃÇÒ ¼ö ¾ø´Â
  ¸ÅÅ©·ÎÀÌ´Ù.  ±×·¡¼­ ¾î¼Àºí¸µ µ¿¾ÈÀº FORTH ´Ü¾îÀÇ ¸ðµç °Íµé¿¡ Á¢±ÙÀ» ÇÒ
  ¼ö ÀÖÀ» °ÍÀÌ´Ù.  NASM: ¾ÆÁ÷ ¸ÅÅ©·Î¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù. ¾Æ·¡ÀÇ ¿ÜºÎ ÇÊÅÍ
  ºÎºÐÀ» º¸¶ó.  TUNES: À̰͵µ ¾ÆÁ÷ Á¦°øÇÏÁö´Â ¾Ê´Â´Ù. ±×·¯³ª
  Scheme¾ð¾î´Â ±âºÐ³»Å°´Â µ¥·ÎÀÇ ¸ÞŸ ÇÁ·Î±×·¡¹ÖÀ» Çã¿ëÇÏ´Â ÁøÁ¤ÇÑ
  °í±Þ¾ð¾îÀÌ´Ù.

  3.1.6.  ¿ÜºÎ ÇÊÅÍ

  ¾î¼Àºí·¯¿¡¼­ ¾î¶² ¸ÅÅ©·Îµµ Á¦°øÀ» ÇÏ´øÁö, ¶Ç´Â ¿©·¯ºÐµéÀÌ ¾î¶² ¾ð¾î¸¦
  »ç¿ëÇÑ´Ù°í ÇÏ´õ¶óµµ(C Á¶Â÷!) ±× ¾ð¾î´Â Ç¥ÇöÇÏ´Â µ¥ ÃæºÐÄ¡ ¾ÊÀ» °ÍÀÌ´Ù.
  ¿©·¯ºÐµéÀº Makefile ±ÔÄ¢À¸·Î ´ÙÀ½°ú °°ÀÌ ÆÄÀÏÀ» ¿ÜºÎÇÊÅ͸¦ ÅëÇØ °Ç³×ÁÙ
  ¼ö ÀÖ´Ù.

  %.s:     %.S other_dependencies
           $(FILTER) $(FILTER_OPTIONS) < $< > $@

  3.1.7.  CPP

  CPP ´Â Ç¥Çö·Â¿¡ À־ Á» ¾àÇÏÁö¸¸ ½¬¿î °Íµé¿¡´Â ÃæºÐÇÏ´Ù.  ±×°ÍÀÌ
  Ç¥ÁØÀ̶ó¸é GCC¿¡ ÀÇÇØ ºÒ¸®¿ö Áú °ÍÀÌ´Ù.  CPPÀÇ Á¦ÇÑµÈ Á¡¿¡¼­ º¸µíÀÌ,
  ¿ÀºêÁ§Æ®¸¦ ¼±¾ð ÇÒ ¼ö ¾øÀ¸¸ç, µû¶ó¼­ Æı«ÀÚ (destructors)´Â ÀÚµ¿ÀûÀ¸·Î
  ¼±¾ðºí·°ÀÇ ¸¶Áö¸·¿¡¼­ ÄݵȴÙ. ±×¸®°í µ¥ÀÌŸ³ª Äڵ带 ó¸®Çϱâ À§ÇØ
  ±×°ÍÀ» °øÅë ¼±¾ðÀ» ÇÒ ¼ö ¾ø´Ù.  CPP´Â C ÄÄÆÄÀÏ·¯¿¡ µû¶ó¿Â´Ù.  GCC´Â
  ¿©·¯ºÐµéÀÌ °¡Á®¿Ã ¼ö ÀÖ´Â ÀÚÀ¯·Î¿î C ÄÄÆÄÀÏ·¯ÀÌ´Ù.

  3.1.8.  M4

  M4´Â ¸ÅÅ©·Î󸮿¡ À־ Ź¿ùÇÑ ´É·ÂÀ» º¸¿©ÁØ´Ù. Àç±ÍÀû Ç¥Çö,
  Áú¼­Á¤¿¬ÇÑ ±ÔÄ¢µî¿¡ À־ ±¦Âú¾Æ º¸ÀδÙ.  CPP°¡ ÇÒ ¼ö ¾ø´Â ¸ðµç
  °ÍµéÀ» ±×°ÍÀ¸·Î ÇÒ ¼ö ÀÖ´Ù.  macro4th/This4th ¸¦ ¾Æ·¡¿¡¼­ º¸¶ó.
  ftp.forth.org/pub/Forth/ in Reviewed/ ANS/
  <ftp://ftp.forth.org/pub/Forth/ in Reviewed/ ANS/> (?), ¶Ç´Â Tunes
  0.0.0.25 ¼Ò½º¸¦ m4¸¦ »ç¿ëÇÏ´Â Áøº¸ÇÑ ¸ÅÅ©·Î ó¸®ÀÇ ¿¹Á¦·Î¼­ º¸´Â °Íµµ
  ±¦ÂúÀ» °ÍÀÌ´Ù.  m4ÀÇ ¶óÀÌÆ®¹öÁ¯Àº GNU m4 1.4 (ÀÌ»ó)À¸·Î ±¸ÇÒ ¼ö ÀÖ´Ù.

  3.1.9.  ÇÊÅ͸¦ ÅëÇÑ ¸ÅÅ©·Î ó¸®

  ¿©·¯ºÐµéÀº °£´ÜÇÑ ¸ÅÅ©·Î È®Àå ÇÊÅ͸¦ ¾µ ¼ö ÀÖ´Ù. perl, awk, sed µîÀ»
  »ç¿ëÇÔÀ¸·Î½á °¡´ÉÇÏ´Ù.  ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ ºü¸£¸ç, °ÅÀÇ ¸ðµç °ÍÀ» Á¦¾î
  ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

  3.1.10.  ¸ÞŸ ÇÁ·Î±×·¡¹Ö

  [»ý·«]

  4.  ÄÁº¥¼Ç ºÎ¸£±â

  4.1.  4.1 Linux

  4.1.1.  GCC·Î ¸µÅ©Çϱâ

  32ºñÆ® ÀÎÀÚ´Â 32ºñÆ® near¸®ÅÏ ¾îµå·¹½ºÀ§·Î ½ºÅÃ»ó¿¡ Çª½¬µÈ´Ù.  %ebp,
  %esi, %edi, %ebx °¡ ÀúÀåµÈ´Ù.  %eax¿¡ °á°ú°¡ ´ã±â°Å³ª %edx:%eax¿¡
  64ºñÆ® °á°ú°¡ ´ã±ä´Ù.  GCC´Â ÀúÀåµÈ ·¹Áö½ºÅÍ¿¡ ÀÇÇØ È£ÃâµÇ´Â ÄÁº¥¼ÇÀ»
  º¯°æÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ» °¡Áö°í ÀÖÀ¸¸ç, ·¹Áö½ºÅÍ¿¡ ÀÎÀÚ¸¦ °¡Áö°í ÀÖÀ¸³ª
  FPU¸¦ »ý°¢ÇÏÁö ¾Ê´Â´Ù.  i386 ÀÎÆ÷ ÆäÀÌÁö¸¦ üũÇ϶ó.  GCC°¡ ÀÌ·¯ÇÑ
  Ç¥ÁØ ÄÁº¥¼ÇÀ» Á¦°øÇÒ·Á¸é ÇÔ¼ö¸¦ À§ÇØ asmlinkage attribute¸¦ ¼±¾ðÇؾß
  ÇÑ´Ù.  (³ª´Â ¾î¶»°Ô ±×°ÍÀÌ ÄÁº¥¼ÇÀ» ºÒ·¯¼­ º¯°æÇÏ´Â Áö¸¦ ¾ËÁö ¸øÇÑ´Ù.)

  4.1.2.  ELF vs a.out ¹®Á¦µé

  ¾î¶² C ÄÄÆÄÀÏ·¯´Â ¸ðµç ½Éº¼ Àü¿¡ °­Á¶¸¦ ÁغñÇÑ´Ù.  Ưº°È÷, ¸®´ª½º
  a.out GCC ´Â ¸®´ª½º ELF GCC°¡ ¾øÀ» µ¿¾È ±×·¯ÇÑ Áغñ¸¦ ÇÑ´Ù.  ¸®´ª½º
  ¼Ò½º Æ®¸®°¡ ±×°ÍÀ» ¾î¶»°Ô °ü¸®ÇÏ´Â Áö¸¦ º¸¶ó.
  (linux/include/linux/linkage.h).  ¿©·¯ºÐµéÀº C->asm À̸§ º¯°æÀ» ´ÙÀ½°ú
  °°Àº ±â¼úÀ» »ðÀÔÇÔÀ¸·Î½á ¶Ù¾î³ÑÀ» ¼ö ÀÖ´Ù.  void foo asm("bar")
  (void); foo ÇÔ¼ö¸¦ È®½ÇÈ÷ Çϱâ À§Çؼ­´Â ¾î¼Àºí¸®¿¡¼­ bar¸¦ È£ÃâÇؾß
  ÇÑ´Ù.  binutils ÆÐÅ°Áö¾ÈÀÇ objcopy À¯Æ¿¸®Æ¼´Â a.out ¸ñÀûÆÄÀÏÀº ELF
  ¸ñÀûÆÄÀÏ·Î ¸¸µé¼ö ÀÖÀ¸¸ç ¹Ý´ëÀÇ °æ¿ìµµ °¡²û °¡´É ÇÒ °ÍÀÌ´Ù.

  4.1.3.  Á÷Á¢ÀûÀÎ ¸®´ª½º ½Ã½ºÅÛ ÄÝ

  ÀÌ°ÍÀº Àç¸í¸íÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇϸé ÀÌ°ÍÀº ¹Ù²î¸é ȣȯ¼ºÀÌ ¾ø¾îÁö±â
  ¶§¹®ÀÌ´Ù.  ±×¸®°í ÀÌ°ÍÀº libcÀÇ °íÁ¤ÀûÀÎ °Íµé°ú È®ÀåµÈ °ÍµéÀ»
  ¹æÇØÇÑ´Ù.  Á¤¼®À¸·Î ÇÏÀÚ¸é, ¸®´ª½º ½Ã½ºÅÛ ¼­ºñ½º ÄÝÀ» Àç¸í¸íÇÏ´Â °ÍÀº
  libc¸¦ ÅëÇؼ­ ÇÑ´Ù.  ÀÌÁ¦, libc·Î ¸µÅ©¸¦ ½ÃÅ°´Â °ÍÀ» ¿øÇÏÁö ¾ÊÀ»
  °ÍÀÌ´Ù. ¾Æ·¡¿¡¼­ linux-eforth- 1.0c.tgz À» º¸¶ó.
  ftp.forth.org/pub/Forth/Linux/ <ftp://ftp.forth.org/pub/Forth/Linux/>
  ¸®´ª½º ¼Ò½º°¡ µû¶ó¿Ã °ÍÀÌ´Ù. ¾î¶»°Ô ½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÒ °ÍÀÎÁö¸¦
  ¼³¸íÇÏ´Â asm/unistd.h Çì´õÆÄÀϵµ µû¶ó¿Â´Ù.  ±âº»ÀûÀ¸·Î ¿©·¯ºÐµéÀº
  %eax¿¡ __NR_syscallname ¹øÈ£¸¦ ³Ö°í, ÆĶó¸ÞŸ¸¦ %ebx, %ecx, %edx,
  %esi, %edi¿¡ °¢°¢ ³Ö°í int $0x80À» »ç¿ë ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.  °á°ú´Â
  %eax¿¡ ¸®Åϵǰí, ¿¡·¯½Ã¿¡´Â libc°¡ errno¸¦ ¼¼ÆÃÇÏ´Â °Í¿¡ ÇØ´çÇÏ´Â
  °á°ú¸¦ À½¼ö·Î %eax¿¡ ³õ´Â´Ù.  »ç¿ëÀÚ ½ºÅØÀº °Ç´õ¸®Áö ¾Ê´Âµ¥, ½Ã½ºÅÛ
  ÄÝÀÌ ºÒ¸®¿ö Áö´Â µ¿¾È º°´Ù´Â °ÍÀÌ ÇÊ ¿äÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

  4.2.  µµ½º

  ÃÖ±ÙÀÇ µµ½º ÀͽºÅÙ´õµé¿¡´Â µµ½º¼­ºñ½º¸¦ À§ÇÑ ÀÎÅÍÆäÀ̽º°¡ µû¶ó¿Â´Ù.
  ±×¿¡ ´ëÇÑ docÆÄÀϵéÀ» Àо¶ó.  º¸ÅëÀº int 0x21À» Èä³»³»´Âµ¥, µû¶ó¼­
  ¸®¾ó¸ðµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.  (³ª´Â ±×°ÍµéÀÌ, ÇÊ¿äÇÒ ¶§ 32ºñÆ®
  ÀÛµ¿ÀÚ¸¦ »ç¿ëÇÏ¿© 16ºñÆ® µµ½º ¼­ºñ½º¸¦ È£ÃâÇÔÀ¸·Î½á ÀÛ¾÷À» ÇÒ ¼ö
  ÀÖÀ¸¸®¶ó°í´Â »ý°¢Ä¡ ¾Ê´Â´Ù.)  DPMI¿¡ °üÇÑ docÀº ´ÙÀ½¿¡¼­ ãÀ» ¼ö ÀÖ´Ù.
  ftp.oulu.fi/pub/msdos/programming/
  <ftp://ftp.oulu.fi/pub/msdos/programming/> DJGPP ¿¡´Â ÀÚüÀÇ (Á¦ÇѵÈ)
  ±³Ã¼µÈ libc°¡ µû¶ó¿Â´Ù.  ÀÌ°ÍÀº ¸®´ª½º¿¡¼­ µµ½º·Î Å©·Î½ºÄÄÆÄÀÏÀÌ
  °¡´ÉÇÏ´Ù.  ±×·¯³ª ÇöÀç ÀÖ´Â ÆÐÄ¡´Â a.out GCC¿ëÀ̸ç ÃÖ±ÙÀÇ ELF GCC´Â
  ÆÐÄ¡°¡ ÇÊ¿ä¾øÀ» °ÍÀÌ´Ù.  ¸¸ÀÏ ±×°ÍµéÀÌ »õ·Î¿î ÆÐÄ¡¸¦ ÇÊ¿ä·Î ÇÑ´Ù¸é
  ³­¸ð¸£°Ú´Ù..

  4.3.  ¿©·¯ºÐµéÀÇ OS

  [¾î¼Àºí¸® ÇÁ·Î±×·¡¸ÓµéÀÌ ¸¹ÀÌ ±×°Í¿¡ ´ëÇØ À̾߱â ÇÏ°í ÀÖ´Â °ÍÀÌ´Ù.]

  4.3.1.  ºÎÆ® ·Î´õ ÄÚµå¿Í 32ºñÆ® ¸ðµå·Î µé¾î°¡±â

  4.3.2.  ÇÁ·ÎÅؼÇÀÇ ±âÃÊ

  4.3.3.  ÀÎÅÍ·´Æ® ´Ù·ç±â

  4.3.4.  16ºñÆ® ½Ã½ºÅÛ ¼­ºñ½º¸¦ »ç¿ëÇÏ´Â V86/R86 ¸ðµå

  4.3.5.  À̰͵鿡 ´ëÇÑ Á¤º¸¸¦ ¾îµð¼­ ¾òÀ» °ÍÀΰ¡

  [´Ù¸¥ ¹®¼­¿¡ À̺κе鿡 ´ëÇÑ ¾È³»Ç¥½Ã¸¦ º¸ÅÂÁֱ⠹ٶõ´Ù] Á¤º¸ÀÇ Áß¿äÇÑ
  ¼Ò½º´Â OS¿¡ Á¸ÀçÇÏ°í ÀÖ´Ù.  ¸¹Àº ¾È³»Ç¥½ÃµéÀÌ ¾Æ·¡ÀÇ WWW ÆäÀÌÁö¿¡
  ÀÖ´Ù.  www.eleves.ens.fr:8080/home/rideau/Tunes/Review/OSes.html
  <http://www.eleves.ens.fr:8080/home/rideau/Tunes/Review/OSes.html>

  5.  ÇØ¾ß ÇÒÀÏ

  o  ºÒ¿ÏÀüÇÑ ºÎºÐ ä¿ì±â

  o  ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ ´õ ¸¹Àº ¾È³»Ç¥Áö º¸Å±â

  o  ½ÇÁ¦ »ýÈ°¿¡ º¸ÅÆÀÌ µÇµµ·Ï Á¦¾ÈµÈ °¢°¢ÀÇ ¼Ö·ç¼ÇµéÀÇ ¹®¹ý, ÆÄ¿ö,
     Á¦ÇÑÁ¡ µîÀ» ¼³¸íÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ ¿¹Á¦ º¸Å±⠳¡.