Linux Assembly HOWTO : ¸®´ª½º ¾î¼Àºí¸® ÇÏ¿ìÅõ

BoldyshevKonstantin

Linux Assembly

    konst (at) linuxassembly.org

RideauFrancois-Rene

Tunes project

    fare (at) tunes.org

±è¿µÈÖ

http://lachesis.pe.kr

lachesis (at) kldp.org

$Date: 2001/10/27 02:18:17 $

ÀÌ ¹®¼­´Â ¸®´ª½º ¾î¼Àºí¸® ÇÏ¿ìÅõÀÌ´Ù. ÀÌ ¹®¼­´Â GNU ÀÇ ÀÚÀ¯ ÇÁ·Î±×·¡¹Ö µµ±¸µéÀ» »ç¿ëÇÏ¿© (ÁÖ·Î) ÀÎÅÚÀÇ 32 ºñÆ® Ç÷§Æû(IA32 ; i386)ÀÇ ¸®´ª½º¿¡¼­ ¾î¼Àºí¸® ¾ð¾î·Î ÇÁ·Î±×·¡¹Ö ÇÏ´Â ¹ýÀ» ¼³¸íÇÑ´Ù. ÀÌ ±Û¿¡¼­ ¼³¸íÇÏ´Â ³»¿ëµéÀº ´Ù¸¥ Çϵå¿þ¾î³ª ¼ÒÇÁÆ®¿þ¾î Ç÷§Æû¿¡ Àû¿ëµÉ ¼öµµ ÀÖ°í, ±×·¸Áö ¾ÊÀ» ¼öµµ ÀÖ´Ù. (¿ªÁÖ: ÀÌ ¹ø¿ª¹®¼­´Â ºÎÁ·ÇÑ ÀúÀÇ ¹®Àå½Ç·ÂÀ¸·Î Çʿ伺¿¡ ÀÇÇÏ¿© ¹ø¿ªÇÑ °á°ú·Î À߸øµÈ ¿À¿ª°ú Àǹ̿¡ ÀÌ»ó¾ø´Â ºÎºÐÀÌ ºüÁú ¼öµµ ÀÖÀ½À» ¹Ì¸® ¾Ë¸³´Ï´Ù. µû¶ó¼­ À߸øµÈ ¹ø¿ªÀ¸·Î ¿À´Â Ã¥ÀÓÀº Àú¿¡°Ô ¾øÀ¸¸ç, ¸¸ÀÏ ¼öÁ¤ÇØ¾ß ÇÒ °÷ÀÌ ÀÖ´Ù¸é Àú¿¡°Ô ¿¬¶ôÀ» ÇØÁֽñ⠹ٶó¸ç, ¿øÀúÀÇ ¿À·ù¶ó¸é ¿øÀúÀÚ¿¡°Ô ¿¬¶ôÇØÁֽñ⠹ٶø´Ï´Ù. ºÎÁ·ÇÑ Á¦ ¿µ¾î½Ç·ÂÀ¸·Î ÀÎÇØ ¹ø¿ªÀÌ ¾Ö¸ÅÇÑ ºÎºÐÀº ¿ø¹®À» °°ÀÌ Ç¥±âÇØ µÎ¾ú½À´Ï´Ù.)

°íÄ£ °úÁ¤
°íħ ¹ø¿ª ¹öÁ¯ 0.6-trans-0.12000. 11. 21 - 2001. 10. 20°íÄ£ÀÌ ¶óŰ½Ã½º
¹®¼­ Ãʹú ¹ø¿ª ¿Ï·á : Resource ÀÌÈÄÀÇ °ÍÀº ¹Ì¹ø¿ª
Version 0.6

Â÷·Ê
1. ¼Ò°³
1.1. Legal Blurb (¹ýÀû¹®Á¦¿¡ °üÇÑ ÀܼҸ®)
1.2. ¼­¹®
1.3. ÀÌ ¹®¼­¿¡ ±â¿©ÇÏ´Â ¹ý
2. ¾î¼Àºí¸®°¡ Á¤¸»·Î(!) ÇÊ¿äÇѰ¡?
2.1. Pros and Cons - µæ½Ç(¾î¼Àºí¸®¸¦ »ç¿ëÇÔÀ¸·Î½á »ý±â´Â ÀåÁ¡, ´ÜÁ¡)
2.1.1. ¾î¼Àºí¸®ÀÇ ÀåÁ¡
2.1.2. ¾î¼Àºí¸®ÀÇ ´ÜÁ¡
2.1.3. °á·Ð
2.2. ¾î¼Àºí¸®¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¹æ¹ý
2.2.1. È¿À²ÀÌ ³ôÀº Äڵ带 »ý¼ºÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ÀýÂ÷
2.2.2. ÃÖÀûÈ­µÈ ÁÁÀº Äڵ带 »ý¼ºÇÏ´Â ÄÄÆÄÀÏ·¯¸¦ °¡Áø ¾ð¾îµé
2.2.3. ¿©·¯ºÐÀÇ ÄÚµåÀÇ ¼öÇà¼Óµµ¸¦ ³ôÀÌ´Â ÀϹÝÀûÀÎ ÀýÂ÷
2.2.4. ÄÄÆÄÀÏ·¯°¡ »ý¼ºÇÑ Äڵ忡 ´ëÇÑ °íÂû
2.3. ¸®´ª½º¿Í ¾î¼Àºí¸®
3. °¡¿ëÇÑ ¾î¼Àºí·¯µé
3.1. GCC ÀζóÀÎ ¾î¼Àºí·¯
3.1.1. GCC ¸¦ ¾îµð¼­ ±¸ÇÒ °ÍÀΰ¡?
3.1.2. GCC ÀζóÀÎ ¾î¼Àºí·¯¿¡ °üÇÑ ¹®¼­¸¦ ¾îµð¼­ ãÀ» ¼ö Àִ°¡
3.1.3. GCC ¸¦ ÀÌ¿ëÇÏ¿© ÀζóÀÎ ¾î¼Àºí¸® Äڵ带 »ý¼ºÇϱâ
3.1.4. ¸ÅÅ©·ÎÀÇ Áö¿ø
3.2. GAS
3.2.1. ¾îµð¿¡¼­ GAS ¸¦ ãÀ» ¼ö Àִ°¡
3.2.2. AT&T ¹®¹ý
3.2.3. GAS ÀÇ ÀÎÅÚ ¹®¹ý Áö¿ø
3.2.4. 16-ºñÆ® ¸ðµå
3.2.5. ¸ÅÅ©·Î Áö¿ø
3.3. NASM
3.3.1. NASMÀ» ¾îµð¼­ ±¸ÇÒ ¼ö Àִ°¡
3.3.2. NASM À¸·Î ¹«¾ùÀ» ÇÒ ¼ö Àִ°¡
3.4. AS86
3.4.1. AS86 À» ¾îµð¼­ ±¸ÇÒ ¼ö Àִ°¡
3.4.2. ¾î¼Àºí·¯¸¦ ÀÛµ¿½ÃŰ´Â ¹æ¹ý : How to invoke the assembler?
3.4.3. AS86ÀÇ ¹®¼­¸¦ ãÀ» ¼ö ÀÖ´Â °÷
3.4.4. ¸ÅÅ©·Î Áö¿ø
3.4.5. ¸¸¾à ÀÌ »õ·Î¿î ¹öÁ¯À» ÀÌ¿ëÇØ¼­ ¸®´ª½º¸¦ ´õÀÌ»ó ÄÄÆÄÀÏ ÇÒ ¼ö ¾ø´Ù¸é ¾î¶»°Ô ÇØ¾ß Çϴ°¡ : What if I can't compile Linux anymore with this new version?
3.5. ´Ù¸¥ ¾î¼Àºí·¯µé
3.5.1. Win32Forth ¾î¼Àºí·¯
3.5.2. TDASM
3.5.3. Terse
3.5.4. HLA
3.5.5. TALC
3.5.6. x86 ¿ëÀÇ ÇÁ¸®°¡ ¾Æ´Ï°Å³ª 32ºñÆ®°¡ ¾Æ´Ñ ¾î¼Àºí·¯µé
4. ¸ÞŸÇÁ·Î±×·¡¹Ö
4.1. ¿ÜºÎ ÇÊÅ͵é
4.1.1. CPP
4.1.2. M4
4.1.3. ¿©·¯ºÐÀÌ ¸¸µç ÇÊÅ͸¦ ÀÌ¿ëÇÑ ¸ÅÅ©·Î ÇÁ·Î¼¼½Ì
4.2. ¸ÞŸÇÁ·Î±×·¡¹Ö
4.2.1. ÄÄÆÄÀÏ·¯ÀÇ ¹é¿£µå·Î Á¦°øµÇ´Â ¾î¼Àºí·¯ÀÇ ÀÌ¿ë
4.2.2. ´ºÀúÁö ¸Ó½Å-ÄÚµå ŸŶ
4.2.3. TUNES ÇÁ·ÎÁ§Æ®
5. ÇÔ¼ö È£Ãâ ±ÔÄ¢
5.1. Linux
5.1.1. GCC ·ÎÀÇ ¸µÅ· : Linking to GCC
5.1.2. ELF ¿Í a.out ¹®Á¦
5.1.3. Direct Linux syscalls
5.1.4. ¸®´ª½º¿¡¼­ÀÇ Çϵå¿þ¾î ÀÔÃâ·Â
5.1.5. Accessing 16-bit drivers from Linux/i386
5.2. DOS and Windows
5.3. ¿©·¯ºÐÀÌ ¸¸µç OS
6. ÀÏ´Ü µû¶óÇØº¸ÀÚ(Quick Start)
6.1. ¼Ò°³
6.1.1. ÇÊ¿äÇÑ µµ±¸µé
6.2. Hello, world!
6.2.1. Program layout
6.2.2. NASM (hello.asm)
6.2.3. GAS (hello.S)
6.3. ½ÇÇàÆÄÀÏ ¸¸µé±â
6.3.1. ¸ñÀû ÄÚµå »ý¼º
6.3.2. ½ÇÇàÆÄÀÏÀÇ »ý¼º
7. Resources
7.1. Pointers
7.2. Mailing list
8. Frequently Asked Questions
A. History
B. Acknowledgements
C. Endorsements
D. GNU Free Documentation License