´ÙÀ½ ÀÌÀü Â÷·Ê

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

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

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

GCC°¡ ÀÖ´Â °÷

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

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#SEC92 DJGPP °ÔÀÓ¸®¼Ò½º (°ÔÀÓ ÇØÄ¿µé¿¡°Ô »Ó¸¸ÀÌ ¾Æ´Ï¶ó)´Â Ưº°ÇÏ°Ô ¾î¼Àºí¸®¿¡ °üÇÑ ÀÌ·¯ÇÑ ÆäÀÌÁö¸¦ °¡Áö°í ÀÖ´Ù: 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

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

¾î¶»°Ô 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 ¾î¼Àºí·¯ÀÌ´Ù.

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

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

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

GAS´Â 32ºñÆ® À¯´Ð½º ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇϱâ À§ÇØ Ã¢¾ÈµÇ¾ú±â ¶§¹®¿¡ Ç¥ÁØ AT&T ¹®¹ýÀ» ÀÌ¿ëÇÑ´Ù. AT&T ¹®¹ýÀº ¸¹Àº °ÍµéÀÌ Ç¥ÁØ 680x0 ¾î¼Àºí·¯¿Í ´à¾Ò´Ù. ÀÌ ¹®¹ýÀº "Intel" ¹®¹ý¿¡ ºñÇؼ­ ÁÁÁöµµ ¾Ê°í, ³ª»ÚÁöµµ ¾Ê´Ù. ´ÜÁö ´Ù¸¦ »ÓÀÌ´Ù. ¿©·¯ºÐµéÀÌ ±×°ÍÀ» »ç¿ëÇغ¸°Ô µÇ¸é, ÀÎÅÚ ¹®¹ý¿¡ ºñÇØ Á»´õ ¸¹Àº ±ÔÄ¢ÀÌ ÀÖÀ½ À» ¾Ë°Ô µÉ °ÍÀÌ´Ù. ¿©·¯ºÐµéÀÌ ÇÁ·Î±×·¥À» º¯È¯ÇÏ´Â °ÍÀ» µ½±â À§ÇÑ ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÑ´Ù. ÀÌ°ÍÀº TASM ¹®¹ýÀ» AT&T ¹®¹ýÀ¸·Î º¯È¯ÇÏ´Â °ÍÀÌ´Ù. ftp.oulu.fi/pub/msdos/programming/convert/ta2asv08.zipgas.doc À̳ª as.docÆÄÀÏ(GAS¸¦ ãÀº °°Àº °÷ ÁÖÀ§¿¡ ÀÖÀ» °ÍÀÌ´Ù)Àº ±× ¹®¹ýÀ» ±â¼úÇÑ´Ù. ´ÙÀ½ÀÇ FTP µð·ºÅ丮¿¡ ÀÖ´Ù sunsite.unc.edu/pub/linux/GCC/ 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 Á¦ÇÑµÈ 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 GASP¸¦ ¾îµð¼­ ãÀ» °ÍÀΰ¡

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

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

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

2.4 2.4 AS86

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

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 ±×·¯³ª ±× ¹öÁ¯ÀÌ ÀÌÁ¦ ¸¹ÀÌ ¹ßÀüÇßÀ» °ÍÀÌ´Ù. ¿©·¯°³µé Áß¿¡¼­ AS86µµ ÀÌÁ¦ ¸®´ª½º GNU a.out Æ÷¸ËÀ» Áö¿øÇÑ´Ù. ±×·¡¼­ ¿©·¯ºÐ µéµµ Äڵ带 ¸®´ª½º ÇÁ·Î±×·¥¿¡ ¸µÅ©¸¦ ½Ãų ¼ö ÀÖ°í, µ¥ÀÌŸ¸¦ ´Ù·ç±â À§ÇØ GNU binutil ÆÐÅ°ÁöÀÇ º¸ÅëÀÇ ÅøÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ¹öÁ¯Àº ÀÌÀüÀÇ °Íµé°ú ÇÔ²² ¾Æ¹«·± ¼Õ»ó¾øÀÌ °øµ¿À¸·Î Á¸ÀçÇÒ ¼ö ÀÖ´Ù. (¾Æ·¡ÀÇ Áú¹® 2.4.4¸¦ º¸¶ó). BCC ÀÇ 1995.3.12 ÀÌÀüÀÇ ¹öÁ¯µéÀÌ ½Ç¼öÇÑ ÀÌÀ¯´Â 32ºñÆ® ¸ðµå ÇÁ·Î±×·¡¹Ö ½Ã¿¡ ¸ðµç ¼¼±×¸ÕÆ® ÆË°ú Ǫ½¬¸¦ 16ºñÆ®·Î ó¸®ÇÔÀ¸·Î½á ¸Å¿ì ¹ø°Å·Ó°Ô µÈ µ¥ ÀÖ¾ú´Ù. ±× ÆÐÄ¡°¡ Tunes ÇÁ·ÎÁ§Æ®¿¡ ÀÇÇØ ´ÙÀ½¿¡ ¹ßÇ¥µÇ¾ú´Ù. 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 Bruce Evans ´Â ÀÌ ÆÐÄ¡¸¦ ¹Þ¾Æµé¿´´Âµ¥, °¡Àå ÃÖ±ÙÀÇ bcc ¹öÁ¯Àº ÀÌ ÆÐÄ¡ ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. µµ½º »ç¿ëÀÚ¸¦ À§ÇÑ ÁÖÀÇ»çÇ×:

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

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

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

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 À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

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

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

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

Win32Forth ¾î¼Àºí·¯

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

NASM

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

Tunes

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

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

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


´ÙÀ½ ÀÌÀü Â÷·Ê