ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
* Counting Like a Computer Àӽà ¹ø¿ª ÆäÀÌÁö 2006/02/06 ½ÃÀÛ!!
  • óÀ½¿¡´Â ¿µ¹® ¹Ø¿¡ ÇѱÛÀ» ½á³ª°¥ °ÍÀÔ´Ï´Ù. ±×·¡¼­ Àǹ̰¡ ´Þ¶óÁöÁö ¾Ê¾Ò´Â°¡ ¹ø¿ª¿¡ ¿À·ù´Â ¾ø´Â°¡ °Ë»çÇÏ±â ÆíÇϰԿä.

Contents

1 Chap 10. Counting Like a Computer
1.1 Counting
1.1.1 Counting Like a Human
1.1.2 Counting Like a Computer
1.1.3 Conversions Between Binary and Decimal
1.2 Âü, °ÅÁþÀÇ Áø¸®°ª°ú ÀÌÁø¼ö Truth, Falsehood, and Binary Numbers
1.3 The Program Status Register
1.4 Other Numbering Systems
1.4.1 Floating-Point Numbers
1.4.2 Negative Numbers
1.5 Octal and Hexadecimal Numbers
1.6 Order of Bytes in a Word
1.7 Converting Numbers for Display


1 Chap 10. Counting Like a Computer


1.1 Counting


1.1.1 Counting Like a Human


ÄÄÇ»ÅÍ´Â ¿©·¯°¡Áö ¸é¿¡¼­ »ç¶÷°ú À¯»çÇÑ ¹æ½ÄÀÇ °è»êÀ» ÇÑ´Ù. ±×·¡¼­ ÄÄÇ»ÅͰ¡ ¾î¶»°Ô °è»êÀ» ÇÏ´ÂÁö ¾Ë¾Æº¸±â Àü¿¡ ¿ì¸® »ç¶÷ÀÌ ¾î¶»°Ô °è»êÇÏ´ÂÁö ºÎÅÍ ÀÚ¼¼È÷ ¾Ë¾Æº¸ÀÚ.
»ç¶÷Àº ¼Õ°¡¶ôÀÌ ¸î°³Àϱî? ³Í¼¾½º ¹®Á¦°¡ ¾Æ´Ï´Ù. »ç¶÷Àº (Á¤»óÀûÀÎ..) ¿­°³ÀÇ ¼Õ°¡¶ôÀ» °¡Áö°í ÀÖ´Ù. ¹«½¼ »ó°üÀϱî? »ç¶÷ÀÌ ¾²´Â ¼ö °³³äÀ» º¸¸é ¼Õ°¡¶ôÀÇ °¹¼ö¿Í °ü·ÃÀÌ ÀÖÀ½À» ¾Ë°ÔµÈ´Ù. ¾î¶² »óȲ¿¡¼­ ÇÑÀÚ¸® ¼ýÀÚ°¡ µÎÀÚ¸® ¼ýÀÚ°¡ µÉ±î?

¸Â´Ù. 10ÀÌ´Ù. »ç¶÷Àº 10À» ±âº» ´ÜÀ§·Î ¼ýÀÚ¸¦ ¼¾´Ù. 10ÀÌ ±âº» ´ÜÀ§¶ó´Â °ÍÀº »ç¶÷Àº ¹«¾ùÀ̵çÁö 10°³ ´ÜÀ§·Î ¼¾´Ù´Â ¶æÀÌ µÈ´Ù. ¾çÀ» ¼¾´Ù°í ÇØº¸ÀÚ. 1,2,3,4,5,6,7,8,9,10. ¿Ö °©Àڱ⠵ΰ³ÀÇ ¼ýÀÚ°¡ »ý°Ü³µ°í 1À» ´Ù½Ã ¾²°Ô µÇ³ª? ±×°ÍÀº ¿ì¸®°¡ ¼ýÀÚ¸¦ 10 ´ÜÀ§·Î ¹­¾î¼­ »ý°¢ÇÏ°í ¿­ ¸¶¸®ÀÇ ¾çÀ» ÇÑ ±×·ìÀ¸·Î »ý°¢Çϱ⠶§¹®ÀÌ´Ù. ÀÌÁ¦ ´ÙÀ½ ¼ýÀÚ 11·Î ³Ñ¾î°¡º¸ÀÚ.

11¸¶¸®ÀÇ ¾çÀº ¿ì¸®°¡ 10¸¶¸®·Î µÈ ÇÑ ±×·ìÀÇ ¾çÀ» °¡Áö°í ÀÖ°í °Å±â¿¡ 1¸¶¸® ¾çÀÌ ´õ ÀÖ´Ù´Â ÀǹÌÀÌ´Ù. °è¼ÓÇϸé 12, 13, 14, 15, 16, 17, 18, 19, 20ÀÌ µÈ´Ù. ÀÌÁ¦ ¿ì¸®´Â ¿­¸¶¸®Â¥¸® ¾ç ±×·ìÀ» µÎ°³ °¡Áö°í ÀÖ´Ù. 21Àº µÎ ±×·ìÀÇ ¾ç°ú 1 ±×·ì¿¡ ¾Èµé¾îÀÖ´Â ÇѸ¶¸®ÀÇ ¾çÀÌ ÀÖ´Ù´Â °ÍÀÌ´Ù. °è¼Ó ´õÇϸé 97,98,99,100ÀÌ µÈ´Ù. ¾Æ±î¿Í °°Àº ÀÏÀÌ ¶Ç ¹Ýº¹µÈ´Ù. 100À¸·Î ³Ñ¾î°¥ ¶§ ¹«½¼ ÀÏÀÌ ¹ú¾îÁø°É±î? ¿ì¸®´Â 10¸¶¸® ¾ç ±×·ìÀ» 10°³ °¡Áö°Ô µÆ´Ù. 101Àº ¿©±â¿¡¼­ ±×·ì¿¡ ¸øµéÀº 1¸¶¸® ¾çÀÌ ´õ »ý±ä °ÍÀÌ´Ù.
¿ì¸®´Â ¾î¶² ¼ö¶óµµ ÀÌ·¸°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Ù. 60879¸¶¸®ÀÇ ¾çÀ» ¼¾´Ù¸é ¿­¸¶¸® ¾ç ±×·ìÀÌ ¿­°³ ÀÖ°í ÀÌ°Ô ¶Ç ¿­°³ ÀÖ°í ¶Ç ¿­°³ ÀÖ°í ¶Ç ¿­°³ ÀÖ´Â°Ô 6°³°¡ ÀÖ´Ù´Â °ÍÀ̰í, ¿­¸¶¸® ±×·ìÀÌ ¿­°³ÀÖ°í ÀÌ°Ô ¶Ç ¿­°³ ÀÖ°í... (¿ªÀÚ: ¾Ë¾Æ¼­ ÀÌÇØÇϽöó...)

ÀÌ·¸°Ô 10°³¸¦ ±×·ìÀ¸·Î °è»êÇÏ´Â °Í¿¡ ¹º°¡ Ưº°ÇÑ Á¡ÀÌ ÀÖÀ»±î? ¾Æ´Ï´Ù. ¿ì¸®°¡ 10°³ÀÇ ¼Õ°¡¶ôÀ» °¡Áö°í ÇÏ´ø ¹æ½Ä ±×´ë·ÎÀÌ´Ù. ¿ì¸®´Â (»õ·Î¿î ¼ýÀÚ¸¦ ¸¸µé¾î ³½´Ù¸é) 9°³³ª 11°³¸¦ ±×·ìÀ¸·Î ¼¿ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.

±×·ìÀ¸·Î ¹­´Â °¹¼ö°¡ ´Þ¶óÁö¸é ¿ì¸®´Â °ö¼ÀÀ̳ª µ¡¼À, »¬¼À, ³ª´°¼ÀÀ» °¢ ±×·ì ¹æ½Ä¿¡ ¸Â°Ô »õ·Ó°Ô ¹è¿ö¾ß ÇÑ´Ù. ÇÏÁö¸¸ ±âº»ÀûÀÎ ±ÔÄ¢Àº ¹Ù²îÁö ¾Ê´Â´Ù. Ç¥ÇöÇÏ´Â ¹æ½Ä¸¸ ´Þ¶óÁú »ÓÀÌ´Ù.

¸¶Âù°¡Áö·Î À§¿¡¼­ ¹è¿î °è»ê ¹æ½Äµµ ´Þ¶óÁø´Ù. ¿¹¸¦ µé¾î ±×·ì ´ÜÀ§·Î 10´ë½Å 9¸¦ ½áº¸¸é ÇÑ ÀÚ¸®°¡ ´Ã¾î³ª´Â °ÍÀÌ 10À» °öÇÑ °á°ú°¡ ¾Æ´Ï¶ó 9¸¦ °öÇÑ °ÍÀÌ µÈ´Ù. 500Àº 50ÀÇ 9¹è¸¦ ÇÑ °á°ú°¡ µÈ´Ù.

1.1.2 Counting Like a Computer

±×·³ ÄÄÇ»ÅͰ¡ ¼ýÀÚ¸¦ ¼¼±â À§Çؼ­´Â ¸î°³ÀÇ ¼Õ°¡¶ôÀÌ ÇÊ¿äÇÒ±î? ÄÄÇ»ÅÍ´Â ¼Õ°¡¶ôÀÌ µÎ°³¹Û¿¡ ¾ø´Ù. 2°³¸¦ ÇÑ ±×·ìÀ¸·Î °è»êÇÑ´Ù´Â ¸»ÀÌ´Ù. ±×·¯¸é ÀÌÁø¹ýÀ¸·Î ¼ýÀÚ¸¦ ¼¼¾îº¸ÀÚ.
0(¿µ), 1(Çϳª), 10(µÑ - µÎ°³°¡ ÇÑ ±×·ì), 11(¼Â - ÇÑ ±×·ì¿¡ ÇѰ³°¡ ³²À½), 100(³Ý - µÎ°³¾¿ µÎ ±×·ì), 101(´Ù¼¸ - µÎ°³¾¿ µÎ ±×·ì°ú ÇѰ³ ³²À½)...À¸·Î °è¼ÓµÈ´Ù.
ÀÌÁø¹ý¿¡¼­´Â ¾î¶² ¼ö¿¡ 2¸¦ °öÇϸé ÇÑÀÚ¸®°¡ ¿ÞÂÊÀ¸·Î ´Ã¾î³­´Ù.
ÀÌÁø¹ýÀ» ¹ÙÀ̳ʸ®¶ó°íµµ ºÎ¸¥´Ù. ÀÌÁø¹ýÀ» »ç¿ëÇϸé ÁÁÀº °ÍÀÌ ±âº»ÀûÀÎ ¼öÇÐ ¿¬»êÀÌ ¸Å¿ì °£´ÜÇØÁø´Ù´Â °ÍÀÌ´Ù.
ÀÌÁø¹ýÀº ¸Å¿ì °£´ÜÇÏ´Ù.

ÀÌÁø¹ý µ¡¼À
+ | 0 | 1
--+-----+-----
0 | 0 | 0
--+-----+-----
1 | 1 | 10

ÀÌÁø¹ý °ö¼À
* | 0 | 1
--+-----+-----
0 | 0 | 0
--+-----+-----
1 | 0 | 1

10010101°ú 1100101À» ´õÇØº¸ÀÚ.

10010101
+ 1100101
-----------
11111010

À̹ø¿¡´Â °öÇØº¸ÀÚ.

      10010101
*      1100101
-----------
      10010101
     00000000
    10010101 
   00000000
  00000000
 10010101
10010101
---------------
11101011001001


1.1.3 Conversions Between Binary and Decimal



ÀÌÁø¹ýÀÇ ¼ýÀÚ¸¦ ½ÊÁø¹ýÀ¸·Î ¹Ù²Ù´Â ¹æ¹ýÀ» ¹è¿öº¸ÀÚ. »ç½Ç ¸Å¿ì °£´ÜÇÏ´Ù. °¢ ÀÚ¸®¼ö°¡ 2°³·Î ¹­ÀÎ ±×·ìÀÇ °³¼ö¸¦ ³ªÅ¸³½´Ù´Â °ÍÀ» ±â¾ïÇÒ °ÍÀÌ´Ù.
¿ì¸®´Â ´ÜÁö °¢ ÀÚ¸®ÀÇ ¼ýÀÚ´ë·Î ´õÇØÁֱ⸸ ÇÏ¸é ½ÊÁø¼öÀÇ ¼ýÀÚ¸¦ ¸¸µé ¼ö ÀÖ´Ù. 10010101À» °¡Áö°í ½ÊÁö¼öÀÇ Àǹ̸¦ ¾Ë¾Æº¸±â À§ÇØ ´ÙÀ½°ú °°ÀÌ »ý°¢Çغ¸ÀÚ.

1 0 0 1 0 1 0 1
| | | | | | | |
| | | | | | | ÇÑ °³¸¸ ³²Àº ³ª¸ÓÁö (2^0)
| | | | | | 0 2°³·Î µÈ ±×·ì (2^1)
| | | | | 1 4°³·Î µÈ ±×·ì (2^2)
| | | | 0 8°³·Î µÈ ±×·ì (2^3)
| | | 1 16°³·Î µÈ ±×·ì (2^4)
| | 0 32°³·Î µÈ ±×·ì (2^5)
| 0 64°³·Î µÈ ±×·ì (2^6)
1 128°³·Î µÈ  (2^7)

ÀÌ·¸°Ô °¢ ÀÚ¸®ÀÇ ¼öµéÀ» Á¶°¢³½ ´ÙÀ½ Çϳª¾¿ ´õÇØº¸¸é ´ÙÀ½°ú °°ÀÌ µÈ´Ù.

1*128 + 0*64 + 0*32 + 1*16 + 0*8 + 1*4 + 0*2 + 1*1 =
128 + 16 + 4 + 1 =
149


±×·¡¼­ ¹ÙÀ̳ʸ® ¼ýÀÚ 10010101Àº ½ÊÁø¼ö·Î 129°¡ µÈ´Ù. 1100101ÀÇ °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ µÈ´Ù.

1*64 + 1*32 + 0 * 16 + 0*8 + 1*4 + 0*2 + 1*1 =
64 + 32 + 4 + 1 =
101

±×·¡¼­ ¹ÙÀ̳ʸ® ¼ýÀÚ 1100101Àº ½ÊÁø¼ö·Î 101ÀÌ µÈ´Ù. Çϳª¸¸ ´õ º¸ÀÚ. 1101011001001Àº ´ÙÀ½°ú °°ÀÌ ½ÊÁø¼ö·Î º¯È¯µÈ´Ù.

1*8192 + 1*4096 + 1*2048 + 0*1024 + 1*512 + 0*256 + 1*128 + 1*64 + 0*32 + 0*16 + 1*8 + 0*4 + 0*2 + 1*1 =
8192 + 4096 + 2048 + 512 + 128 + 64 + 8 + 1 =
15049


ÀÌ·¸°Ô º¯È¯ÇÑ ¼ýÀÚµéÀº ¹æ±Ý À§¿¡¼­ ¿ì¸®°¡ °öÇÑ ¼ýÀÚ¿Í °°´Ù. 101 * 149 = 15049°¡ µÈ´Ù.

½ÊÁø¼ö¸¦ ÀÌÁø¼ö·Î ¹Ù²Ù´Â °ÍÀ» ¾Ë¾Æº¸ÀÚ. µÎ°³¾¿ ÇÑ ±×·ìÀ» ¸¸µé±â À§ÇØ ³ª´©±â¸¦ ÇØ¾ß ÇÑ´Ù. 17À̶ó´Â ¼ýÀÚ°¡ ÀÖÀ» ¶§ 2·Î ³ª´©°Ô µÇ¸é 1ÀÌ ³²°í ¸òÀÌ 8ÀÌ µÈ´Ù.
Áï µÎ°³·Î µÈ ±×·ìÀÌ 8°³°¡ ÀÖ°í 1°³°¡ ±×·ì¿¡ ¼ÓÇÏÁö ¸øÇß´Ù´Â °ÍÀÌ´Ù. Áï °¡Àå ¿À¸¥ÂÊ ÀÚ¸®°¡ 1ÀÌ µÈ´Ù´Â ¸»ÀÌ´Ù.

ÀÌÁ¦ ù¹øÂ° ÀÚ¸® ¼ö¸¦ ¾Ë¾Ò°í 8°³ÀÇ ±×·ìÀÌ ³²¾Ò´Ù. ¸òÀ» ¶Ç 2·Î ³ª´©¸é 4°¡ µÇ°í ³ª¸ÓÁö°¡ ¾ø°ÔµÈ´Ù. Áï µÎ°³·Î ¹­ÀÎ ±×·ìÀ» ¶Ç µÎ°³·Î ¹­Àº°Ô 4°³°¡ µÈ´Ù´Â ÀǹÌÀÌ´Ù.
µû¶ó¼­ ´ÙÀ½ ÀÚ¸® ¼ö´Â 0ÀÌ µÇ°í ±×¸®°í ¶Ç ÀÌ ±×·ìÀ» 2°³¾¿ ¹­À» ¼ö ÀÖ´Ù. ÀÌÁ¦´Â 8°³·Î µÈ ±×·ìÀÌ µÎ°³°¡ ÀÖ°í ¶Ç µÎ°³¾¿ ¹­À¸¸é 1¸¸ ³²´Â´Ù.
1Àº 2·Î ³ª´²µµ ¸òÀÌ ¾ø°í 1ÀÌ ³²±â ¶§¹®¿¡ ¸¶Áö¸· ÀÚ¸®´Â 1ÀÌ µÈ´Ù.

°á±¹ ¾òÀº ¼ö´Â 10001ÀÌ´Ù. ÀÌÀü¿¡ ½ÊÁø¼ö 15049¸¦ ÀÌÁø¼ö 11101011001001·Î º¯È¯ÇÑ °úÁ¤À» °Å²Ù·Î ÇØº¸ÀÚ.

¿ì¸®°¡ º¯È¯À» ¹Ù¸£°Ô Çß´ÂÁö È®ÀÎÇØº¼ ¼ö ÀÖ´Ù.

15049 / 2 = 7524 ³ª¸ÓÁö 1
7524 / 2 = 3762 ³ª¸ÓÁö 0
3762 / 2 = 1881 ³ª¸ÓÁö 0
1881 / 2 = 940 ³ª¸ÓÁö 1
940 / 2 = 470 ³ª¸ÓÁö 0
470 / 2 = 235 ³ª¸ÓÁö 0
235 / 2 = 117 ³ª¸ÓÁö 1
117 / 2 = 58 ³ª¸ÓÁö 1
58 / 2 = 29 ³ª¸ÓÁö 0
29 / 2 = 14 ³ª¸ÓÁö 1
14 / 2 = 7 ³ª¸ÓÁö 0
7 / 2 = 3 ³ª¸ÓÁö 1
3 / 2 = 1 ³ª¸ÓÁö 1
1 / 2 = 0 ³ª¸ÓÁö 1

³ª´©°í ³²Àº ¼öµéÀ» À§¿¡¼­ºÎÅÍ ½áº¸¸é ¿ø·¡ ÀÌÁø¼ö¸¦ ¾òÀ» ¼ö°¡ ÀÖ´Ù. ù¹øÂ° ³ª¸ÓÁö°¡ ù¹øÂ° ÀÚ¸®¼ö°¡ µÇ°í ³¡±îÁö ³»·Á¿À´Ùº¸¸é 11101011001001À» ¾òÀ» ¼ö°¡ ÀÖ´Ù.

ÀÌÁø¼ö¿¡¼­ °¢ ÀÚ¸®ÀÇ ¼ýÀÚ¸¦ 'ºñÆ®'¶ó°í ºÎ¸¥´Ù. ÄÄÇ»ÅÍ´Â ÀúÀå ÀåÄ¡¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î ³ª´²¼­ ó¸®ÇÑ´Ù. x86 ÇÁ·Î¼¼¼­´Â (´ëºÎºÐÀÇ ´Ù¸¥ ÇÁ·Î¼¼¼­Ã³·³) ÀúÀå ÀåÄ¡ÀÇ À§Ä¡ ÁöÁ¤À» 8ºñÆ® ´ÜÀ§·Î ÇÑ´Ù.
ÀÌÀü¿¡ ¿ì¸®´Â ÇÑ ¹ÙÀÌÆ®°¡ 0¿¡¼­ 255 »çÀÌÀÇ ¼ö¸¦ ³ªÅ¸³¾ ¼ö ÀÖ´Ù°í ¹è¿ü´Ù. ±× ÀÌÀ¯´Â 8ºñÆ®·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â °¡Àå Å« ¼ýÀÚ°¡ 255À̱⠶§¹®ÀÌ´Ù.
ÀÌÁø¼ö 11111111¸¦ ½ÊÁø¼ö·Î Á÷Á¢ ¹Ù²ãº¸¸é ÀÌÇØÇÒ ¼ö ÀÖ´Ù.

11111111 =
(1 * 2^7) + (1 * 2^6) + (1 * 2^5) + (1 * 2^4) + (1 * 2^3)
+ (1 * 2^2) + (1 * 2^1) + (1 * 2^0) =
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 =
255

16ºñÆ®·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â °¡Àå Å« ¼ö´Â 65535ÀÌ´Ù. 32ºñÆ®·Î´Â 4294967295±îÁö ³ªÅ³¯ ¼ö ÀÖ´Ù. 64ºñÆ®´Â 18,446,744,073,709,551,615À̰í 128ºñÆ®´Â 340,282,366,920,938,463,463,374,607,431,768,211,456ÀÌ´Ù. x86 ÇÁ·Î¼¼¼­¿¡¼­´Â ·¹Áö½ºÅ͵éÀÇ Å©±â°¡ 4¹ÙÀÌÆ®À̹ǷΠ´ëºÎºÐ 4¹ÙÀÌÆ®(32ºñÆ®) Å©±âÀÇ ¼ö¸¦ ´Ù·ç°Ô µÉ °ÍÀÌ´Ù.

1.2 Âü, °ÅÁþÀÇ Áø¸®°ª°ú ÀÌÁø¼ö Truth, Falsehood, and Binary Numbers


ÀÌÁ¦ ¿ì¸®´Â ÄÄÇ»ÅͰ¡ ¸ðµç °ÍÀ» 1°ú 0¸¸À¸·Î ÀúÀåÇÑ´Ù´Â °ÍÀ» ¾Ë¾Ò´Ù. À̰͵éÀ» ´Ù¸£°Ô ¾²´Â ¹ýÀ» Çѹø ¾Ë¾Æº¸ÀÚ. ºñÆ®ÀÇ ³ª¿­À» ¼ýÀÚ·Î º¸´Â °Í ¸»°í ÀÏÁ¾ÀÇ ½ºÀ§Ä¡µéÀÇ ÁýÇÕÀ¸·Î »ý°¢Çغ¸ÀÚ.
¿¹¸¦ µé¾î Áý¿¡¼­ ÀüµîÀ» ÄÑ´Â 4°³ÀÇ ½ºÀ§Ä¡°¡ ÀÖ´Ù°í »ý°¢Çغ¸ÀÚ.


¸¶´ç¿¡ ÀÖ´Â ÀüµîÀÇ Àü¿ø ½ºÀ§Ä¡¿Í º¹µµ, °Å½Ç, ħ½ÇÀÇ Àüµî ½ºÀ§Â÷°¡ ÀÖ´Ù. ÀÌ ÀüµîµéÀÌ ÄÑÀÖ´ÂÁö ²¨Á®ÀÖ´ÂÁö¸¦ º¸±âÀ§ÇØ ´ÙÀ½°ú °°Àº Å×À̺íÀ» ¸¸µé ¼ö ÀÖ´Ù.

¸¶´ç º¹µµ °Å½Ç ħ½Ç
ÄÑÁü ²¨Áü ÄÑÁü ÄÑÁü

º¹µµ¸¦ Á¦¿ÜÇϰí´Â ¸ðµç ÀüµîÀÌ ÄÑÁ®ÀÖ´Â °ÍÀ» È®½ÇÈ÷ ¾Ë ¼ö ÀÖ´Ù. ÀÌÁ¦ 'ÄÑÁü'À̳ª '²¨Áü'À̶ó´Â ¸» ´ë½Å¿¡ ¼ýÀÚ 1°ú 0À» ½áº¸ÀÚ. 1Àº ÄÑÁø »óŸ¦ ³ªÅ¸³»°í 0Àº ²¨Áø »óŸ¦ ³ªÅ¸³½´Ù.
±×·¡¼­ ¶È°°Àº Á¤º¸¸¦ ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³½´Ù.

¸¶´ç º¹µµ °Å½Ç ħ½Ç
1    0    1    1

ÀÌÁ¦ Àüµî ½ºÀ§Å° À̸§À» ºÙÀÌÁö ¸»°í °¢ ÀÚ¸®°¡ ¾îµðÀÇ ÀüµîÀ» ³ªÅ¸³»´Â °ÍÀÎÁö¸¦ ±â¾ïÇϸ鼭 ¼ýÀÚ¸¸À» Àû¾îº¸ÀÚ. °°Àº Á¤º¸¸¦ 1 0 1 1 À̳ª 1011·Î Ç¥½ÃÇÒ ¼ö ÀÖ´Ù.

À̰ÍÀÌ ÄÄÇ»ÅÍ ÀúÀå ÀåÄ¡¸¦ ÀÌ¿ëÇÏ´Â ´Ù¾çÇÑ ¹æ¹ý Áß¿¡ ÇϳªÀÌ´Ù. ¼ýÀÚ¸¸À» ÀúÀåÇÒ ¼ö ÀÖ´Â°Ô ¾Æ´Ï´Ù.
ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸®°¡ ¼ýÀÚµé·Î º¸ÀÌÁö¸¸ ÇÁ·Î±×·¡¸Ó´Â ÀÌ ¼öµéÀ» °¡Áö°í »ó»óÇÒ ¼ö ÀÖ´Â ¸ðµç °ÍµéÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ÇÁ·Î±×·¡¸ÓµéÀº °¡Àå ÁÁÀº Ç¥ÇöÀ» ¾Ë¾Æ³»±â À§ÇØ Ã¢Á¶·ÂÀ» ¹ßÈÖÇØ¾ß ÇÒ ¶§µµ ÀÖ´Ù.

ÀÌÁø¼ö¸¦ °¡Áö°í ÀϹÝÀûÀÎ »ê¼ú °è»ê¸¸ ÇÒ ¼ö ÀÖ´Â°Ô ¾Æ´Ï¶ó ³í¸® ¿¬»êÀ̶ó´Â °Íµµ ÇÒ ¼ö°¡ ÀÖ´Ù. ÀϹÝÀûÀÎ ¹ÙÀ̳ʸ® ¿¬»êµéÀº AND, OR, NOT, XOR µîÀÌ ÀÖ´Ù.

°¢ ¿¬»êµéÀÌ ¹«¾ùÀÎÁö ¼³¸íÇÏ°í ¿¹¸¦ µé¾îº¸°Ú´Ù. AND´Â µÎ ºñÆ®¸¦ °¡Áö°í ÇÑ ºñÆ®¸¦ »Ì¾Æ³»´Â ¿¬»êÀÌ´Ù. AND´Â µÎ ºñÆ®°¡ ¸ðµÎ 1À̸é 1À» Ãâ·ÂÇϰí.
±× ¿Ü¿¡´Â ¸ðµÎ 0À» ¹ÝȯÇÑ´Ù. ¿¹¸¦ µé¾î 1 AND 1Àº 1À̰í 1 AND 0, 0 AND 1, 0 AND 0Àº ¸ðµÎ 0ÀÌ µÈ´Ù.

ORÀº µÎ°³ÀÇ ºñÆ®¸¦ °¡Áö°í ÇÑ ºñÆ®¸¦ ¹ÝȯÇÑ´Ù. µÎ ºñÆ®Áß¿¡ Çϳª¶óµµ 1À̸é 1À» ¹ÝȯÇÑ´Ù. ¿¹¸¦ µé¾î 1 OR 1, 1 OR 0, 0 OR 1Àº ¸ðµÎ 1À̰í 0 OR 0¸¸ 0ÀÌ µÈ´Ù.

NOT ¿¬»êÀº ÇÑ ºñÆ®¸¦ °¡Áö°í ¹Ý´ë ºñÆ®°ªÀ» ¹ÝȯÇÑ´Ù. NOT 1Àº 0À̰í NOT 0Àº 1ÀÌ µÈ´Ù. ¸¶Áö¸·À¸·Î XORÀº OR °ú ºñ½ÁÇѵ¥ µÎ ºñÆ®°¡ ¸ðµÎ 1ÀÏ ¶§ 0À» ¹ÝȯÇÑ´Ù´Â °Í¸¸ ´Ù¸£´Ù. ÄÄÇ»ÅÍ´Â ÀÌ·± ³í¸® ¿¬»êÀ» ÇÒ ¶§ ÇϳªÀÇ ·¹Áö½ºÅÍ¿¡ ÀÖ´Â ¸ðµç ºñÆ®µéÀ» ÇѲ¨¹ø¿¡ °è»êÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ¾î¶² ·¹Áö½ºÅͰ¡ 10100010101010010101101100101010 °ªÀ» °¡Áö°í ´Ù¸¥ Çϳª°¡ 10001000010101010101010101111010 °ªÀ» °¡Áø´Ù¸é
·¹Áö½ºÅÍÀÇ ¸ðµç ºñÆ®µé¿¡ ´ëÇÑ ¿¬»êÀ» ÇѲ¨¹ø¿¡ ÇÒ ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î ÀÌ µÎ ¼ýÀÚ¸¦ AND ¿¬»êÇÑ´Ù¸é ÄÄÇ»Åʹ ù¹øÂ° ºñÆ®ºÎÅÍ 32¹øÂ° ºñÆ®±îÁö ¿¬»êÇÒ °ÍÀÌ°í ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.

10100010101010010101101100101010 AND
10001000010101010101010101111010
--------------------------------
10000000000000010101000100101010


°è»ê °á°ú¸¦ º¸¸é ¾Ë°ÚÁö¸¸ µÎ ºñÆ®°¡ ¸ðµÎ 1ÀÏ ¶§´Â 1ÀÌ µÇ°í ±× ¿ÜÀÇ °æ¿ì¿¡´Â 0ÀÌ µÈ´Ù. OR ¿¬»êÀº ´ÙÀ½°ú °°´Ù.
10100010101010010101101100101010 OR
10001000010101010101010101111010
--------------------------------
10101010111111010101111101111010

OR ¿¬»êÀº ÇÑ ºñÆ®¸¸ 1ÀÌ¶óµµ °á°ú°ªÀÌ 1ÀÌ µÈ´Ù. NOT ¿¬»êÀ» º¸¸é ´ÙÀ½°ú °°´Ù.
NOT 10100010101010010101101100101010
------------------------------------
01011101010101101010010011010101


°¢ ºñÆ®¸¦ ¹ÝÀü½Ã۱⸸ ÇÑ´Ù. ¸¶Áö¸·À¸·Î XORÀº OR°ú ºñ½ÁÇÏÁö¸¸ µÎ ºñÆ®°¡ ¸ðµÎ 1ÀÏ ¶§´Â 0ÀÌ µÇ´Â°Ô ´Ù¸£´Ù.
10100010101010010101101100101010 XOR
10001000010101010101010101111010
--------------------------------
00101010111111000000111001010000

NOR¿¡ »ç¿ëµÈ µÎ ¼ýÀÚ´Â OR ¿¬»ê¿¡¼­ »ç¿ëÇÑ ¼ýÀÚ¿Í °°´Ù. OR ¿¬»ê°ú ºñ±³Çغ¸¸é XORÀÌ ¾î¶»°Ô µ¿ÀÛÇÏ´ÂÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¶ÇÇÑ ¾î¶² ¼ö¸¦ ±× ÀڽŰú XOR ¿¬»êÀ» ÇÏ¸é ´ÙÀ½¿¡¼­ º¸´Ù½ÃÇÇ Ç×»ó 0ÀÌ µÈ´Ù.
10100010101010010101101100101010 XOR
10100010101010010101101100101010
--------------------------------
00000000000000000000000000000000

ÀÌ ¿¬»êµéÀÌ ¾µ¸ðÀÖ´Â ÀÌÀ¯´Â µÎ°¡Áö ÀÌ´Ù.

  • ÄÄÇ»ÅͰ¡ ¸Å¿ì ºü¸¥ ¼Óµµ·Î ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
  • µ¿½Ã¿¡ ¸¹Àº Áø¸® °ªÀ» ºñ±³ÇÒ ¼ö ÀÖ´Ù.

¼­·Î ´Ù¸¥ ¸í·É¾îµéÀº ´ÙÀº ¼Óµµ·Î ½ÇÇàµÈ´Ù´Â°É ¸ð¸¦Áöµµ ¸ð¸£°Ú´Ù. Á¤¸» ±×·¸´Ù. ±×¸®°í ÀÌ ¿¬»êµéÀº ´ëºÎºÐÀÇ ÇÁ·Î¼¼¼­µéÀÌ
ÃÖ°í·Î ºü¸£°Ô ó¸®ÇÒ ¼ö ÀÖ´Â ¿¬»êµéÀÌ´Ù. ¿¹¸¦ µé¾î 0À» ¸¸µé ¶§ XORÀ» »ç¿ëÇÏ´Â °ÍÀ» ºÃÀ» °ÍÀÌ´Ù. XOR ¿¬»êÀº ·ÎµùÇÏ´Â µ¿ÀÛº¸´Ù ºü¸£±â ¶§¹®¿¡
¸¹Àº ÇÁ·Î±×·¡¸ÓµéÀÌ ·¹Áö½ºÅÍ¿¡ 0À» ÀúÀåÇϱâ À§ÇØ »ç¿ëÇÑ´Ù.

¿¹¸¦ µé¾î movl $0, %eax ¶ó´Â ÄÚµå´Â xorl %eax, %eax ·Î ´õ ¸¹ÀÌ »ç¿ëµÈ´Ù.


12Àå¿¡¼­ ¼Óµµ¿¡ ´ëÇØ¼­ ´õ ÀÚ¼¼È÷ ¼³¸íÇϰÚÁö¸¸ ÀÌÁø ¿¬»êÀÚµéÀ» ÀÌ¿ëÇØ¼­ ´õ ºü¸¥ ¼Óµµ¸¦ ³¾ ¼ö ÀÖ´Â Æ®¸¯À» ¾Ë¾ÆµÎ¸é ÁÁÀ» °ÍÀÌ´Ù. ÀÌÁ¦´Â ¾î¶»°ÔÇϸé
³í¸® ¿¬»êÀÚµéÀ» °¡Áö°í Âü/°ÅÁþ °ªÀ» ¸¸µé ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸ÀÚ.

ÀÌÀü¿¡ ¿ì¸®´Â ¾î¶»°Ô Çϸé ÀÌÁø ¼ýÀÚµéÀ» °¡Áö°í °¹¼ö¸¦ ¼¿ ¼ö ÀÖ´ÂÁö À̾߱âÇß´Ù. ÀÌÁ¦ ÀÌÁø ¼ö¸¦ °¡Áö°í ¿ì¸® ¾Æºü¶û ³»°¡ ÁÁ¾ÆÇÏ´Â ¹°°ÇµéÀ» Ç¥ÇöÇØº¸ÀÚ.
¿ì¼± ³»°¡ ÁÁ¾ÆÇÏ´Â °ÍµéÀÌ´Ù.

¸Ô±â : ÁÁ´Ù
Çìºñ¸ÞÅ»À½¾Ç : ÁÁ´Ù
¾çº¹ ÀÔ±â : ½È´Ù
Ã౸ : ÁÁ´Ù

´ÙÀ½Àº ¿ì¸® ¾Æºü°¡ ÁÁ¾ÆÇÏ´Â °ÍµéÀÌ´Ù.

¸Ô±â : ÁÁ´Ù
Çìºñ¸ÞÅ»À½¾Ç : ½È´Ù
¾çº¹ ÀÔ±â : ÁÁ´Ù
Ã౸ : ÁÁ´Ù

'ÁÁ´Ù'¸¦ 1·Î, '½È´Ù'¸¦ 0À¸·Î ³ªÅ¸³»º¸ÀÚ. ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.

³ª

¸Ô±â : 1
Çìºñ¸ÞÅ»À½¾Ç : 1
¾çº¹ ÀÔ±â : 0
Ã౸ : 1

¾Æºü

¸Ô±â : 1
Çìºñ¸ÞÅ»À½¾Ç : 0
¾çº¹ ÀÔ±â : 1
Ã౸ : 1


¾î¶² ÀÚ¸®¼ö°¡ ¾î´À ¹°°ÇÀ» °¡¸£Å°´ÂÁö ±â¾ïÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.

³ª 1101
¾Æºü 1011

ÀÌÁ¦ ³ª¿Í ¿ì¸® ¾Æºü°¡ ÇÔ²² ÁÁ¾ÆÇÏ´Â °ÍµéÀ» ³ªÅ¸³»º¸ÀÚ. AND ¿¬»êÀÚ¸¦ ¾²¸é µÈ´Ù.

1101 AND
1011
--------
1001


¿¬»ê °á°ú¸¦ ÇØ¼®ÇÏ¸é ¹«¾ùÀ» µ¿½Ã¿¡ ÁÁ¾ÆÇÏ´ÂÁö ¾Ë ¼ö ÀÖ´Ù.

¸Ô±â : ¸ÂÀ½
Çìºñ ¸ÞÅ» À½¾Ç : ¾Æ´Ô
¾çº¹ ÀÔ±â : ¾Æ´Ô
Ã౸ : ¸ÂÀ½

ÄÄÇ»ÅÍ´Â 0À̳ª 1ÀÌ ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ¸ð¸¥´Ù. °¢ ÀÚ¸®¼öÀÇ Àǹ̸¦ ±â¾ïÇÏ´Â °ÍÀº ¿ì¸®°¡ Á÷Á¢ Çϰųª
¿ì¸®°¡ ¸¸µç ÇÁ·Î±×·¥ÀÌ ÇØ¾ß ÇÒ ÀÏÀÌ´Ù. ÀÌ·¯ÇÑ Ç¥Çö ¹æ¹ýÀ» ½á¼­ ÇÁ·Î±×·¥À» ¸¸µé ¶§¿¡´Â ¹Ýµå½Ã °¢ ÀÚ¸®ÀÇ Äڵ尡 ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö
¹Ýµå½Ã »ç¿ëÀÚ¿¡°Ô ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. (¸¸¾à ´ç½ÅÀÌ ÄÄÇ»ÅÍ¿¡°Ô ´ç½Å°ú ´ç½Å ¾Æ¹öÁö°¡ °°ÀÌ ÁÁ¾ÆÇÏ´Â°Ô ¹«¾ùÀÌ³Ä°í ¹°¾îºÃÀ» ¶§
ÄÄÇ»ÅͰ¡ 1001 À̶ó°í ´äÇÏ¸é ±×°ÍÀº ¾Æ¹« ¼Ò¿ëµµ ¾ø´Â Ç¥ÇöÀÌ µÇ¹ö¸± °ÍÀÌ´Ù.)

¾î¶µç ¹º°¡ ¼­·Î ´Ù¸¥ °Í¿¡ ´ëÇØ¼­ Ç¥ÇöÇÏ°í ½ÍÀ» ¶§´Â XORÀ» ¾²¸é µÈ´Ù. XORÀº ÇÑÂʸ¸ 1ÀÌ°í ´Ù¸¥ ÂÊÀº 0ÀÏ ¶§,
Áï ¼­·Î ´Ù¸¥ °ªÀÏ ¶§ 1À» Ãâ·ÂÇÏ°í ³ª¸ÓÁö´Â 0À» Ãâ·ÂÇϱ⠶§¹®ÀÌ´Ù. µû¶ó¼­ ´ÙÀ½°ú °°Àº °è»êÀÌ µÈ´Ù.

1101 XOR
1011
--------
0110


Áö±Ý±îÁö ´Ù·ð´ø AND, OR, NOT, XOR ¿¬»êÀÚµéÀº ºÎ¿ï ¿¬»êÀÚ¶ó°í ºÒ¸°´Ù. ¿Ö³ÄÇϸé George Boole À̶ó´Â »ç¶÷ÀÌ Ã³À½À¸·Î ¿¬±¸Ç߱⠶§¹®ÀÌ´Ù.
Áö±Ý±îÁö ºÎ¿ï ¿¬»êÀÚ³ª ºÎ¿ï ´ë¼ö°¡ ¹«¾ùÀÎÁö ¾Ë¾Æº¸¾Ò´Ù.

ºÎ¿ï ¿¬»êÀÚ»Ó ¾Æ´Ï¶ó ºÎ¿ï ¿¬»ê¿¡ ¼ÓÇÏÁö ¾Ê´Â µÎ°¡Áö ÀÌÁø ¿¬»êÀÚ°¡ ÀÖ´Ù. shift¿Í rotate Àε¥ À̵éÀº ±× À̸§ÀÌ ¸»ÇÏ´Â °Íó·³
¾î¶² ¼ö¸¦ ¿À¸¥ÂÊÀ̳ª ¿ÞÂÊÀ¸·Î À̵¿½ÃŰ°Å³ª ȸÀü½ÃŰ´Â ÀÏÀ» ÇÑ´Ù.

¿ÞÂÊ shift ¿¬»êÀº ÀÌÁø ¼ýÀÚ¸¦ ÇÑÄ­ ¿ÞÂÊÀ¸·Î ¿Å±ä´Ù. ±×¸®°í ¿À¸¥ÂÊ¿¡ ºó ÀÚ¸®¿¡´Â 0À» ä¿ö³Ö´Â´Ù. ¿ÞÂÊ rotate´Â
ºñ½ÁÇÑ ÀÏÀ» ÇÏÁö¸¸ ¿À¸¥ÂÊ¿¡ ºó ÀÚ¸®¿¡ °¡Àå ¿ÞÂÊ¿¡ ÀÖ´ø ¼ö¸¦ ³Ö´Â °ÍÀÌ ´Ù¸£´Ù.

¿¹¸¦ µé¸é,
¿ÞÂÊ Shift 10010111 = 00101110
¿ÞÂÊ Rotate 10010111 = 00101111

¸¸¾à¿¡ ÀÌÁø ¼öÀÇ ÀÚ¸®¼ö ¸¸Å­ rotate¸¦ ½ÇÇàÇÏ¸é ´Ù½Ã ¿ø·¡ÀÇ ¼ö·Î µ¹¾Æ¿Â´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¯³ª shift¸¦ ÀÚ¸®¼ö¸¸Å­ ½ÇÇàÇϸé
0ÀÌ µÉ °ÍÀÌ´Ù.

±×·¡¼­ ÀÌ·± ¿¬»êÀÚµéÀÌ ¾îµð¿¡ ¾²Àδٴ °ÍÀϱî? ¸¸¾à ÀÌÁø ¼ö·Î ¹«¾ùÀΰ¡¸¦ Ç¥ÇöÇÑ´Ù¸é ÀÌ·± ½¬ÇÁÆ® ¿¬»êÀÌ °¢°¢ÀÇ °ªÀ» È®ÀÎÇϴµ¥ »ç¿ëµÉ ¼ö ÀÖ´Ù.
¿¹¸¦ µé¾î ¿ì¸® ¾ÆºüÀÇ ±âȣǰÀ» 32ºñÆ® ·¹Áö½ºÅÍ¿¡ ÀúÀåÇÏ¸é ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.
00000000000000000000000000001011

ÀÌ°Ô ÇÁ·Î±×·¥ÀÇ °á°ú¹°ÀÌ ¾Æ´Ï°í ÀÌ °ªÀ» °¡Áö°í ¹º°¡ ½¬ÇÁÆ®¸¦ Çϰųª ¸¶½ºÅ·À» ÇØ¾ß ÇÑ´Ù.
¸¶½ºÅ·À̶õ ¿øÇÏÁö ¾Ê´Â °ªµéÀ» Áö¿ì´Â ÀÛ¾÷À» ¸»ÇÑ´Ù. ¿¹¸¦ µé¸é, ¿ì¸®°¡ ¾î¶² °ªÀ» ¿øÇÑ´Ù¸é
¿øÇÏ´Â °ªÀ» ƯÁ¤ À§Ä¡¿¡ °¡µµ·Ï ½¬ÇÁÆ®¸¦ ÇÏ°í ³ª¸ÓÁö ¿øÇÏÁö ¾Ê´Â ÀÚ¸®ÀÇ ¼ýÀÚµéÀº ¸¶½ÃÅ·À» ÇÏ´Â °ÍÀÌ´Ù.

¸¶½ÃÅ·Àº ¿ì¸®°¡ ¿øÇÏ´Â ÀÚ¸®´Â 1ÀÌ°í ¿øÇÏÁö ¾Ê´Â ÀÚ¸®´Â 0À¸·Î ¼³Á¤µÈ °ª°ú AND ¿¬»êÀ» ÇÏ´Â ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù.
¿¹¸¦ µé¾î ¿ì¸® ¾Æºü°¡ Á¤Àå ÀԱ⸦ ÁÁ¾ÆÇϽôÂÁö ¾Æ´ÑÁö¸¦ ¾Ë¾Æº¸°í ½Í´Ù°í ÇÏÀÚ. ÇØ´ç µ¥ÀÌÅÍ´Â ¿À¸¥ÂÊ¿¡¼­ µÎ¹øÂ° ÀÚ¸®ÀÇ ¼ýÀÚÀÌ´Ù.

±×·¯¸é Àüü ¼ýÀÚ¸¦ ¿À¸¥ÂÊÀ¸·Î 1Ä­ ½¬ÇÁÆ®¸¦ ÇØº¸ÀÚ. ´ÙÀ½°ú °°Àº ¼ö°¡ µÉ °ÍÀÌ´Ù.

00000000000000000000000000000101

±×¸®°í ¿ì¸®°¡ ¿øÇÏ´Â µ¥ÀÌÅ͸¸À» º¸±â À§ÇØ 00000000000000000000000000000001 À¸·Î ¸¶½ºÅ·À» ÇØº¸ÀÚ.
´ÙÀ½°ú °°Àº °è»ê½ÄÀ¸·Î 󸮵ȴÙ.

00000000000000000000000000000101 AND
00000000000000000000000000000001
-----------------------------------
00000000000000000000000000000001

¿ì¸® ¾Æºü°¡ Á¤ÀåÀ» ÁÁ¾ÆÇÏ½Ã¸é ·¹Áö½ºÅÍÀÇ °ªÀÌ 1ÀÌ µÉ °ÍÀÌ°í ¾Æ´Ï¸é 0ÀÌ µÉ °ÍÀÌ´Ù.
°á±¹ ·¹Áö½ºÅÍÀÇ °ªÀ» 1°ú ºñ±³Çؼ­ °á°ú¿¡ ¸Â°Ô ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ¸é µÉ °ÍÀÌ´Ù.
ÄÚµå·Î ¸¸µé¸é ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.

#NOTE - %ebx ·¹Áö½ºÅÍ¿¡ ¾Æºü°¡ ÁÁ¾ÆÇÏ´Â °ÍµéÀÌ ÀúÀåµÇ¾î ÀÖ´Ù
movl %ebx, %eax #¿øº» µ¥ÀÌÅ͸¦ %eax¿¡ ÀúÀåÇØ¼­
#¿øº» µ¥ÀÌÅ͸¦ ÀÒ¾î¹ö¸®Áö ¾Ê°Ô ÇÑ´Ù.
shrl $1, %eax #1¹ø ¿À¸¥ÂÊÀ¸·Î ½¬ÇÁÆ®ÇÑ´Ù.
#ù¹øÂ° ¿ÀÆÛ·£µå $1Àº ¸î¹ø ½¬ÇÁÆ®ÇÒ °ÍÀÎÁö¸¦ ÁöÁ¤Çϰí
#µÎ¹øÂ° ¿ÀÆÛ·£µå %eax´Â ¾î¶² ·¹Áö½ºÅÍÀÎÁö¸¦ ÁöÁ¤ÇÑ´Ù.

#¸¶½ºÅ·À» ÇÑ´Ù.
andl $0b00000000000000000000000000000001, %eax
#°á°ú°ªÀÌ 1ÀÎÁö È®ÀÎÇÑ´Ù.
cmpl $0b00000000000000000000000000000001, %eax
je yes_he_likes_dressy_clothes
jmp no_he_doesnt_like_dressy_clothes

ÄÚµå ¾Æ·¡·Î °¡¸é Á¤ÀåÀ» ÁÁ¾ÆÇÏ´ÂÁö ¾Æ´ÑÁö¿¡ µû¶ó¼­ ¹º°¡ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â ÄÚµåµéÀÌ ÀÖ´Â ¶óº§ÀÌ µÎ°³ ÀÖÀ» °ÍÀÌ´Ù.
0b´Â µÚ¿¡ ÀÖ´Â ¼ýÀÚ°¡ ÀÌÁø ¼ýÀÚ¶ó´Â °ÍÀ» ¸»ÇÑ´Ù. 1Àº ¾î´À Áø¹ýÀ̳ª 1À̹ǷΠÀÌÁø¼ö¶ó´Â °ÍÀ» ²À ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ
»ó°üÀÌ ¾ø´Ù. ÇÏÁö¸¸ ¸íÈ®ÇÏ°Ô Çϱâ À§ÇØ ½áÁÖ¾ú´Ù. ¸¶Âù°¡Áö·Î 0À» 31¹ø ½áÁÙ Çʿ䰡 ¾øÁö¸¸ 32ºñÆ®¶ó´Â °ÍÀ» ³ªÅ¸³»±â À§ÇØ
ÀϺη¯ ½áÁÖ¾ú´Ù.

¾î¶² ¼ýÀÚ°¡ ÇÔ¼ö³ª ½Ã½ºÅÛ ÄÝ¿¡¼­ ¿É¼ÇÀ» ³ªÅ¸³¾ ¶§ ÇÑ ºñÆ®ÀÇ °ªÀ» Ç÷¡±×¶ó°í ºÎ¸£±âµµ ÇÑ´Ù. ¸¹Àº ½Ã½ºÅÛ ÄݵéÀÌ
´Ù¾çÇÑ ¿É¼ÇÀ» °¡Áö°í ÀÖ°í Áö±Ý±îÁö Çß´ø ¿¬»êµéÀ» °¡Áö°í ÀÌ·± ¿É¼ÇÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. open ½Ã½ºÅÛ ÄÝÀ» ¾µ ¶§¸¦ ¿¹·Î µé¸é
µÎ¹øÂ° ÇÔ¼ö ÀÎÀÚ°¡ Ç÷¡±×¸¦ ³ªÅ¸³»°í ¿î¿µÃ¼Á¦¿¡°Ô ÆÄÀÏÀ» ¾î¶»°Ô ¿­¾î¾ß ÇÏ´ÂÁö¸¦ ¸»ÇØÁÖ°Ô µÈ´Ù.
´ÙÀ½Àº ÀϺΠÇ÷¡±×µéÀ» ³ªÅ¸³½ °ÍÀÌ´Ù.

O_WRONLY
ÀÌÁø¼ö·Î 0b00000000000000000000000000000001·Î ³ªÅ¸³¾ ¼ö ÀÖ°í 8Áø¼ö·Î´Â 01ÀÌ µÈ´Ù.
ÆÄÀÏÀ» ¾²±â¸¸ °¡´ÉÇÏ°Ô ¿¬´Ù.

O_RDWR
ÀÌÁø¼ö·Î 0b00000000000000000000000000000010·Î ³ªÅ¸³»°í 8Áø¼ö·Î´Â 02°¡ µÈ´Ù
ÆÄÀÏÀ» ÀÐ°í ¾²±â°¡ ¸ðµÎ °¡´ÉÇϵµ·Ï ¿­°Ô µÈ´Ù.

O_CREAT
ÀÌÁø¼ö·Î 0b00000000000000000000000001000000 À̰í 8Áø¼ö·Î´Â 0100 ÀÌ´Ù.
ÆÄÀÏÀÌ ¸¸¾à ¾ø´Ù¸é »õ·Î »ý¼ºÇ϶ó´Â ÀǹÌÀÌ´Ù.

O_TRUNC
ÀÌÁø¼ö·Î 0b00000000000000000000001000000000 À̰í 8Áø¼ö·Î 01000 ÀÌ´Ù.
ÆÄÀÏÀÌ ÀÌ¹Ì ÀÖ´Ù¸é ±× ³»¿ëÀ» Áö¿ì¶ó´Â ÀǹÌÀÌ´Ù.

O_APPEND
ÀÌÁø¼ö·Î 0b00000000000000000000010000000000 À̰í 8Áø¼ö·Î 02000 ÀÌ´Ù.
ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ ¾µ ¶§ ÆÄÀÏÀÇ Ã³À½ºÎÅÍ ½ÃÀÛÇÏ´Â°Ô ¾Æ´Ï¶ó ³¡¿¡¼­ ½ÃÀÛÇϵµ·Ï ÇÑ´Ù.


ÀÌ·± Ç÷¡±×µéÀ» ¾µ ¶§ ¿©·¯ ¿É¼ÇµéÀ» µ¿½Ã¿¡ ÁöÁ¤ÇÏ·Á¸é OR ¿¬»ê¸¸ ÇÏ¸é µÈ´Ù. ¿¹¸¦ µé¾î ÆÄÀÏÀ» ¾²±â Àü¿ëÀ¸·Î ¿­°í
ÆÄÀÏÀÌ ¾ø´Ù¸é »õ·Î »ý¼ºÇϵµ·Ï ÇÏ°í ½ÍÀ» ¶§ O_WRONLY°ú O_CREAT¸¦ °°ÀÌ ½á¾ß ÇÑ´Ù. ÀÌ·² ¶§ OR¸¦ ½á¼­
O_WRONLY or O_CREAT·Î °è»êÇØ¼­ 0101À» ÁöÁ¤ÇØÁÖ¸é µÈ´Ù.

O_WRONLY ³ª O_RDWR µÑ Áß¿¡ ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿À¸·Î Àбâ Àü¿ë ¸ðµå·Î ÆÄÀÏÀ» ¿¬´Ù. ¸¹Àº ÇÔ¼öµé°ú
½Ã½ºÅÛ ÄݵéÀÌ ¿É¼ÇÀ» ¼³Á¤Çϱâ À§ÇØ Ç÷¡±×¸¦ »ç¿ëÇϴµ¥ ÇÑ ºñÆ®°¡ ÇϳªÀÇ ¿É¼ÇÀ» ³ªÅ¸³»°í ÃÖ´ë 32ºñÆ® ÀÎÀÚ¸¦ »ç¿ëÇϸé
32°³ÀÇ ¿É¼ÇÀ» ³ªÅ¸³¾ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.

1.3 The Program Status Register


Áö±Ý±îÁö ·¹Áö½ºÅÍÀÇ °¢ ºñÆ®°¡ ¾î¶»°Ô ¿¹/¾Æ´Ï¿À ¿Í Âü/°ÅÁþÀÇ »óŸ¦ Ç¥ÇöÇÏ´ÂÁö ¾Ë¾Æº¸¾Ò´Ù. ¿ì¸®°¡ ¾²´Â ÄÄÇ»ÅÍ¿¡´Â
ÇÁ·Î±×·¥ »óÅ ·¹Áö½ºÅͶó°í ºÒ¸®´Â ·¹Áö½ºÅͰ¡ ÀÖ´Ù. ÀÌ ·¹Áö½ºÅÍ´Â ÄÄÇ»ÅÍÀÇ ¿¬»ê¿¡ ´ëÇÑ ´Ù¾çÇÑ Á¤º¸µéÀÌ ÀúÀåµÇ¾î ÀÖ´Ù.
¸¸¾à µÎ ·¹Áö½ºÅ͸¦ ´õÇߴµ¥ °á°ú°ªÀÌ ·¹Áö½ºÅͰ¡ ÀúÀåÇÒ ¼ö ÀÖ´Â °ªº¸´Ù Å©¸é ¾î¶»°Ô µÉ±î? ÇÁ·Î±×·¥ »óÅ ·¹Áö½ºÅÍ´Â
ij¸® Ç÷¡±×¶ó´Â Ç÷¡±×¸¦ °¡Áö°í Àִµ¥ ÀÌ Ç÷¡±×¸¦ È®ÀÎÇØ¼­ ÃÖ±Ù¿¡ ¿À¹öÇ÷ο찡 ¹ß»ýÇß´ÂÁö¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù
´Ù¸¥ »óŵéÀ» ³ªÅ¸³»´Â ´Ù¾çÇÑ Ç÷¡±×µéÀÌ ÀÖ´Ù. »ç½Ç ºñ±³ ¸í·É¾î cmpl¸¦ ½ÇÇàÇÒ ¶§ ±× °á°ú°ªµµ ÀÌ ·¹Áö½ºÅÍ¿¡ ÀúÀåµÈ´Ù.
Á¶°Ç Á¡ÇÁ ¸í·É jge, jne µîµµ Á¡ÇÁ¸¦ ÇØ¾ßÇÒÁö ¸»¾Æ¾ß ÇÒÁö¸¦ ¾Ë±â À§ÇØ ÀÌ ·¹Áö½ºÅÍÀÇ °ªÀ» È®ÀÎÇϰí
jmp´Â »óŸ¦ »ó°üÇÏÁö ¾Ê°í ¹«Á¶°Ç Á¡ÇÁÇÏ´Â ¸í·ÉÀ̹ǷΠ»óÅ ·¹Áö½ºÅ͸¦ »ó°üÇÏÁö ¾Ê´Â´Ù.

¸¸¾à 32ºñÆ®º¸´Ù Å« °ªÀ» ÀúÀåÇØ¾ß ÇÑ´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒÁö ¾Ë¾Æº¸ÀÚ. ±× °ªÀÌ 64ºñÆ®·Î ÀúÀåµÈ´Ù¸é ¾î¶»°Ô ÇØ¾ß ÇÒ±î?
¸¸¾à µÎ °³ÀÇ 64ºñÆ® °ªÀ» ´õÇÏ°í ½Í´Ù¸é ³·Àº ÀÚ¸® ¼ö°¡ ÀúÀåµÈ ·¹Áö½ºÅͺÎÅÍ ´õÇÒ °ÍÀÌ´Ù. ¸¸¾à ³·Àº ÀÚ¸® ¼ö¸¦ ´õÇßÀ» ¶§
ij¸®°¡ ¹ß»ýÇß´Ù¸é ³ôÀº ÀÚ¸® ¼ö¸¦ ´õÇÒ ¶§ ÀÌ Ä³¸®µµ °°ÀÌ ´õÇØ¾ß ÇÒ °ÍÀÌ´Ù. ½ÊÁø¼ö µ¡¼ÀÀ» ÇÒ ¶§ ´õÇÑ ¼ö°¡ 9¸¦ ³ÑÀ¸¸é
1À» ³ôÀº ÀÚ¸®¿¡ ´õÇØÁÖ´Â °Íó·³ ³·Àº ÀÚ¸®°¡ ÀúÀåµÈ ·¹Áö½ºÅÍ¿¡¼­ ³¡ÀÚ¸®¿¡¼­ ij¸®°¡ ¹ß»ýÇÏ¸é ´ÙÀ½ ·¹Áö½ºÅÍ¿¡
1À» ´õÇØÁÖ¾î¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ·² ¶§ »óÅ ·¹Áö½ºÅ͸¦ »ç¿ëÇØ¼­ ³·Àº ÀÚ¸®ÀÇ ·¹Áö½ºÅ͸¦ ´õÇϰí ij¸® Ç÷¡±×¸¦ È®ÀÎÇØ¼­
³ôÀº ÀÚ¸®ÀÇ ·¹Áö½ºÅÍÀÇ µ¡¼À¿¡ »ç¿ëÇÏ¸é µÈ´Ù. ¹°·Ð °ÅÀÇ ´ëºÎºÐÀÇ ¿¬»êÀÌ 32ºñÆ®·Î ÇØ°áµÇ±â´Â ÇÑ´Ù.
ÇÁ·Î±×·¥ »óÅ× ·¹Áö½ºÅÍ¿¡ ´ëÇØ ´õ ¾Ë°í ½Í´Ù¸é Appendix B¸¦ È®ÀÎÇϵµ·Ï ÇÏÀÚ.

1.4 Other Numbering Systems


Áö±Ý±îÁö ´Ù·é °ÍµéÀº ¾çÀÇ Á¤¼öµéÀ̾ú´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î´Â ¾çÀÇ Á¤¼ö¸¸ ´Ù·çÁö ¾Ê´Â´Ù. À½¼ö³ª ¼Ò¼öµµ ´Ù·ç°Ô µÉ °ÍÀÌ´Ù.

1.4.1 Floating-Point Numbers


Áö±Ý±îÁö´Â ¼Ò¼öÁ¡ÀÌ ¾ø´Â Á¤¼öµé¸¸À» ´Ù·ð´Ù. ÄÄÇ»ÅÍ´Â Á¤ÇØÁø Å©±âÀÇ À¯ÇÑÇÑ °ª¸¸ ÀúÀåÇÒ ¼ö Àֱ⠶§¹®¿¡
º¸Åë ¼Ò¼öÁ¡ÀÌ ÀÖ´Â ¼öµéÀ» °è»êÇϴµ¥ ¾î·Á¿òÀÌ ÀÖ´Ù. 1/3°°ÀÌ ¹«ÇÑÇÑ ¼Ò¼ö´Â ±× ±æÀ̰¡ Á¤ÇØÁöÁö ¾Ê´Â´Ù.

ÄÄÇ»ÅͰ¡ ¼Ò¼ö¸¦ ÀúÀåÇÒ ¶§´Â ¾î´À Á¤µµ±îÁö¸¸ ÀÚ¸®¼ö¸¦ ÀúÀåÇÏ´Â ¹æ½ÄÀ» ¾´´Ù. ÄÄÇ»ÅÍ´Â Áö¼ö¿Í °¡¼ö·Î ³ª´²¼­ ¼Ò¼ö¸¦ ÀúÀåÇÑ´Ù.
°¡¼ö´Â ½ÇÁ¦ ¼ö¸¦ ³ªÅ¸³»°í Áö¼ö´Â °¡¼öÀÇ 10ÀÇ ¹èÀ²À» ³ªÅ¸³½´Ù. ¿¹¸¦ µé¾î 12345.2´Â 1.23452 * 10^4 ·Î ÀúÀåµÈ´Ù.
°¡¼ö´Â 1.23452À̰í Áö¼ö´Â 4°¡ µÈ´Ù. ¸ðµç ¼ýÀÚµéÀÌ ÀÌ·¸°Ô X.XXXXX *10^XXXX ·Î ÀúÀåµÈ´Ù. 1Àº 1.00000 * 10^0À¸·Î ÀúÀåµÈ´Ù.

Áö¼ö¿Í °¡¼ö°¡ ¸Å¿ì Å©´Ù¸é ½Å±âÇÑ ¹®Á¦µéÀÌ »ý±â±âµµ ÇÑ´Ù. ¿¹¸¦ µé¾î Á¤¼ö¿¡ 1À» ´õÇÏ¸é °á°ú°ªÀº ¿ø·¡ÀÇ ¼öº¸´Ù 1ÀÌ ´õ Ä¿Áø °ªÀÌ µÇ¾ß ÇÑ´Ù.
ÇÏÁö¸¸ ºÎµ¿ ¼Ò¼öÁ¡ ¿¬»ê¿¡¼­´Â ÀÌ°Ô ¹Ýµå½Ã ±×·¸±â¸¸ ÇÑ°Ô ¾Æ´Ï´Ù. ¸¸¾à 5.234 * 10^5000 ó·³ ¸Å¿ì Å« ¼ö¿¡ 1À» ´õÇϸé À̰ÍÀº
²À 1ÀÌ ´õ Ä¿Áø ¼ö·Î ÀúÀåµÇÁö ¾Ê´Â´Ù. ±×·±µ¥ 1À» ´õÇÏ´Â °ÍÀ» ¼ö½Ê¾ï¹ø ¹Ýº¹ÇÏ¸é ¾î¶»°Ô µÉ±î? µÎ°¡Áö °æ¿ì·Î »ý°¢Çغ¼ ¼ö Àִµ¥
¸¸¾à 5.234 * 10^5000 ¿¡ 1À» ¼ö½Ê¾ï¹ø ´õÇÑ´Ù¸é ÀÌ°Ç ±×³É 5.234 * 10^5000 ÀÌ µÈ´Ù. 1À» ´õÇØµµ °ªÀÌ ±×´ë·ÎÀ̹ǷÎ
¾Æ¹«¸® ¹Ýº¹Çصµ ¼Ò¿ëÀÌ ¾ø´Â °ÍÀÌ´Ù. ÇÏÁö¸¸ 1¿¡ 1À» ´õÇÏ´Â °ÍÀ» ¼ö½Ê¾ï¹ø ÇÏ°í ¿©±â¿¡ 5.234 * 10^5000 À» ´õÇϸé
°á°ú°ªÀÌ ´Þ¶óÁú °ÍÀÌ´Ù.

°ÅÀÇ ¸ðµÐ ÄÄÇ»ÅÍÀÇ ºÎµ¿ ¼Ò¼öÁ¡ ¿¬»êÀÌ Á¤¼ö ¿¬»êº¸´Ù ¸Å¿ì ´À¸®´Ù´Â °ÍÀ» ¸í½ÉÇØ¾ß ÇÑ´Ù. ¼Óµµ°¡ Áß¿äÇÑ ÇÁ·Î±×·¥À̶ó¸é ÃÖ´ëÇÑ Á¤¼ö¸¸
»ç¿ëÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.

1.4.2 Negative Numbers

ÄÄÇ»ÅÍ¿¡¼­ ¾î¶»°Ô À½¼ö¸¦ Ç¥ÇöÇÒÁö »ý°¢Çغ¸ÀÚ. ÇѰ¡Áö ¹æ¹ýÀº ù¹øÂ° ºñÆ®¸¦ ºÎÈ£ ºñÆ®·Î »ç¿ëÇØ¼­
00000000000000000000000000000001 À» 1·Î Ç¥ÇöÇϰí
10000000000000000000000000000001 À» -1·Î Ç¥ÇöÇÏ´Â ¹æ¹ýÀÌ´Ù. »ó´çÈ÷ Àû´çÇÑ ¹æ¹ýÀ̰í
»ç½Ç ¿À·¡µÈ ÇÁ·Î¼¼¼­µéÀÌ ÀÌ·± ¹æ½ÄÀ¸·Î µ¿ÀÛÇϱ⵵ ÇÑ´Ù. ±×·¯³ª ¸î°¡Áö ¹®Á¦°¡ Àִµ¥ ¹«¾ùº¸´Ùµµ
µ¡¼À »¬¼ÀÀ» Çϱâ À§Çؼ­ ´õ ¸¹Àº ȸ·Î°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀÌ´Ù. ½ÉÁö¾î´Â ¾ç¼ö 0°ú À½¼ö 0ÀÌ Á¸ÀçÇÏ´Â ¹®Á¦µµ ÀÖ´Ù.
À½¼öÀÇ 0°ú ¾ç¼öÀÇ 0À» ¾î¶»°Ô ±¸ºÐÇÒÁö ¾î¶² »óȲ¿¡¼­ À½¼ö 0ÀÌ µÇ°í ¾î¶² »óȲ¿¡¼­´Â ¾ç¼ö 0ÀÌ µÇ¾ß ÇÏ´ÂÁö°¡ ¹®Á¦·Î ³ªÅ¸³­´Ù.

ÀÌ ¹®Á¦µéÀº 2ÀÇ º¸¼ö¸¦ »ç¿ëÇϸ鼭 ÇØ°áµÇ¾ú´Ù. 2ÀÇ º¸¼ö¸¦ °è»êÇϱâ À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ Ã³¸®ÇÏ¸é µÈ´Ù.

1. ¿øÇÏ´Â ¼ö¿¡ NOT ¿¬»êÀ» ÇÑ´Ù.
2. ¿¬»ê °á°ú¿¡ 1À» ´õÇÑ´Ù.

00000000000000000000000000000001ÀÇ À½¼ö¸¦ ¾ò±â À§Çؼ­´Â ù¹øÂ°·Î NOT ¿¬»êÀ» ÇØ¼­ 11111111111111111111111111111110À» ¾ò°í
1À» ´õÇØ¼­ 11111111111111111111111111111111À» ¾ò¾î³»¸é µÈ´Ù. 2ÀÇ º¸¼ö¸¦ ¾ò±â À§Çؼ­´Â 00000000000000000000000000000010À»
NOT ¿¬»êÇØ¼­ 11111111111111111111111111111101À» ¾ò°í ±× ´ÙÀ½ 1À» ´õÇØ¼­ 11111111111111111111111111111110À» ¾òÀ¸¸é µÈ´Ù.
ÀÌ·± Ç¥ÇöÀ» ÀÌ¿ëÇÏ¸é µÎ ¼ö°¡ ¾ç¼öÀΰͰú °°ÀÌ ¹Ù·Î µ¡¼ÀÀ» ÇØ¼­ ¹Ù¸¥ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÌÁø¼ö·Î 1°ú -1À» ´õÇϸé
¸ðµç ºñÆ®°¡ 0ÀÌ µÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¶Ç ù¹øÂ° ºñÆ®¸¦ ºÎÈ£ ºñÆ®·Î Çϸé À½¼öÀÎÁö ¾ç¼öÀÎÁö ¾Ë¾Æ³»±â°¡ ÆíÇØÁø´Ù. À½¼ö´Â °¡Àå ¿ÞÂÊÀÇ ºñÆ®°¡ Ç×»ó 1ÀÌ µÈ´Ù.
ÀÌ·¸°Ô µÇ¸é Á¤ÇØÁø ºñÆ® ¼ö¿¡¼­ Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¼öÀÇ ¹üÀ§°¡ ´Þ¶óÁø´Ù. ºÎÈ£°¡ ÀÖ´Â ¼ö¿¡¼­´Â Ç¥Çö °¡´ÉÇÑ ¼ö°¡
À½¼ö¿Í ¾ç¼ö·Î ³ª´²Áö°Ô µÈ´Ù. ¿¹¸¦ µé¾î ÇÑ ¹ÙÀÌÆ®´Â 0¿¡¼­ 255±îÁöÀÇ ¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ ºÎÈ£¸¦ °¡Áö°Ô µÇ¸é
-128¿¡¼­ 127±îÁöÀÇ ¼ö¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ°Ô µÈ´Ù.

2ÀÇ º¸¼ö·Î À½¼ö¸¦ Ç¥ÇöÇÏ´Â ¹æ½Ä¿¡¼­´Â ±× ¼öÀÇ ¿ÞÂÊ¿¡ 0À» ºÙÀÎ´Ù°í ºñÆ®¼ö°¡ ¸¹¾ÆÁö´Â°Ô ¾Æ´Ï´Ù.
¿¹¸¦ µé¾î 4ºñÆ®ÀÇ ½ÊÁø¼ö -3, ÀÌÁø¼ö·Î 1101À» 8ºñÆ® ·¹Áö½ºÅÍ¿¡ ÀúÀåÇϱâ À§ÇØ 8ºñÆ®·Î ´Ã·ÈÀ» ¶§
00001101·Î »ý°¢ÇÏ¸é ¾ÈµÈ´Ù. 00001101Àº 13ÀÌÁö -3ÀÌ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù. 2ÀÇ º¸¼ö¿¡¼­
ºÎÈ£°¡ ÀÖ´Â ¼öÀÇ ¹üÀ§¸¦ ´Ã¸®·Á¸é ¿ÞÂÊ¿¡ ºÎÈ£ ºñÆ®¸¦ ºÙ¿©¼­ ´Ã·Á¾ß ÇÑ´Ù. 4ºñÆ®ÀÇ À½¼ö¸¦ ´Ã¸®±â À§Çؼ­´Â 1À» ºÙ¿©¾ß ÇÏ´Â °ÍÀÌ´Ù.
¸¸¾à ¾ç¼ö¶ó¸é 0À» ºÙ¿©¾ß ÇÑ´Ù. µû¶ó¼­ -3À» 8ºñÆ®·Î È®ÀåÇϸé 11111101°¡ µÈ´Ù.

x86 ÇÁ·Î¼¼¼­´Â ºÎÈ£°¡ ÀÖ´Â ¼ö¿Í ºÎÈ£°¡ ¾ø´Â ¼ö¸¦ ´Ù·ç±â À§ÇÑ ¿¬»êÀÚµéÀÌ ±¸ºÐµÇ¾î ÀÖ´Ù.
Appendix B¿¡ ¸®½ºÆ®°¡ ³ª¿ÍÀÖ´Ù. ¿¹¸¦ µé¾î ¿À¸¥ÂÊÀ¸·Î ½¬ÇÁÆ®ÇÏ´Â ¿¬»êÀÚ¿¡¼­ ºÎÈ£ ºñÆ®¸¦ À¯ÁöÇÏ´Â ¸í·É¾î´Â
sarlÀ̰í À¯ÁöÇÏÁö ¾Ê´Â ¸í·É¾î´Â shrlÀÌ´Ù.

1.5 Octal and Hexadecimal Numbers


Áö±Ý±îÁö À̾߱âÇß´ø ¼öµéÀº ½ÊÁø¼ö¿Í ÀÌÁø¼ö¿´´Ù. ±×·¯³ª 8Áø¼ö¿Í 16Áø¼öµµ ÄÄÇ»ÅÍ¿¡¼­ ¸¹ÀÌ »ç¿ëµÈ´Ù.
»ç½Ç ÀÌÁø¼öº¸´Ùµµ ´õ ¸¹ÀÌ »ç¿ëµÉ °ÍÀÌ´Ù. 8Áø¼ö´Â 0ºÎÅÍ 7±îÁöÀÇ ¼ö¸¸ »ç¿ëÇØ¼­ ¼ö¸¦ ³ªÅ¸³»´Â °ÍÀÌ´Ù.
8Áø¼ö·Î 10Àº ÇÑ ±×·ì 8°³¸¦ ³ªÅ¸³»¹Ç·Î ½ÊÁø¼ö·Î 8ÀÌ µÈ´Ù. 8Áø¼öÀÇ 121Àº ÇÑ ±×·ìÀÇ ±×·ì 64¿Í 2°³ÀÇ 8°³ ±×·ì,
±×¸®°í 1°³¸¦ ³ªÅ¸³»¹Ç·Î 81ÀÌ µÈ´Ù. 8Áø¼ö´Â 3°³ÀÇ ºñÆ®°¡ ÇÑÀÚ¸® ¼ö°¡ µÇ¹Ç·Î Æí¸®ÇÑ Á¡ÀÌ ÀÖ´Ù. (½ÊÁø¼ö·Î´Â ±×·¸°Ô ÇÒ ¼ö°¡ ¾ø´Ù)
8Áø¼ö 0Àº ÀÌÁø¼ö·Î 000ÀÌ µÇ°í 1Àº 001, 2´Â 010, 3Àº 011, 4´Â 100, 5´Â 101, 6Àº 110, 7Àº 111ÀÌ µÈ´Ù.

Linux¿¡¼­ Àбâ, ¾²±â, ½ÇÇà ÇϱâÀÇ ±ÇÇÑÀ» ³ªÅ¸³¾ ¶§ 8Áø¼ö¸¦ »ç¿ëÇÑ´Ù. ù¹øÂ° ºñÆ®´Â Àб⠱ÇÇÑÀÌ°í µÎ¹øÂ°´Â ¾²±â, ¼¼¹øÂ° ºñÆ®´Â ½ÇÇà ±ÇÇÑÀ» ³ªÅ¸³½´Ù.
±×·¡¼­ 0(000)Àº ¾Æ¹« ±ÇÇÑÀÌ ¾ø´Â °ÍÀ̰í 6(110)Àº Àбâ¿Í ¾²±â ±ÇÇÑÀÌ ÀÖ´Â °ÍÀ» ³ªÅ¸³»°í ¶Ç 5(101)Àº Àбâ¿Í ½ÇÇà ±ÇÇÑÀÌ ÀÖ´Â °ÍÀ» ³ªÅ¸³½´Ù.
±×¸®°í ¼ÒÀ¯ÀÚ, ¼ÒÀ¯ÀÚÀÇ ±×·ì, ±× ¿Ü »ç¶÷µéÀÇ ±ÇÇÑÀ» ³ªÅ¸³»´Â µ¥¿¡µµ »ç¿ëµÈ´Ù. 0644´Â ¼ÒÀ¯ÀÚ¿¡°Ô Àбâ¿Í ¾²±â ±ÇÇÑÀ»,
¼ÒÀ¯ÀÚÀÇ ±×·ì°ú ±× ¿Ü »ç¶÷µé¿¡°Ô´Â Àб⠱ÇÇѸ¸À» Çã¿ëÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ¶Ç 0751Àº ÆÄÀÏÀÇ ¼ÒÀ¯ÀÚ¿¡°Ô Àбâ, ¾²±â, ½ÇÇà ±ÇÇÑÀ» ÁÖ°í
¼ÒÀ¯°¡ÀÇ ±×·ì ¸â¹öµé¿¡°Ô´Â Àбâ¿Í ½ÇÇà ±ÇÇÑ, ±× ¿Ü »ç¶÷µé¿¡°Ô´Â ½ÇÇà ±ÇÇѸ¸À» Çã¿ëÇÑ´Ù´Â ÀǹÌÀÌ´Ù.

¾î·µç 8Áø¼ö´Â 3°³ÀÇ ºñÆ®¸¦ ÇÑ ±×·ìÀ¸·Î ³ªÅ¸³¾ ¶§ »ç¿ëµÈ´Ù. ¾î¼Àºí·¯¿¡°Ô ¾î¶² ¼ö°¡ 8Áø¼öÀÎÁö¸¦ ¾Ë¸®±â À§Çؼ­´Â ¼ýÀÚ¸¦ 0À¸·Î ½ÃÀÛÇÏ¸é µÈ´Ù.
¿¹¸¦ µé¾î 010Àº 8Áø¼ö 10, 10Áø¼ö·Î 8À» ³ªÅ¸³»´Â °ÍÀÌ´Ù. ±×³É 10¸¸ ¾²¸é 10Áø¼ö·Î 10À» ³ªÅ¸³»´Â °ÍÀÌ´Ù. 10Áø¼ö¸¦ ¾µ ¶§´Â ¼ýÀÚ ¾Õ¿¡ 0À» ¾²Áö ¾Êµµ·Ï
ÁÖÀÇÇØ¾ß 10Áø¼ö°¡ 8Áø¼ö·Î ÀνĵÇÁö ¾Ê´Â´Ù!

16Áø¼ö´Â Çí»ç¶ó°íµµ ºÒ¸®´Âµ¥ °¢ ÀÚ¸®¼ö¸¶´Ù 1¿¡¼­ 15ÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù. ±×·±µ¥ 10¿¡¼­ 15´Â ÇÑÀÚ¸®·Î ³ªÅ¸³»´Â ¼ö°¡ ¾øÀ¸¹Ç·Î aºÎÅÍ fÀÇ ¾ËÆÄºªÀ» »ç¿ëÇØ¼­ ³ªÅ¸³½´Ù.
¿¹¸¦ µé¾î a´Â 10À» ³ªÅ¸³»°í b´Â 11À» ³ªÅ¸³»´Â ½ÄÀÌ´Ù. 16Áø¼ö·Î 10Àº 16À» ³ªÅ¸³½´Ù. 8Áø¼ö¿¡¼­´Â °¢ ÀÚ¸®°¡ 3ºñÆ®¿´´Ù. 16Áø¼ö¿¡´Â °¢ ÀÚ¸®°¡
4ºñÆ®¸¦ ³ªÅ¸³½´Ù. 16Áø¼ö·Î µÎÀÚ¸®¸é 8ºñÆ®¸¦ ³ªÅ¸³»°í ¿©´ûÀÚ¸®´Â 32ºñÆ®¸¦ ³ªÅ¸³½´Ù. ±×·¡¼­ ÀÌ¹Ì ¾Ë°í ÀÖ°ÚÁö¸¸ ÀÌÁø¼ö·Î °ªÀ» ¾²´Â °Íº¸´Ù´Â
16Áø¼ö·Î °ªÀ» ¾²´Â°Ô ´õ ÆíÇÏ´Ù. ½á¾ß ÇÒ ¼ýÀÚ°¡ 1/4·Î ÁÙ¾îµå´Â °ÍÀÌ´Ù. 16Áø¼ö¿¡¼­ °¡Àå Áß¿äÇÏ°í ±â¾ïÇØ¾ß ÇÒ ¼ýÀÚ´Â fÀÌ´Ù. f´Â ¸ðµç ºñÆ®°¡ 1ÀÌ µÇ´Â °ÍÀ» ÀǹÌÇÑ´Ù.
±×·¡¼­ ·¹Áö½ºÅÍÀÇ ¸ðµç ºñÆ®¸¦ 1·Î ä¿ì°í ½Í´Ù¸é, ÀÌ·¸°Ô ÇÏ°Ô µÈ´Ù.

movl $0xFFFFFFFF, %eax

À̰ÍÀº ´ÙÀ½Ã³·³ ÇÏ´Â °Íº¸´Ù ½±°í ¿¡·¯µµ Àû°Ô ³­´Ù.

movl $0b11111111111111111111111111111111, %eax

16Áø¼ö°¡ 0x·Î ½ÃÀÛÇÏ´Â °ÍÀ» ÁÖÀÇÇÏÀÚ.

int $0x80

À§¿Í °°Àº ÄÚµå´Â ÀÎÅÍ·´Æ® 128À» È£ÃâÇÏ´Â °ÍÀÌ´Ù.

16Áø¼ö³ª 8Áø¼ö´Â Á» ³¸¼³Áö¸¸ ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö¿¡¼­´Â Á¤¸» ¸¹ÀÌ »ç¿ëµÈ´Ù. µû¶ó¼­ 16Áø¼ö¸¦ ÀÌÁø¼ö·Î ¹Ù²Ù°Å³ª ½ÊÁø¼ö¸¦ 8Áø¼ö·Î ¹Ù²Ù´Â µî
°¢ Áø¼ö¿¡ ¸Â°Ô º¯È¯ÇÏ´Â °Í¿¡ ´ëÇØ ¾Ë¾Æ µÑ Çʿ䰡 ÀÖ´Ù.

1.6 Order of Bytes in a Word


¸¹Àº »ç¶÷µéÀÌ ºñÆ®³ª ¹ÙÀÌÆ®¸¦ ´Ù·ê ¶§ ÀÚÁÖ È¥µ¿ÇÏ´Â °ÍÀÌ ·¹Áö½ºÅÍÀÇ ¹ÙÀÌÆ® °ªµéÀÌ ¸Þ¸ð¸®·Î ¾²¿©Áú ¶§ ¼ø¼­°¡ µÚ¹Ù²ï ´Ù´Â °ÍÀÌ´Ù.
´ëºÎºÐÀÇ »ç¶÷µéÀº ·¹Áö½ºÅÍ¿¡ 0x5d 23 ef ee¸¦ ½èÀ¸¸é ¸Þ¸ð¸®¿¡µµ °°Àº ¼ø¼­·Î ±â·ÏµÇ¸®¶ó°í »ý°¢ÇÑ´Ù. ±×·¯³ª x86 ÇÁ·Î¼¼¼­¿¡¼­´Â
¹ÙÀÌÆ®µéÀÌ ¹Ý´ë ¼ø¼­·Î ÀúÀåµÈ´Ù. ¸Þ¸ð¸®¿¡´Â 0xee ef 23 5d·Î ±â·ÏµÈ´Ù. °¢ ¹ÙÀÌÆ® ³»ºÎÀÇ ºñÆ® °ªµéÀº ¿ø·¡ ¼ø¼­´ë·Î ±â·ÏµÇÁö¸¸
°¢°¢ÀÇ ¹ÙÀÌÆ®µéÀº ¹Ý´ë·Î ÀúÀåµÇ´Â °ÍÀÌ´Ù.

x86Àº little-endian ÇÁ·Î¼¼¼­¶ó°í ºÒ¸®´Âµ¥ ÀÌ ¸»ÀÇ ¶æÀº "little end" Áï °¡Àå ¿ÞÂÊÀÇ ¹ÙÀÌÆ®°¡ ¸ÕÀú ÀúÀåµÈ´Ù´Â °ÍÀÌ´Ù.


150ÆäÀÌÁöÀÇ ±×¸²ÀÌ µé¾î°¨


big-endian ÇÁ·Î¼¼¼­µéÀº ¹ÙÀÌÆ®µéÀÌ ¿ø·¡ ¼ø¼­ ±×´ë·Î ÀúÀåµÇ´Â ÇÁ·Î¼¼¼­ÀÌ´Ù.


151ÆäÀÌÁöÀÇ ±×¸²ÀÌ µé¾î°¨


ÀÌ Â÷ÀÌ´Â º°·Î Å« ¹®Á¦°¡ µÇÁö ¸øÇß´Ù (ºñ·Ï ¿À·£ ½Ã°£µ¿¾È ¸¹Àº ³íÀïÀÌ µÇ¾î¿ÔÁö¸¸). ¹ÙÀÌÆ®µéÀÌ ¸Þ¸ð¸®¿¡¼­ ÀÐÇôÁú ¶§ ´Ù½Ã ¿ø·¡ ¼ø¼­·Î
ÀÚµ¿À¸·Î µ¹¾Æ¿À±â ¶§¹®¿¡ ÇÁ·Î±×·¡¸ÓµéÀº º¸Åë ¹ÙÀÌÆ®ÀÇ ¼ø¼­°¡ ¾î¶»°Ô 됬´ÂÁö ¾ËÁö ¸øÇÑ´Ù. ¹ÙÀÌÆ®µéÀÇ ¹Ù²î´Â ÀÏÀº ·¹Áö½ºÅÍ¿Í ¸Þ¸ð¸® »çÀÌ¿¡¼­
ÀÚµ¿À¸·Î ¹ß»ýÇÑ´Ù. ±×·±µ¥ ¸î°¡Áö °æ¿ì¿¡´Â ÀÌ·± ¹ÙÀÌÆ® ¼ø¼­°¡ ¹®Á¦¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Ù.

  • ¸î ¹ÙÀÌÆ®¸¦ movl ¸í·É¾î·Î ÇѲ¨¹ø¿¡ Àо ¾Õ¿¡¼­ºÎÅÍ ÇÑ ¹ÙÀÌÆ®¾¿ ó¸®ÇÏ·Á°í ÇÒ ¶§, ¸Þ¸ð¸®¿¡¼­ º¸ÀÌ´Â ¼ø¼­´ë·Î 󸮵ÇÁö ¾Ê´Â´Ù.
  • ´Ù¸¥ ÇÁ·Î¼¼¼­ ¾ÆÅ°ÅØÃ³¿¡¼­ ¸¸µé¾îÁø ÆÄÀÏ¿¡ °ªÀ» Àаųª ¾µ ¶§ ¹ÙÀÌÆ®°¡ ¾î¶² ¼ø¼­·Î ±â·ÏµÇ¾ú´ÂÁö »ìÆìº¸¾Æ¾ß ÇÑ´Ù.
  • ³×Æ®¿öÅ© ¼ÒÄÏ¿¡ °ªÀ» ¾²°Å³ª ÀÐÀ» ¶§ ÇÁ·ÎÅäÄÝ¿¡ µû¶ó ¹ÙÀÌÆ® ¼ø¼­¸¦ °í·ÁÇØ¾ß ÇÑ´Ù.

ÀÌ·± »çÇ×µéÀ» ±â¾ïÇϱ⸸ ÇÏ¸é º¸Åë º°·Î Å« ¹®Á¦¸¦ ÀÏÀ¸Å°Áö´Â ¾ÊÀ» °ÍÀÌ´Ù. ¹ÙÀÌÆ® ¼ø¼­¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½Í´Ù¸é
http://www.rdrop.com/~cary/html/endian_faq.html ¿¡ ÀÖ´Â DAV's Endian FAQ Áß¿¡¼­ Daniel CohenÀÌ ¾´ "On Holy Wars and a Plea for Peace"¸¦ Àо´Ù.

1.7 Converting Numbers for Display


Áö±Ý±îÁö´Â ÇÁ·Î±×·¥ Á¾·á Äڵ忡 ¼ýÀÚ¸¦ Àü´ÞÇÏ´Â Á¦ÇÑµÈ ¹æ¹ý ¿Ü¿¡ »ç¿ëÀÚ¿¡°Ô Á¦´ë·Î ¼ýÀÚ¸¦ º¸¿©ÁÙ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø¾ú´Ù. ÀÌ ¼½¼Ç¿¡¼­´Â ¾ç¼ö¸¦
Ãâ·ÂÇϱâ À§ÇØ ¹®ÀÚ¿­·Î ¹Ù²Ù´Â ¹æ¹ý¿¡ ´ëÇØ¼­ ¾Ë¾Æº¸µµ·Ï ÇϰڴÙ

ÀÌ ÇÔ¼ö´Â integer2string À̶ó°í ºÒ¸± °ÍÀÌ°í µÎ°³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ °¡Áø´Ù. Çϳª´Â º¯È¯ÇÒ Á¤¼ö¿Í Çϳª´Â ³Î·Î ³¡³ª´Â ¹®ÀÚ¿­À» ÀúÀåÇÒ ¹öÆÛÀÌ´Ù.
ÀÌ ¹öÆÛ´Â ¹®ÀÚ¿­·Î ¹Ù²ï ¼ýÀÚ¸¦ ÀúÀåÇϱ⿡ ³Ë³ËÇÑ Å©±â¶ó°í »ý°¢ÇÏÀÚ. (³Î ¹®ÀÚ±îÁö ÀúÀåÇϱâ À§ÇØ ÃÖ¼Ò 11±ÛÀÚ¸¦ ÀúÀåÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù)

¿ì¸®°¡ 10Áø¼ö·Î ¼ýÀÚ¸¦ Àд ¹æ¹ýÀ» »ý°¢Çغ¸ÀÚ. °¢ ÀÚ¸®¼ö¸¦ °è»êÇϱâ À§ÇØ ¿ì¸®´Â ¼ýÀÚ¸¦ 10À¸·Î ³ª´©°í ±× ³ª¸ÓÁö¸¦ °¢ ÀÚ¸®¼ö¿¡ ä¿ö³Ö´Â´Ù.
µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

  • ¼ýÀÚ¸¦ 10À¸·Î ³ª´«´Ù
  • ³ª¸ÓÁö°¡ ÇöÀç ÀÚ¸®¼öÀÌ´Ù. ¹®ÀÚ¿­·Î º¯È¯Çؼ­ ¹öÆÛ¿¡ ÀúÀåÇÑ´Ù.
  • ¼ýÀÚ°¡ 0ÀÌ µÇ¸é ¸ØÃá´Ù.
  • ¾Æ´Ï¸é ³ª´« ¼ýÀÚ¸¦ °¡Áö°í ¹öÆÛÀÇ ´ÙÀ½ ÀÚ¸®·Î À̵¿Çϸ鼭 °è¼Ó ¹Ýº¹ÇÑ´Ù.

ÇѰ¡Áö ¹®Á¦¶ó¸é ù¹øÂ° ÀÚ¸®¼ö°¡ ¹®ÀÚ¿­ÀÇ Ã³À½¿¡ ¿À°Ô µÇ¼­ ¼ýÀÚ°¡ °Å²Ù·Î ±â·ÏµÈ´Ù´Â °ÍÀÌ´Ù.
µû¶ó¼­ ÇÔ¼ö ¸¶Áö¸·¿¡ ¹®ÀÚ¿­À» µÚÁý´Â 󸮸¦ ÇØÁØ´Ù. ¿ì¸®´Â À̰ÍÀ» ½ºÅÿ¡ ¹®ÀÚ¿­À» ÀúÀåÇÏ´Â ¹æ½ÄÀ¸·Î ÇØ°áÇÒ °ÍÀÌ´Ù.
½ºÅÿ¡¼­ ÇÑ ÀÚ¸®¾¿ »Ì¾Æ³»¼­ ¹öÆÛ¿¡ ÀúÀåÇØÁÖ¸é °Å²Ù·Î ±â·ÏµÈ ¹®ÀÚ¿­ÀÌ ¹Ù·Î ÀâÈú °ÍÀÌ´Ù.

integer-to-string.s ¶ó´Â ÆÄÀÏ¿¡ ÇÔ¼ö Äڵ带 ÀúÀåÇÑ´Ù.

#¸ñÀû : Á¤¼ö¸¦ ½ºÅ©¸°¿¡ Ãâ·ÂÇϱâ À§ÇØ ¹®ÀÚ¿­·Î ¹Ù²Û´Ù
#
#ÀÔ·Â: ÃÖ´ë ¼ýÀÚ±îÁö ÀúÀåÇÒ ¼ö ÀÖ´Â ÃæºÐÈ÷ Å« ¹öÆÛ
#        º¯È¯ÇÒ Á¤¼ö
#
#Ãâ·Â: ½ÊÁø¼ö ¹®ÀÚ¿­ÀÌ ÀúÀåµÈ ¹öÆÛ
#
#º¯¼ö:
#
# %ecx ÇöÀç 󸮵ǰí ÀÖ´Â ¹®ÀÚ¿­ÀÇ Ä«¿îÅÍ
# %eax ÇöÀç °ª
# %edi Áø¼ö °ª 10
#
.equ ST_VALUE, 8
.equ ST_BUFFER, 12

.globl integer2string
.type integer2string, @function
integer2string:
#ÇÔ¼ö ½ÃÀÛÀ» À§ÇÑ ½ºÅà º¸Á¸
pushl %ebp
movl %esp, %ebp

#ÇöÀç ¹®ÀÚ¿­ÀÇ Å©±â
movl $0, %ecx

#ÆÄ¶ó¹ÌÅÍ·Î Àü´ÞµÈ °ªÀ» Àоî¿Â´Ù
movl ST_VALUE(%ebp), %eax

#10À¸·Î ³ª´©±â À§Çؼ­´Â 10À» ·¹Áö½ºÅÍ¿¡ ÀúÀåÇØ³ö¾ß ÇÑ´Ù
movl $10, %edi

conversion_loop:
#³ª´°¼ÀÀº %edx:%eax ·¹Áö½ºÅÍ ½Ö¿¡¼­ ÀÌ·ç¾îÁø´Ù
#µû¶ó¼­ %edx¿¡´Â 0À» ³Ö¾î³í´Ù
movl $0, %edx

#10À¸·Î ³ª´«´Ù.
#¸òÀº %eax¿¡ ÀúÀåµÇ°í ³ª¸ÓÁö´Â %edx¿¡ ÀúÀåµÈ´Ù
divl %edi


#%edx¿¡ ÀúÀåµÈ ³ª¸ÓÁö¸¦ ¹®ÀÚ·Î º¯È¯ÇØ¾ß ÇÑ´Ù.
#10À¸·Î ³ª´« ³ª¸ÓÁö °ªÀº 0¿¡¼­ 9»çÀÌÀÇ °ªÀÌ µÈ´Ù.
#µû¶ó¼­ ÀÌ ¼ö¸¦ °¡Áö°í ¾Æ½ºÅ° Å×À̺íÀÇ '0'ÀÇ °ªÀ» ±âÁØÀ¸·Î º¯È¯ÇÏ¸é µÈ´Ù.
#'0'¿¡ 0À» ´õÇÏ¸é ¾Æ½ºÅ° ÄÚµå·Î '0'ÀÌ µÇ°í 1À» ´õÇϸé '1'ÀÌ µÈ´Ù.
#µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ '0'¿¡ ³ª¸ÓÁö °ªÀ» ´õÇÏ¸é ¾Æ½ºÅ° Äڵ尡 µÈ´Ù.
addl $¡¯0¡¯, %edx


#ÀÌÁ¦ º¯È¯µÈ °ªÀ» ½ºÅÿ¡ ÀúÀåÇÑ´Ù.
#ÀÌ·¸°Ô ½ºÅÿ¡ °ªÀ» ÀúÀåÇÑ ´ÙÀ½¿¡ ÇѱÛÀÚ¾¿ ²¨³»¼­ ¹öÆÛ¿¡ ÀúÀåÇϸé
#±ÛÀÚ ¼ø¼­°¡ ¹Ù·Î ÀâÈ÷°Ô µÈ´Ù.
#·¹Áö½ºÅÍ Àüü °ªÀ» ÀúÀåÇÏÁö¸¸ %dl ¿¡ ÀúÀåµÈ ÇÑ ¹ÙÀÌÆ®°¡
#¹®ÀÚ¸¦ ÀúÀåÇϰí ÀÖ´Ù´Â °ÍÀ» ÁÖÀÇÇÏÀÚ
pushl %edx

#ÀÚ¸®¼ö Ä«¿îÅ͸¦ Áõ°¡½ÃŲ´Ù
incl %ecx

#%eax°¡ 0ÀÎÁö È®ÀÎÇØ¼­
#0ÀÌ¸é ·çÇÁ¸¦ ¹þ¾î³­´Ù
cmpl $0, %eax
je end_conversion_loop

#%eax ¿¡´Â »õ·Î ³ª´©¾î¾ß ÇÒ °ªÀÌ ÀúÀåµÇ¾î ÀÖ´Ù

jmp conversion_loop

end_conversion_loop:
#¹®ÀÚ¿­Àº ½ºÅÿ¡ ÀúÀåµÇ¾î ÀÖ´Ù. 
#ÇѱÛÀÚ¾¿ ½á³»¼­ ¹öÆÛ¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù.

#%edx¿¡ ¹öÆÛÀÇ Æ÷ÀÎÅ͸¦ ÀúÀåÇÑ´Ù
movl ST_BUFFER(%ebp), %edx

copy_reversing_loop:
#·¹Áö½ºÅÍ Àüü¸¦ ½ºÅÿ¡ ÀúÀåÇ߱⠶§¹®¿¡
#¸¶Áö¸· ÇÑ ¹ÙÀÌÆ®¸¸ ÇÊ¿äÇÏ°Ô µÈ´Ù.
#µû¶ó¼­ %eax¿¡ ½ºÅÃÀÇ °ªÀ» ÀúÀåÇÑ ´ÙÀ½
#%al¸¸ ¹®ÀÚ¿­¿¡ ÀúÀåÇÑ´Ù.
popl %eax
movb %al, (%edx)

#%ecx¿¡ ÀúÀåµÈ ÀÚ¸®¼ö Ä«¿îÅ͸¦ °¨¼Ò½ÃÄѼ­ ¾ðÁ¦ ³¡³»¾ß ÇÒÁö °è»êÇÑ´Ù
decl %ecx
#%edx¸¦ Áõ°¡½ÃÄѼ­ ´ÙÀ½¿¡ ¹®ÀÚ¸¦ ÀúÀåÇÒ Æ÷ÀÎÅ͸¦ °è»êÇÑ´Ù
incl %edx

#%ecx°¡ 0ÀÌ¸é ³¡³½´Ù.
cmpl $0, %ecx
#ÇÔ¼öÀÇ ³¡À¸·Î Á¡ÇÁÇÑ´Ù
je end_copy_reversing_loop
#¾Æ´Ï¸é ¹Ýº¹ÇÑ´Ù
jmp copy_reversing_loop

end_copy_reversing_loop:
#¹®ÀÚ¿­ ³¡¿¡ ³ÎÀ» ÀúÀåÇϰí ÇÔ¼ö¸¦ ³¡³½´Ù.
movb $0, (%edx)

movl %ebp, %esp
popl %ebp
ret

¿Ï¼ºµÈ ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ­´Â ´ÙÀ½ Äڵ带 »ç¿ëÇÑ´Ù. ÀÌÀü Àå¿¡¼­ ¸¸µé¾ú´ø count_chars¿Í write_newline ÇÔ¼öµéÀ» °°ÀÌ »ç¿ëÇÑ´Ù.
conversion-program.s ÆÄÀÏ¿¡ ´ÙÀ½ Äڵ带 ÀúÀåÇÑ´Ù.

.include "linux.s"

.section .data

tmp_buffer:
.ascii "\0\0\0\0\0\0\0\0\0\0\0"

.section .text

.globl _start
_start:
movl %esp, %ebp

#°á°ú °ªÀÌ ÀúÀåµÉ ¹öÆÛ
pushl $tmp_buffer
#º¯È¯µÈ ¼ýÀÚ
pushl $824
call integer2string
addl $8, %esp

#¿ì¸®°¡ ¸¸µç ÇÔ¼ö·Î ¸î ±ÛÀÚÀÎÁö È®ÀÎÇÑ´Ù
pushl $tmp_buffer
call count_chars
addl $4, %esp

#SYS_WRITE¸¦ À§Çؼ­ °á°ú °ªÀ» %edx¿¡ ÀúÀåÇÑ´Ù.
movl %eax, %edx

#½Ã½ºÅÛ ÄÝÀ» ½ÇÇàÇϱâ À§ÇØ Áغñ
movl $SYS_WRITE, %eax
movl $STDOUT, %ebx
movl $tmp_buffer, %ecx

int $LINUX_SYSCALL

#°³Çà ¹®ÀÚ¸¦ ¾´´Ù
pushl $STDOUT
call write_newline

#ÇÁ·Î±×·¥ Á¾·á
movl $SYS_EXIT, %eax
movl $0, %ebx
int $LINUX_SYSCALL

½ÇÇà ÆÄÀÏÀ» ¸¸µé±â À§ÇØ ´ÙÀ½ ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù.

as integer-to-string.s -o integer-to-number.o
as count-chars.s -o count-chars.o
as write-newline.s -o write-newline.o
as conversion-program.s -o conversion-program.o
ld integer-to-number.o count-chars.o write-newline.o conversion-program.o -o conversion-program

./conversion-program À̶ó°í Ä¡¸é 824¶ó°í Ãâ·ÂµÉ °ÍÀÌ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.