http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=8386 [º¹»ç]
¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ ¾î¼Àºí¸®
1. C¿Í ¾î¼Àºí¸®¸¦ ºñ±³ÇÒ ¶§, ¾î¼Àºí¸®´Â Çѹø¿¡ ÇϳªÀÇ µ¿ÀÛ.
2. Áö±Ý ¹è¿ì´Â °ÍÀº IA-32(°¡Àå ´ëÁßÈµÈ °Í.)
3. ±âº»ÇüÅ : "¸í·É¾î + ÀÎÀÚ"
4. ¿ÉÄÚµå(opcode)=¸í·É¾î
5. ÀÎÀÚ : ¾î¶² Àå¼Ò? + ¸í·É¾î¿¡ ¿µÇâ ¹Þ´Â °Í = ¿ÀÆÛ·£µå(operand)
6. push¸¦ ¾²¸é ½ºÅÿ¡ °ªÀÌ ³Ö¾îÁü.
½ºÅÃÀ̶õ?
½ºÅÃ(stack)Àº ¸ðµç ¿ø¼ÒµéÀÇ »ðÀÔ(insert)°ú »èÁ¦(delete)°¡ ¸®½ºÆ®ÀÇ ÇÑÂÊ ³¡¿¡¼¸¸ ¼öÇàµÇ´Â Á¦ÇÑ Á¶°ÇÀ» °¡Áö´Â ¼±Çü ÀÚ·á ±¸Á¶(linear data structure)·Î¼, »ðÀÔ°ú »èÁ¦°¡ ÀϾ´Â ¸®½ºÆ®ÀÇ ³¡À» topÀ̶ó ÇÏ°í, ´Ù¸¥ ÇÑÂÊ ³¡À» bottomÀ̶ó ÇÑ´Ù. ½ºÅÃÀº Á¾Á¾ pushdown stackÀ̶ó°íµµ Çϴµ¥, ½ºÅÃÀÇ top¿¡ »õ·Î¿î ¿ø¼Ò¸¦ »ðÀÔÇÏ´Â °ÍÀ» push¶ó ÇÏ°í, °¡Àå ÃÖ±Ù¿¡ »ðÀÔµÈ ¿ø¼Ò¸¦ ÀǹÌÇÏ´Â ½ºÅÃÀÇ topÀ¸·ÎºÎÅÍ ÇÑ ¿ø¼Ò¸¦ Á¦°ÅÇÏ´Â °ÍÀ» popÀ̶ó ÇÑ´Ù. ÀÌ¿Í °°Àº ½ºÅà ¿¬»óÀº Ç×»ó ½ºÅÃÀÇ top¿¡¼ ¹ß»ýÇϹǷΠtop Æ÷ÀÎÅÍÀÇ °ªÀ» 1¾¿ Áõ°¡ ¶Ç´Â °¨¼Ò½ÃÅ´À¸·Î½á ¼öÇàµÈ´Ù.
[³×À̹ö Áö½Ä¹é°ú] ½ºÅà [stack] (ÄÄÇ»ÅÍÀÎÅͳÝIT¿ë¾î´ë»çÀü, 2011. 1. 20., ÀÏÁø»ç)
7. movµµ push¶û ºñ½ÁÇѵ¥, Á¶±Ý ´Ù¸§
ex) push 12
=>´Â ½ºÅÿ¡ 12¶ó´Â °ªÀ» ³Ö´Â °Í
mov oo, 1000
=>oo¿¡´Ù°¡ 1000 ³Ö´Â °Í.
memcpy´Â ¸Þ¸ð¸® º¹»ç ÇÔ¼ö°í, strcpy´Â ¹®ÀÚ¿ Àüü º¹Á¦ ÇÔ¼ö¶ó C¾ð¾î¿¡¼ º¼ ¶§, ÀÌ°Í°ú °°´Ù°í ÇØÁÙ ¼ö ÀÖÀ» °Í °°´Ù.
8. ¾î¼Àºí¸®´Â ´Ü¼ø
->´Ü¼øÇÔ¿¡¼ ¾î·Á¿òÀÌ ³ª¿È.
C¾ð¾î·Î´Â ½±°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¸Å¿ì ±æ°Ô Ç¥ÇöµÉ ¼ö ¹Û¿¡ ¾øÀ¸´Ï±î.
9. ·¹Áö½ºÅÍ
IA-32ÀÇ ¹ü¿ë ·¹Áö½ºÅÍ´Â ÃÑ 8°³, ·¹Áö½ºÅ͸¦ 'º¯¼ö'¶ó°í »ý°¢ÇÏÀÚ. CPU°¡ »ç¿ëÇÏ´Â º¯¼ö¶ó°í.
¿¬»ê ·¹Áö½ºÅÍ·Î EAX, EDX, ECX, EBX°¡ ÀÖÀ¸¸ç ÁÖ¼Ò ·¹Áö½ºÅÍ·Î ESI EDIµîÀÌ Á¸ÀçÇÑ´Ù.
9-1. ¿¬»ê ·¹Áö½ºÅÍ
EAX : »ê¼ú °è»êÀ» Çϸç, ¸®ÅÏ°ª(ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö¿¡¼ return ¹®Àº ÇöÀçÀÇ ÇÔ¼ö¿¡¼ °ªÀ̳ª ÁÖ¼Ò¸¦ ¹ÝȯÇÒ ¶§ »ç¿ëÇÑ´Ù.)À» Àü´ÞÇÑ´Ù.
°¡Àå ¸¹ÀÌ ¾²´Â ·¹Áö½ºÅÍ. ¿¬»ê¿¡¼ »ç¿ëµÈ´Ù.
EAXÀÇ A°¡ AccumulatorÀÇ ¾àÀÚÀÌ´Ù.
EDX : EAX¿Í °°ÀÌ ¿¬»ê¿¡ ÀÌ¿ëÇϵÇ, ¸®ÅÏ °ªÀÇ ¿ëµµ·Î »ç¿ëµÇÁö ¾Ê´Â´Ù.
ECX : ¹Ýº¹¹®À» »ç¿ëÇÒ ¶§, ¹Ýº¹¿¡¼ Å»ÃâÇϱâÀ§ÇÑ ¿ªÇÒÀÌ ÇÊ¿äÇÏ´Ù. Á¶°ÇÀ» ¼³Á¤ÇÏ°í (i<10) ±× Á¶°ÇÀ» Áõ°¡½ÃÅ°´Â Ä«¿îÆÃ(i++)À» ÅëÇØ
¹Ýº¹¹®À» Áß´ÜÇÏ°í Å»ÃâÇÏ°Ô µÈ´Ù. ¾î¼Àºí¸®¿¡¼ »ç¿ëµÇ´Â Ä«¿îÆÃÀ̶ó ºÎ¸¦ ¼ö ÀÖ´Â ECX´Â óÀ½ Ãʱ⠰ª¿¡¼ 1¾¿ °¨¼ÒÇÏ°í, Ä«¿îÅÍ(i)°¡ 0ÀÌ µÉ ¶§, ¹Ýº¹¹®À» Áß´ÜÇÑ´Ù.
C°¡ countÀÇ ¾àÀÚÀÌ´Ù.
EBX : ÀÇ¹Ì ¾ø´Ù. ºÎÁ·Çؼ °ø°£ÀÌ ´õ ÇÊ¿äÇÒ ¶§, »ç¿ëÇÑ´Ù.
9-2. ÁÖ¼Ò ·¹Áö½ºÅÍ
ESI : ½ÃÀÛÁö À妽º
EDI : ¸ñÀûÁö À妽º
ESIÀÇ °ªÀ» EDI·Î º¹»çÇÑ´Ù°í »ý°¢ÇÏ¸é ½¬¿ò. (S¿Í D°¡ Source¿Í DestinationÀÇ ¾àÀÚ.)
9-3. ¼¼ºÎ(ÇÏÀ§) ·¹Áö½ºÅÍ
AX : 16ºñÆ®(2¹ÙÀÌÆ®)
AH : 8ºñÆ®(1¹ÙÀÌÆ®)
AL : 8ºñÆ®(1¹ÙÀÌÆ®)
Ex) EAX°¡ 0xabcdefgh¶ó¸é
EAXÀÇ AX´Â efgh, AH´Â de, ALÀº gh´Ù.
Ã߽Š: »¡¸® À¯Ä¡¿ø»ý¿¡¼ Å»ÃâÇϸé ÁÁ°Ú´Ù.
¹º°¡ ¿À·ùÀÖÀ¸¸é ¸»ÇØÁֽʽÿÀ!!!
Âü°í : ¸®¹ö½º ¿£Áö´Ï¾î¸µ ¹ÙÀ̺í. À§Å°¹é°ú
|
Hit : 8442 Date : 2017/02/21 11:59
|