¦È¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦Â
¦¢ ¢Æ¢Ç¢È¢Ç¢Æ ÇíÄ¿°¡ µÇÀÚ!!!! (6) ¢Æ¢Ç¢È¢Ç¢Æ ¦¢
¦¢ (¾î¼Àºí¸® ¾ð¾î¿¡ ´ëÇÑ °Á (4)) ¦¢
¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©
¦¢ Copyright 1993, DimoSoft Á¦ÀÛ : ±è¿µºó(ÑÑç´Þ¯)¦¢
¦Æ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦Ä
¡¡ º» ÀÚ·á´Â ¾î´À ´©±¸µµ ´Ù¸¥ °÷¿¡ °è½Ã¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù. ¡Å¡Å
¡¡ º» ÀÚ·áÀÇ ³»¿ëÀ» ÀοëÀ» ÇÏ¿´À» °æ¿ì °è½Ã¸¦ ÇÏ¿©¾ß ÇÕ´Ï´Ù. ¡Å¡Å ÀÌ ±ÛÀº ¹Ù·Î ¿¬´Þ¾Æ ¿Ã¶ó°¡´Â °ÍÀÔ´Ï´Ù.¾î¼Àºí¸®¾î´Â ´ÙÀ½ÀÌ ¸¶Áö¸·ÀÔ´Ï´Ù.±×¸®
°í´Â ¾à¼ÓÀ» ÇÑ´ë·Î µð¹ö°Å¹× ¿©·¯°¡Áö ºÐ¼®ÇϰڽÀ´Ï´Ù.Çϵå¿þ¾î¸¦ Á¦¾î¸¦ ÇÏ´Â ºÎ
ºÐÀÌ ¸¹½À´Ï´Ù.´ÙÀ½ºÎÅÍ´Â ¾Ï±â¸¦ ÇÒ °ÍÀÌ ¸¹À» °ÍÀÔ´Ï´Ù.
¡×6.½ºÆ®¸µ ¸í·É
£Ü£Ò£Å£Ð (Repeat Prefix)
(±â´É) ½ºÆ®¸µ ¿ÀÆÛ·¡À̼Ç(MOVS,CMPS,SCAS)À» ¼·Î ÀÌ¿ëÇϰí,½ºÆ®¸µ
¿ÀÆÛ·¡À̼ÇÀ» 1ȸ ½ÇÇà ÇÒ ¶§¸¶´Ù CX¸¦ µðÅ©¸®¸ÕÆ®Çϰí,CX ³»
ÀÇ Ä«¿îÅͰ¡ Á¦·Î·Î µÉ ¶§±îÁö ¹Ýº¹ÇÑ´Ù. (Á¶ÀÛ) CX ¨ö 0 »çÀÌ ; ½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀÇ ÈÄ¼Ó ¹ÙÀÌÆ®¸¦ ½ÇÇà
ÇÑ´Ù.
CX ¡ç CX - 1 ;Ç÷¡±×¿¡¼ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù. (Çü½Ä) REP (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) F3 £Ü£Ò£Å£Ð£Å (Repeat string operation while equal)
£Ò£Å£Ð£Ú (Repeat string operation while zero) (±â´É) ½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀÇ SCAS (B/W)¶Ç´Â CMPS (B/W)¿Í ¼·Î ÀÌ
¿ëÀ» ÇÒ ¼ö ÀÖ´Ù.½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀ» 1ȸ ½ÇÇàÇÒ ¶§¸¶´Ù CX
¸¦ µðÅ©¸®¸ÕÆ®Çϰí, ¶Ç ZF¸¦ Á¶»çÇÑ´Ù.CX = 0 ¶Ç´Â ZF = 1·Î
µÉ ¶§±îÁö ½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀ» ¹Ýº¹ÇÑ´Ù. (Á¶ÀÛ) CX = 0 ¶Ç´Â ZF = 1 ÀÌ µÉ ¶§±îÁö ´ÙÀ½ ¸í·ÉÀ» ¹Ýº¹ÇÑ´Ù.
(Çü½Ä) REPE (no operands)
REPZ (no operands) (Ç¥Çö ¹üÀ§) ´ÜÀÏ ÄÚµå
(Äڵ尪) F3 £Ü£Ò£Å£Ð£Î£Å (Repeat string operation while not equal)
£Ò£Å£Ð£Î£Ú (Repeat string operation while not zero) (±â´É) ½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀÇ SCAS (B/W)¶Ç´Â CMPS (B/W)¿Í ¼·Î ÀÌ
¿ëÀ» ÇÒ ¼ö ÀÖ´Ù.½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀ» 1ȸ ½ÇÇàÇÒ ¶§¸¶´Ù CX
¸¦ µðÅ©¸®¸ÕÆ®Çϰí, ¶Ç ZF¸¦ Á¶»çÇÑ´Ù.CX = 0 ¶Ç´Â ZF = 0·Î
µÉ ¶§±îÁö ½ºÆ®¸µ ¿ÀÆÛ·¡À̼ÇÀ» ¹Ýº¹ÇÑ´Ù. (Á¶ÀÛ) CX = 0 ¶Ç´Â ZF = 0 ÀÌ µÉ ¶§±îÁö ´ÙÀ½ ¸í·ÉÀ» ¹Ýº¹ÇÑ´Ù.
(Çü½Ä) REPNE (no operands)
REPNZ (no operands) (Ç¥Çö ¹üÀ§) ´ÜÀÏ ÄÚµå
(Äڵ尪) F2 £Ü£Í£Ï£Ö£Ó (Move String,Byte or Word)
(±â´É) ½ºÆ®¸µ ±âº» ¿ÀÆÛ·¡À̼Ç,±âº»ÀûÀ¸·Î REP ÇÁ¸®ÇȽº¿Í ÇÔ²²
½ÇÇàÇÑ´Ù.DS:SI¿¡¼ ÁöÁ¤µÈ ¼Ò½º ½ºÆ®¸µÀ» ES:DI¿¡¼ ÁöÁ¤µÈ
¸Þ¸ð¸® ¿µ¿ªÀ¸·Î Àü¼ÛÇÑ´Ù.DF Ç÷¡±× °ª¿¡ µû¶ó¼ DI¿Í SI¸¦
1 ¶Ç´Â 2Áõ°¨ÇÑ´Ù.REP¸¦ ºÙÀÌ¸é ¹Ýº¹ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
½ºÆ®¸µ ¿ä¼ÒÀÇ Å©±â(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)¸¦ "B" ¶Ç´Â "W"ÀÇ
¼ÇȽº¸¦ ºÙ¿© ³ªÅ¸³»¸é ¸í·É ¿ÀÆÛ·£µå¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.
(MOVSB,MOVSW) (Á¶ÀÛ)
¡Ü ¹ÙÀÌÆ® ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
(DI) ¡ç (SI)
DF = 0 À̸é SI ¡ç SI + 1,DI ¡ç DI + 1
DF = 1 À̸é SI ¡ç SI - 1,DI ¡ç DI - 1
¡Ü ¿öµå ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
(DI) ¡ç (SI)
DF = 0 À̸é SI ¡ç SI + 2,DI ¡ç DI + 2
DF = 1 À̸é SI ¡ç SI - 2,DI ¡ç DI - 2
¡Ü ¹Ýº¹ ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
CX = 0 ·Î µÉ ¶§±îÁö ½ÇÇàÇÑ´Ù.
(DI) ¡ç (SI)
CX ¡ç CX - 1 (Ç÷¡±×´Â º¯ÈÇÏÁö ¾ÊÀ½)
DFÀÇ °ª¿¡ ÀÇÇØ¼ SI,DIÀÇ °ªÀ» Áõ°¨ÇÑ´Ù. (Çü½Ä) MOVS dest-string,source-string
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1010010w £Ü£Ã£Í£Ð£Ó (Compare String,byte or word)
(±â´É) ½ºÆ®¸µ ±âº» ¿ÀÆÛ·¡À̼Ç,±âº»ÀûÀ¸·Î REP ÇÁ¸®ÇȽº¿Í ÇÔ²²
½ÇÇàÇÑ´Ù.ES:SI¿¡¼ ÁöÁ¤µÈ ¼Ò½º ½ºÆ®¸µÀ» DS:DI¿¡¼ ÁöÁ¤µÈ
¸Þ¸ð¸® ¿µ¿ªÀ¸·Î ºñ±³ÇÑ´Ù.(À̶§ Ç÷¡±×¸¸ÀÌ º¯ÈÇÏ°í ¿ÀÆÛ
·£µåÀÇ ³»¿ëÀº º¯È ÇÏÁö ¾Ê´Â´Ù.DF Ç÷¡±× °ª¿¡ µû¶ó¼ DI
¿Í SI¸¦ 1 ¶Ç´Â 2Áõ°¨ÇÑ´Ù).REP¸¦ ºÙÀÌ¸é ¹Ýº¹ ½ÇÇàÇÒ ¼ö ÀÖ
´Ù.
½ºÆ®¸µ ¿ä¼ÒÀÇ Å©±â(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)¸¦ "B" ¶Ç´Â "W"ÀÇ
¼ÇȽº¸¦ ºÙ¿© ³ªÅ¸³»¸é ¸í·É ¿ÀÆÛ·£µå¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.
(CMPSB,CMPSW) (Á¶ÀÛ)
¡Ü ¹ÙÀÌÆ® ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
FLAGS ¡ç (SI) - (DI)
DF = 0 À̸é SI ¡ç SI + 1,DI ¡ç DI + 1
DF = 1 À̸é SI ¡ç SI - 1,DI ¡ç DI - 1
¡Ü ¿öµå ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
FLAGS ¡ç (SI) - (DI)
DF = 0 À̸é SI ¡ç SI + 2,DI ¡ç DI + 2
DF = 1 À̸é SI ¡ç SI - 2,DI ¡ç DI - 2
¡Ü ¹Ýº¹ ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
CX = 0 ·Î µÉ ¶§±îÁö ½ÇÇàÇÑ´Ù.
FLAGS ¡ç (SI) - (DI)
CX ¡ç CX - 1 (Ç÷¡±×´Â º¯ÈÇÏÁö ¾ÊÀ½)
DFÀÇ °ª¿¡ ÀÇÇØ¼ SI,DIÀÇ °ªÀ» Áõ°¨ÇÑ´Ù.
REPÀÇ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â °æ¿ì´Â ½ÇÇàÀ» ÁßÁöÇÑ´Ù. (Çü½Ä) CMPS string
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1010011w £Ü£Ó£Ã£Á£Ó (Scan String,Byte or Word)
(±â´É) ½ºÆ®¸µ ±âº» ¿ÀÆÛ·¡À̼Ç,±âº»ÀûÀ¸·Î REP ÇÁ¸®ÇȽº¿Í ÇÔ²²
½ÇÇàÇÑ´Ù.ES:SI¿¡¼ ÁöÁ¤µÈ ¼Ò½º ½ºÆ®¸µÀ» AX ¶Ç´Â ALÀ» ºñ
±³ÇÏ¸é¼ scanÇÏ°í ºñ±³°á°ú¸¦ Ç÷¡±×¿¡ ¹Ý¿µ½ÃŲ´Ù.DF ÇÃ
·¡±× °ª¿¡ µû¶ó¼ DI¿Í SI¸¦ 1 ¶Ç´Â 2Áõ°¨ÇÑ´Ù.REP¸¦ ºÙÀÌ
¸é ¹Ýº¹ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
Á¶°ÇÀÌ ºÙÀº ÇÁ¸®ÇȽº¸¦ ºÙÈ÷¸é DI´Â AX/AL°ú ÀÏÄ¡ ¶Ç´Â
ÀÏÄ¡ÇÏÁö ¾ÊÀº ¿ä¼ÒÀÇ ´ÙÀ½À» ³ªÅ¸³½´Ù.½ºÆ®¸µ ¿ä¼ÒÀÇ Å©±â
(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)¸¦ "B" ¶Ç´Â "W"ÀÇ ¼ÇȽº¸¦ ºÙ¿© ³ªÅ¸
³»¸é ¸í·É ¿ÀÆÛ·£µå¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.(SCASB,SCASW) (Á¶ÀÛ)
¡Ü ¹ÙÀÌÆ® ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
FLAGS ¡ç (DI) - AL
DF = 0 À̸é DI ¡ç DI + 1
DF = 1 À̸é DI ¡ç DI - 1
¡Ü ¿öµå ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
FLAGS ¡ç (DI) - AX
DF = 0 À̸é DI ¡ç DI + 2
DF = 1 À̸é DI ¡ç DI - 2
¡Ü ¹Ýº¹ ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
CX = 0 ·Î µÉ ¶§±îÁö ½ÇÇàÇÑ´Ù.
FLAGS ¡ç (DI) - AL or AX
CX ¡ç CX - 1
DFÀÇ °ª¿¡ ÀÇÇØ¼ SI,DIÀÇ °ªÀ» Áõ°¨ÇÑ´Ù.
REPÀÇ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â °æ¿ì´Â ½ÇÇàÀ» ÁßÁöÇÑ´Ù. (Çü½Ä) SCAS destination,count
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1010111w £Ü£Ì£Ï£Ä£Ó (Load String,Byte or Word)
(±â´É) ½ºÆ®¸µ ±âº» ¿ÀÆÛ·¡À̼Ç,DS:SI¿¡¼ ÁöÁ¤µÈ ½ºÆ¼¸µÀÇ ¿ä¼Ò¸¦
AX ¶Ç´Â AL¿¡ ·ÎµåÇÑ´Ù.DFÀÇ °ª¿¡ µû¶ó¼ SI¸¦ 1 ¶Ç´Â 2Áõ°¨
ÇÑ´Ù.ÀÌ ¸í·É¾î´Â AX ¶Ç´Â AL¿¡ ·ÎµåµÈ µ¥ÀÌŸ¸¦ ó¸®ÇØ¾ß ÇÏ
¹Ç·Î LOOP³ª REP ÇÁ¸®ÇȽº¿Í ÇÔ²² »ç¿ëÇÏÁö ¾Ê´Â´Ù.
½ºÆ®¸µ ¿ä¼ÒÀÇ Å©±â(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)¸¦ "B" ¶Ç´Â "W"ÀÇ ¼
ÇȽº¸¦ ºÙ¿© ³ªÅ¸³»¸é ¸í·É ¿ÀÆÛ·£µå¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.
(LODSB,LODSW) (Á¶ÀÛ)
¡Ü ¹ÙÀÌÆ® ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
AL ¡ç (SI)
DF = 0 À̸é SI ¡ç SI + 1
DF = 1 À̸é SI ¡ç SI - 1
¡Ü ¿öµå ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
AX ¡ç (SI)
DF = 0 À̸é SI ¡ç SI + 2
DF = 1 À̸é SI ¡ç SI - 2 (Çü½Ä) LODS Source-string
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1010110w £Ü£Ó£Ô£Ï£Ó (Store String,Byte or Word)
(±â´É) ½ºÆ®¸µ ±âº» ¿ÀÆÛ·¡À̼Ç,±âº»ÀûÀ¸·Î REP ÇÁ¸®ÇȽº¿Í ÇÔ²²
½ÇÇàÇÑ´Ù.AX/AlÀÇ ³»¿ëÀ» DI¿¡ ÀÇÇØ¼ ÁöÁ¤µÈ ¸Þ¸ð¸®·Î Àü
¼Û.DF Ç÷¡±× °ª¿¡ µû¶ó¼ DI¿Í SI¸¦ 1 ¶Ç´Â 2Áõ°¨ÇÑ´Ù.REP
¸¦ ºÙÀÌ¸é ¹Ýº¹ ½ÇÇàÇÒ ¼ö ÀÖ´Ù.½ºÆ®¸µÀ» º¸ÃæÇÒ ¼ö ÀÖ´Ù.
½ºÆ®¸µ ¿ä¼ÒÀÇ Å©±â(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)¸¦ "B" ¶Ç´Â "W"ÀÇ
¼ÇȽº¸¦ ºÙ¿© ³ªÅ¸³»¸é ¸í·É ¿ÀÆÛ·£µå¸¦ »ý·«ÇÒ ¼ö ÀÖ´Ù.
(STOSB,STOSW) (Á¶ÀÛ)
¡Ü ¹ÙÀÌÆ® ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
DF = 0 À̸é DI ¡ç DI + 1
DF = 1 À̸é DI ¡ç DI - 1
¡Ü ¿öµå ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
DF = 0 À̸é DI ¡ç DI + 2
DF = 1 À̸é DI ¡ç DI - 2
¡Ü ¹Ýº¹ ¿ÀÆÛ·¡À̼ÇÀÇ °æ¿ì
DX = 0 ·Î µÉ ¶§±îÁö ½ÇÇàÇÑ´Ù.
(DI) ¡ç AL or AX
CX ¡ç CX - 1
DFÀÇ °ª¿¡ ÀÇÇØ¼ DIÀÇ °ªÀ» Áõ°¨ÇÑ´Ù.---------------------------