¾È³çÇϼ¼¿ä. 20ȸ °­ÁÂÀÔ´Ï´Ù. 2-2 µð¹ö±×ÀÇ »ç¿ë µð¹ö±×´Â º¸ÆíÀûÀ¸·Î ½±°Ô ¸¹ÀÌ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ƯÈ÷ DOS¿¡¼­ ±âº»ÀûÀ¸·Î Á¦°øµÈ´Ù´Â°Ô »ç¿ëÀÚ¸¦ ¸¹ÀÌ È®º¸ÇÑ ÀÌÀ¯ÀÏ °ÍÀÌ´Ù. 2-2-1 µµ¿ò¸»ÀÌ´Ù. Runs Debug, a program testing and editing tool. (½ÇÇà µð¹ö°Å,ÇÁ·Î±×·¥ÀÇ ±â´ÉÁ¡°Ë¹× ¼öÁ¤ ÇÁ·Î ±×·¥) DEBUG [[drive:][path]filename [testfile-parameters]] [drive:][path]filename Specifies the file you want to test. (´ç½ÅÀÌ Á¡°ËÇÏ°íÀÚ ÇÏ´Â °ÍÀ» ¾²´Â °ÍÀÓ) testfile-parameters Specifies command-line information requir- ed by the file you want to test. (µð¹ö°ÅÀÇ ÄÚ¸àµå ¶óÀο¡¼­ ½ÇÇàÀ» ¹Ù·Î ÇÒ ÄÚ¸àµåÀÇ ÀÔ·Â) After Debug starts, type ? to display a list of debugging commands. (µð¹ö°Å°¡ ½ÇÇàÇÑ ÈÄ,'?'¶ó°í Ä¡¸é µµ¿ò¸»ÀÌ È­¸é¿¡ ³ªÅ¸³À´Ï´Ù.) <µð¹ö°Å ÄÚ¸àµå ¾µ¼ö ÀÖ´Â ¸í·É¾îÀÇ Çؼ³> assemble A [address] ¾î¼Àºí ÁÖ¼Ò ;- ¾î¼Àºí¾î¸¦ Á÷Á¢Ä¡¸é ÇØ´ç ¹øÁö¿¡ ¹ø¿ªÀÌ µÇ¾î¼­ ¹Ù·Î µé¾î °£´Ù.(ÇØ´ç ¾ð¾î´Â 8086/8087/8088¸¸ÀÓ) compare C range address ºñ±³ ºñ±³°ª ÁÖ¼Ò ;- ºñ±³°ªÀ» °¡Áö°í ±×°ªÀÌ ³ª¿Ã¶§ ±îÁö ºñ±³¸¦ ÇÏ°í °°Àº °ª ÀÌ ÀÖÀ¸¸é ¸ØÃß°í ¾îµå·¹½º¸¦ È­¸é¿¡ ³ªÅ¸³½´Ù.½ÃÀÛÀº ÁöÁ¤ À» ÇØÁÖ´Â ÁÖ¼ÒºÎÅÍ ½ÃÀÛÀ» ÇÑ´Ù. dump D [range] ´ýÇÁ ¼ýÀÚ ;- ¼ýÀÚ¸¸Å­ÀÇ HEXÄڵ带 È­¸é¿¡ ³ªÅ¸³½´Ù. enter E address [list] ¿£ÅÍ ¾îµå·¡½º ¸ñ·Ï ;- ÁöÁ¤µÈ ÁÖ¼Ò¿¡¼­ ½ÃÀÛÀ» ÇÏ´Â ¸Þ¸ð¸®ÀÇ ºÎºÐÀ» ÁöÁ¤µÈ °ªÀ¸ ·Î ä¿ó´Ï´Ù. fill F range list ä¿ì±â Å©±â ä¿ï°ª(º¹¼ö Çã¿ë) ;- ä¿ï°ªÀ» Å©±â ¸¸Å­ ä¿î´Ù. go G [=address] [addresses] ½ÇÇà ÁÖ¼Ò Áß´ÜÁ¡ ;- ÇöÁ¦ ¸Þ¸ð¸®¿¡ ÀÖ´Â ÇÁ·Î±×·¥À» ½ÌÇàÇÕ´Ï´Ù. hex H value1 value2 16Áø¼ö ¼öÄ¡1 ¼öÄ¡2 ;- ÁöÁ¤ÇÑ µÎ ¸Å°³º¯¼ö »çÀÌ¿¡ 16Áø¼ö ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù. input I port ÀÔ·Â Æ÷Æ® ;- ÁöÁ¤ÇÑ Æ÷Æ®¿¡¼­ ÇѹÙÀÌÆ®¸¦ ÀÐ°í ³ªÅ¸³À´Ï´Ù. load L [address] [drive] [firstsector] [number] Àоîµå¸®±â ÁÖ¼Ò µå¶óÀÌºê ½ÃÀÛÀ§Ä¡ ¼öÄ¡ ;- ¸Þ¸ð¸®·Î ÆÄÀÏ ¶Ç´Â µð½ºÅ© ¼½Å͵éÀ» ÀоîµéÀÔ´Ï´Ù. move M range address À̵¿ ¹üÀ§ ÁÖ¼Ò ;- ¸Þ¸ð¸®ÀÇ ºí·°À» À̵¿ÇÕ´Ï´Ù. name N [pathname] [arglist] À̸§ °æ·Î ÆÄÀÏÀ̸§ ;- L(Àоîµå¸®±â) ¶Ç´Â W(¾²±â) ¸í·É¿¡ ´ëÇÑ ½ÇÇà ÆÄÀÏÀ̸§À» ÁöÁ¤Çϰųª ¼öÁ¤µÉ ½ÇÇà ÆÄÀÏ¿¡ ¸Å°³ º¯¼ö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. output O port byte Ãâ·Â Æ÷Æ® ¹ÙÀÌÆ®°ª ;- Ãâ·Â Æ÷Æ®¿¡ ÇÑ ¹ÙÀÌÆ®ÀÇ °ªÀ» º¸³À´Ï´Ù. proceed P [=address] [number] ¼öÇà ÁÖ¼Ò ¼öÄ¡ ;- ·çÇÁ,¹Ýº¹µÈ ¹®ÀÚ¿­ ¸í·É,¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ® ¶Ç´Â ¸ñÀû ´Þ¼ºÀ» À§ÇÑ ¼­ºê·çƾ(Subroutine) È£ÃâÀ» ¼öÇàÇϰųª ±×¿Ü ÀÇ ´Ù¸¥ ¸í·ÉÀ» ÃßÀûÀ» ÇÕ´Ï´Ù. quit Q Á¾·á ;- ÇöÀç ÀÛ¾÷ ÆÄÀÏÀ» ÀúÀåÇÏÁö ¾Ê°í µð¹ö±×¸¦ ³¡³À´Ï´Ù. register R [register] ·¹Áö½ºÅÍ ·¹Áö½ºÅÍ ;- Áß¾Óó¸®ÀåÄ¡(CPU)¿¡¼­ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ·¹Áö½ºÅÍ ³» ¿ëÀ» ³ªÅ¸³»°Å³ª ¹Ù²ß´Ï´Ù. search S range list ã±â ¹üÀ§ ¸ñ·Ï ;- Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¹ÙÀÌÆ® °ªÀÇ ¸ð¾çÀ» ÁöÁ¤µÈ ¹üÀ§¿¡ ¼­ ã½À´Ï´Ù. trace T [=address] [value] ÃßÀû ÁÖ¼Ò ¼öÄ¡ ;- ÇÑ ¸í·ÉÀ» ¼öÇàÇÏ°í ¸ðµç ·¹Áö½ºÅÍ,Ç÷¡±×,Çص¶µÈ ¸í·ÉÀ» ³ªÅ¸³À´Ï´Ù. unassemble U [range] ¿ª¾î¼Àºí ¹üÀ§ ;- ¹ÙÀÌÆ®¸¦ ¿ª¾î¼Àºí(Disassemble)ÇÏ°í,ÁÖ¼Ò¿Í ¹ÙÀÌÆ® °ªÀ» Æ÷ÇÔÇÏ¿© ±×¿¡ ´ëÀÀµÇ´Â ¿ø·¡ÀÇ ¹®ÀåÀ» ³ªÅ¸³À´Ï´Ù.¿ª¾î¼Àºí ÄÚµå´Â ¾î¼ÀºíµÈ ÆÄÀÏÀÇ ¸ñ·Ïó·³ º¸ÀÔ´Ï´Ù. write W [address] [drive] [firstsector] [number] ¾²±â ÁÖ¼Ò µå¶óÀÌºê ½ÃÀÛÀ§Ä¡ ¼öÄ¡ ;- µð½ºÅ©¿¡ ¼öÁ¤µÈ ÆÄÀÏÀ» ±â·ÏÇÕ´Ï´Ù.(ÀÌ ¸í·É¾î´Â ¸Å¿ì À§ Ç輺À» °¡Áö°í ÀÖ´Â °ÍÀ¸·Î »ç¿ë¿¡ ÁÖÀǸ¦ ¿äÇÕ´Ï´Ù.) 2-2-2 µð¹ö±×(DEBUG.EXE)ÀÇ »ç¿ë¿¹ÀÌ´Ù. µð¹ö±×ÀÇ ¸í·É¾î¿Í Àû¿ë ¿¹. ¸í·É¾î : ASSEMBLE ±â´É : 8086/8087/8088 ÇÁ·Î¼¼¼­ÀÇ ´Ï¸ð´Ð Äڵ带 Á÷Á¢ ±â¾ïÀåÄ¡·Î ¹ø¿ªÇØ ³Ö´Â´Ù. ¹®¹ý : A ¹®¹ýÀû ¿¡·¯°¡ ¹ß°ßµÇ¸é "^ Error"¶ó°í Ç¥½ÃµÇ°í ÇöÀçÀÇ ¾î¼Àºí¸® ¹øÁö°¡ ´Ù½Ã ³ªÅ¸³­´Ù. ¸ðµç ¼öÄ¡´Â 16Áø¼ö¿©¾ß ÇÏ¸ç ³× ÀÚ¸®±îÁö Çã¿ëµÈ´Ù. Á¢µÎ ´Ï¸ð´ÐÀº ±×°ÍÀÌ °¡¸®Å°´Â OpcodeÀÇ ¾Õ¿¡ ³ªÅ¸³ª ÀÖ¾î¾ß ÇÏÁö¸¸ ´Ù¸¥ ÁÙ¿¡ µé¾î ÀÖÀ» ¼öµµ ÀÖ´Ù. ¼¼±×¸ÕÆ®¸¦ º¯°æ½ÃÅ°´Â ´Ï¸ð´ÐÀº CS: DS: ES: SS: ÀÌ°í Far returnÀ» ³ªÅ¸³»´Â ´Ï¸ð´ÐÀº RETFÀÌ´Ù. ¶ÇÇÑ ½ºÆ®¸µ ó¸®¿ë ´Ï¸ð´ÐÀº ½ºÆ®¸µ ÀÇ ±æÀ̸¦ ¹Ýµå½Ã ¸í½ÃÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ¿öµå ½ºÆ®¸µÀ» ¿Å±æ ¶§´Â "MOVSW" Byte ½ºÆ®¸µÀ» ¿Å±æ ¶§´Â "MOVSB"¸¦ »ç¿ëÇÑ´Ù. ¾î¼Àºí·¯´Â SHORT, NEAR, FAR, JUMP¿Í CALL¸í·ÉÀ» ¸¸³ª¸é ÁöÁ¤ÇÏ´Â °÷ÀÌ ¾îµò°¡¿¡ µû¶ó ±× °Å¸®¸¦ ÀÚµ¿ÀûÀ¸·Î °è»êÇѴµ¥ NEAR³ª FAR ¿Í °°Àº Á¢µÎ¾î¸¦ ½á¼­ º¯°æ½Ãų ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é, 0100:0100 JMP 502 ; 2byte short jump 0100:0102 JMPNEAR 505(JMP NEAR 505) ; 3byte near jump 0100:0105 JMPFAR 50A (JMP FAR 50A) ; 5byte far jump NEAR´Â NE·Î ÁÙ¿© ¾µ ¼ö ÀÖÀ¸³ª, FAR´Â ÁÙ¿© ¾µ ¼ö ¾ø´Ù. DEBUG ÇÁ·Î±×·¥ÀÌ ¿ÀÆÛ·£µå°¡ ÁöÁ¤ÇÏ´Â °÷ÀÇ ±æÀÌ°¡ ¿öµåÀÎÁö BYTE ÀÎÁö ¾Ë ¼ö ¾øÀ» ¶§´Â "WORD PTR"À̳ª "BYTE PTR"°ú °°Àº Á¢µÎ¾î¸¦ »ç¿ëÇؼ­ ¸í½ÃÇØ Áà¾ßÇÑ´Ù. ¿¹¸¦ µé¸é, ¿¹: NEG BYTE PTR [128] DEC WO[SI} ¿©±â¼­ "WORD PTR" Àº "WO"·Î "BYTE PTR"Àº "BY"·Î ÁÙ¿© ¾µ ¼ö ÀÖ´Ù. (Debug¿¡¼­¸¸ °¡´É ÇÕ´Ï´Ù.) ¶ÇÇÑ ¿ÀÆÛ·£µå°¡ ±â¾ï ÀåÄ¡¸¦ °¡¸®Å°°í ÀÖ´ÂÁö ¶Ç´Â ÀÚ·á ÀÚ½ÅÀÎÁö ¾Ë ¼ö ¾øÀ» ¶§´Â º¸Åë »ç¿ëÇÏ´ø ¹æ½Ä¿¡ µû¶ó °ýÈ£¾È¿¡ ÀÖ´Â °ÍÀº ±â¾ïÀåÄ¡ ÁöÁ¤À¸·Î, ±×·¸Áö ¾ÊÀº °ÍÀº ÀÚ·á ÀÚ½ÅÀ¸·Î ±¸ºÐÇÑ´Ù. ¿¹¸¦ µé¸é, ´ÙÀ½°ú °°´Ù. ¿¹: mov ax, 19 ; 19¸¦ AX ·¹Áö½ºÅÍ¿¡ ¿Å±ä´Ù. mov ax, [19] ; ¾ïÀå¼Ò DS:0019¿¡ À§Ä¡ÇÏ´Â ¿öµåÇü ÀڷḦ AX¿¡ ¿Å±ä´Ù. ASSEMBLE ¸í·É¾î¿Í ÇÔ²² µÎ °³ÀÇ ÀÇ»ç ¸í·É¾î¸¦ ¾µ ¼ö Àִµ¥, DB ¸í·É¾î´Â byte °ªÀ» Á÷Á¢ ±â¾ï ÀåÄ¡¿¡´Ù ³ÖÀ» ¶§ ¾²ÀÌ°í DW ¸í·É¾î´Â ¿öµå °ªÀ» ³ÖÀ» ¶§ ¾²ÀδÙ. ¿¹¸¦ µé¸é, ¿¹: DB 1, 9, 9, 4, 'Jin Seong Park' DW 1111, 2222, 3333, "BACH" Assemble ¸í·É¾î´Â ¸ðµç ·¹Áö½ºÅÍ °£Á¢ ¸í·ÉÀ» Á¦°øÇÏ´Â µ¥ ¾Æ·¡¿Í °°ÀÌ ¾²ÀδÙ. add bx, 34[BP+2] pop [bp+di] push [bx] ¶ÇÇÑ ¸ðµç ¸í·É¾î¿¡ ´ëÇؼ­ ±× µ¿ÀǾ ÇÔ²² ¾µ ¼ö Àִµ¥ ´ÙÀ½¿¡ °°´Ù. loopz 100 loope 100 ja 333 jnbe 333 8087 ÇÁ·Î¼¼¼­¿ë ¸í·É¾î¸¦ ¾²·Á¸é, Wait³ª FWait¿Í °°Àº Á¢µÎ ¸í·ÉÀ» µå½Ã ¸í½ÃÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¸é, fwait fadd st, st(3) ; This line will assemble ; an FWAIT prefix ld tbyte ptr[bx] ; This line will not assemble ¸í·É¾î : COMPARE ±â ´É : ¿¡ ÀÇÇؼ­ ÁöÁ¤µÈ ±â¾ï ÀåÄ¡ÀÇ ÀϺκÐÀ»
¿¡¼­ºÎÅÍ ½ÃÀ۵Ǵ °°Àº Å©±âÀÇ ºÎºÐ°ú ºñ±³ÇÑ´Ù. ¹® ¹ý : C
µÎ ºÎºÐÀÌ °°À¸¸é ¾Æ¹«°Íµµ Ç¥½ÃµÇÁö ¾Ê°í, Ʋ¸®´Â ºÎºÐÀÌ ÀÖÀ» °æ¿ì´Â ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ³»¿ëÀ» º¸¿©ÁØ´Ù. ¿¹: ¾Æ·¡ÀÇ µÎ ¸í·É¾î´Â °°Àº °á°ú¸¦ º¸À̴µ¥ µÑ ´Ù 100¿¡¼­ 1FF±îÁöÀÇ ±â¾ïÀåÄ¡»óÀÇ ºí·°°ú 300¿¡¼­ 3FF±îÁöÀÇ ºí·°À» ºñ±³Ç϶ó´Â ¸í·É¾îÀÌ´Ù. C100, 1FF 300 or C100L100 300 ¸í·É¾î : DUMP ±â ´É : ¿¡ ÀÇÇؼ­ ÁöÁ¤µÈ ±â¾ïÀåÄ¡»óÀÇ Æ¯Á¤ ºÎºÐÀÇ ³»¿ëÀ» Ç¥½ÃÇÑ´Ù. ¹® ¹ý : D °¡ ÁÖ¾îÁ® ÀÖÀ¸¸é ±× ºÎºÐÀÇ ³»¿ëÀÌ Ç¥½ÃµÇ°í, ÁÖ¾îÁ® ÀÖÁö ¾ÊÀ¸¸é ÀÌ Àü¿¡ DUMP ¸í·É¾î¿¡ ÀÇÇؼ­ Ç¥½ÃµÇ¾ú´ø °÷ ´ÙÀ½ (ds:100) ¿¡¼­ºÎÅÍ 128byte°¡ Ç¥ »ç¿ëÀÚ ½ºÅà Æ÷ÀÎÅÍ´Â ÀÌ ¸í·É¾îÀÇ Ã³¸®¸¦ À§ÇØ Àû¾îµµ 6byte¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ GO ¸í·É¾î´Â iret ¸í·ÉÀ» ½á¼­ Å×½ºÆ®ÇÏ´Â ÇÁ·Î±×·¥À¸·Î jumpÇÏ°Ô µÈ´Ù. »ç¿ëÀÚ ½ºÅà Æ÷ÀÎÅÍ°¡ Á¤ÇØÁö°í »ç¿ëÀÚ Ç÷¹±×, ÄÚµå ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ, ÀνºÆ®·°¼Ç Æ÷ÀÎÅ͵îÀÌ »ç¿ëÀÚ ½ºÅÿ¡ ÀúÀåµÈ´Ù. µû¶ó¼­ »ç¿ëÀÚ ½ºÅÃÀÌ À߸ø µÇ¾î °Å³ª ³Ê¹« Á¼À¸¸é ¿ÀÆÛ·¹ÀÌÆà ½Ã½ºÅÛ ÀÌ ¸Á°¡Áø´Ù. ÀÎÅÍ·´Æ® ÄÚµå(0CCH)°¡ °¢ ÁßÁöÁ¡¿¡ »ðÀÔµÇ°Ô µÇ´Âµ¥ ÀÌ ÁßÁöÁ¡À» ³ªÅ¸³»´Â ¸í·ÉÀ» ¼öÇàÇÏ°Ô µÇ¸é, ¸ðµç ÁßÁöÁ¡ÀÌ ´Ù½Ã ¿ø·¡ÀÇ ¸í·ÉÀ¸·Î ȯ¿øµÈ´Ù. ±×·¯³ª ÁßÁöÁ¡¿¡¼­ ³¡³ªÁö ¾ÊÀ¸¸é ¿ø·¡ÀÇ ¸í·ÉÀ¸·Î ȯ¿øµÇÁö ¾Ê´Â´Ù. ¿¹: ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇϸé GCS:7777 ÇöÀç ±â¾ïÀå¼Ò³»¿¡ ÀÖ´Â ÇÁ·Î±×·¥ÀÌ CS¼¼±×¸ÕÆ®ÀÇ 7777h·ÎºÎÅÍ ¼öÇàÀ» ½ÃÀÛÇÏ°Ô µÇ¸ç ¼öÇàÀÌ ³¡³ª¸é ·¡Áö½ºÅÍ¿Í Ç÷¹±×ÀÇ ³»¿ëÀÌ Ç¥½ÃµÈ´Ù. ÁßÁöÁ¡À» ¸¸³ª¼­ ÀÏ´Ü ÇÁ·Î±×·¥ ½ÇÇàÀÌ Á¤ÁöµÈ ÈÄ ´Ù½Ã GO ¸í·É¾î¸¦ ÀÔ·ÂÇÏ¸é ´Ù½Ã ÁßÁöÁ¡¿¡¼­ ºÎÅÍ ½ÇÇàÀ» ÇÑ´Ù. DOSÀÇ DEBUG.EXE¿¡ ´ëÇØ ¿ÏÁÔÈ÷ öÀúÈ÷ ÇغÎÇÕ´Ï´Ù. ÀÏüÀÇ Áú¹®Àº »ç¾çÇÕ´Ï´Ù. ¸í·É¾î : HEX ±â ´É : ÁÖ¾îÁø µÎ ÆĶó¹ÌÅ͸¦ °¡Áö°í 16Áø¼ö¸¦ °è»êÇÑ´Ù. ¹® ¹ý : H ¸ÕÀú µÎ ÆĶó¹ÌÅ͸¦ ´õÇÏ¿© ±× ÇÕÀ» Ç¥½ÃÇÏ°í ±× ´ÙÀ½ ù ¹ø° ÆĶó¹ÌÅÍ¿¡¼­ µÎ ¹ø° °ÍÀ» »« ÈÄ ±× Â÷¸¦ °°Àº ÁÙ¿¡ Ç¥½ÃÇÑ´Ù. ¿¹: ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇϸé H 0 1 °á°ú°ª --> 0001 FFFF ¸í·É¾î : INPUT ±â ´É : ¿¡ ÀÇÇؼ­ ÁöÁ¤µÈ Æ÷Æ®·ÎºÎÅÍ 1byte¸¦ ÀÐ¾î µé¿© ±× °ªÀ» Ç¥½ÃÇÑ´Ù. ¹® ¹ý : I Æ÷Æ®ÀÇ ¹øÁö·Î´Â 16Bit¼ýÀÚ¸¦ ¾´´Ù. ¿¹: ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇϸé I2F8 ÁöÁ¤µÈ Æ÷Æ®¿¡ ÀÖ´Â µ¥ÀÌŸ °ªÀÌ 55h¶ó Çϸé, Debug ÇÁ·Î±×·¥Àº ÀÌ °ªÀ» ¹Þ¾ÆµéÀÌ°í 55 ¶ó°í Ç¥½ÃÇÑ´Ù. ¸í·É¾î : LOAD ±â ´É : ÆÄÀÏÀ» ÀÐ¾î µé¿© ±â¾ï Àå¼Ò³»¿¡ ·ÎµåÇÑ´Ù. ¹® ¹ý : L
[ ] BX:CX¿¡ ÀÐ¾î µéÀÏ ÆÄÀÏÀÇ Byte ¼ö¸¦ ³Ö´Â´Ù. ÆÄÀϸíÀº Debug ÇÁ·Î±×·¥À» ºÒ·¯ ¼öÇà½ÃÅ°´Â ¸í·É¾î¸¦ Ä¥ ¶§Ã³·³ Ç¥½ÃÇϰųª N ¸í·É¾î¸¦ ½á¼­ Ç¥½ÃÇÒ ¼ö Àִµ¥, ÀÌ µÎ ¹æ¹ý ¸ðµÎ CS:5C¿¡ ÀÖ´Â CONTROL ºí·°¿¡¼­ ¾²´Â Çü½Ä¿¡ µû¶ó ÆÄÀϸíÀ» ÁöÁ¤ÇØ ÁØ´Ù. ÆĶó¹ÌÅÍ ¾øÀÌ L ¸í·É¾î¸¦ Ä¡°Ô µÇ¸é CS:0100¿¡¼­ºÎÅÍ ÆÄÀÏÀÇ ³»¿ëÀÌ ·ÎµåµÇ¸ç BX:CX¿¡´Â ÀÐ¾î µéÀÎ Byte ¼ö°¡ ³Ö¾îÁø´Ù.
ÆĶó¹ÌÅÍ ´Â ÆÄÀÏÀ» ·ÎµåÇÏ´Â ½ÃÀÛ¹øÁö¸¦ ÁöÁ¤Çϸç, °¡ ÁÖ¾îÁö¸ç ÆÄÀÏÀÌ ¾Æ´Ï¶ó µð½ºÅ©»óÀÇ ¼½ÅÍ´ÜÀ§·Î ·Îµå°¡ ¼öÇàµÈ´Ù. ÀÇ ÁöÁ¤Àº 0=A; 1=B; 2=C¿Í °°ÀÌ ³ª°¡¸ç ù ¹ø° ÆĶó¹ÌÅÍ·Î ÁöÁ¤µÈ ¼½ÅÍ¿¡¼­ºÎÅÍ µÎ ¹ø° ÆĶó¹ÌÅÍ·Î ÁöÁ¤µÈ °¹¼ö ¸¸Å­ÀÇ ¼½ÅÍ°¡ ·ÎµåµÈ´Ù. ¿¹: ¾Æ·¡¿Í °°ÀÌ DEBUG ÇÁ·Î±×·¥À» ½ÃÀÛÇß´Ù°í °¡Á¤Çϸé C:\debug -nfile.com ÀÌÁ¦ file.comÀ̶õ ÆÄÀÏÀ» ·Îµå½ÃÅ°·Á¸é -L À̶ó°í ÇÏ¸é µÈ´Ù. ±×·¯¸é DEBUG ÇÁ·Î±×·¥¿¡ ÀÇÇؼ­ ·Îµå°¡ ¼öÇàµÇ°í ´Ù½Ã DEBUG ÇÁ·ÒÇÁÆ®°¡("-")°¡ ³ªÅ¸³­´Ù. ¾î¶² ÆÄÀÏÀÇ ÀϺκÐÀ̳ª ƯÁ¤ ·¹Äڵ常À» ·ÎµåÇÏ°í ½ÍÀ» ¶§ÀÇ ¿¹¸¦ µé¸é, L0BBA:0100 0 0F FF (Address) (Drive) (óÀ½ ÀÐÀ» ¼½ÅÍ) (255°³ÀÇ ·ÎµåÇÒ ¼½ÅÍ) DEBUG¿¡ ÀÇÇØ 15¹ø(0Fh) ·¹Äڵ忡¼­ ½ÃÀÛÇؼ­ 255°³(FFh)ÀÇ ·¹Äڵ尡 ¹øÁö 0BBA:0100¿¡¼­ºÎÅÍ ·Îµå°¡ ³¡³ª¸é ´Ù½Ã DEBUG ÇÁ·ÒÇÁÆ®°¡ ³ªÅ¸³­´Ù. ¸¸ÀÏ ÁÖ¾îÁø ÆÄÀÏÀÌ .exe È®Àå¸íÀ» °¡Áø ÆÄÀÏÀ̶ó¸é ±× ÆÄÀÏÀÇ Çì´õ¿¡ ¸í½ÃµÈ ·Îµå ¹øÁö¿¡ RelocationµÉ °ÍÀÌ°í
ÆĶó¹ÌÅÍ°¡ ÀÖ´Ù¸é ¹«½ÃµÈ´Ù. ÆÄÀÏÀÇ Çì´õ ÀÚüµµ ·ÎµåµÉ ¶¼´Â ºüÁö±â ¶§¹®¿¡ ½ÇÁ¦ ÆÄÀÏÀÇ Å©±â¿Í ±â¾ï Àå¼Ò¿¡ ·ÎµåµÈ Å©±â¿Í´Â ´Ù¸£´Ù. ¶ÇÇÑ ÁÖ¾îÁø ÆÄÀÏÀÌ .hex ÆÄÀÏÀ϶§¿¡´Â ±× ÆÄÀÏÀÇ ¸í½ÃµÈ ¹øÁö¿¡ ·ÎµåµÇ´Âµ¥
ÆĶó¹ÌÅÍ°¡ ÀÖ´Â °æ¿ì´Â ±× °ªÀ» ´õÇؼ­ ·ÎµåÇÒ ¹øÁö¸¦ °áÁ¤ÇÑ´Ù. ¼½Å͸¦ Á÷Á¢ ÀÐ¾î µé¿© ¿¡µðÆ®ÇÒ Á¤µµÀÇ ½Ç·ÂÀº µÇÁö ¾ÊÀº °ü°è ·Î ´õ ÀÌ»óÀÇ Ãß°¡ ¼³¸íÀ» ¸ø µå¸®°Ú±º¿ä. ´ë ºÎºÐ ÀÌ°ÍÀº ±×¸® ÇÊ¿äÇÏÁö ¾ÊÀ» °Í °°±º¿ä. ¸í·É¾î : MOVE ±â ´É : ¿¡ ÀÇÇØ ÁÖ¾îÁø ±â¾ï Àå¼ÒÀÇ ÀϺκÐÀ»
·Î ºÎÅÍ ½ÃÀ۵Ǵ °÷¿¡ ¿Å±ä´Ù. ¹® ¹ý : M
¿Å±ä Àå¼Ò¿Í ¿Å°ÜÁö´Â Àå¼Ò°¡ ÁßøµÇ´Â °æ¿ì¿¡µµ µ¥ÀÌŸ°¡ ¼Õ½ÇµÇ´Â ÀϾøÀÌ À̵¿ÀÌ ÁøÇàµÇ´Âµ¥ ÁßøµÇ¾î ¼Õ½ÇµÉ °¡´É¼ºÀÌ ÀÖ´Â °÷ºÎÅÍ ¸ÕÀú À̵¿µÈ´Ù. ¿Í
°¡ ÀÛÀº ¹øÁö¿¡¼­ Å« ¹øÁö·Î µÇ¾î ÀÖÀ¸¸é ºí·°ÀÇ µÞºÎºÐºÎÅÍ À̵¿ÀÌ ÁøÇàµÇ°í ¹Ý´ë·Î Å« ¹øÁö¿¡¼­ ÀÛÀº ¹øÁö·Î µÇ¾î ÀÖÀ¸¸é ¾ÕÂÊ¿¡¼­ ºÎÅÍ À̵¿ÀÌ ÁøÇàµÈ´Ù. ÀÌ M ¸í·É¾î¸¦ ¼öÇàÇÒ ¶§ ¿Å°ÜÁö´Â ºí·°¿¡´Â »õ·Î¿î µ¥ÀÌÅ͸¦ ½á ³Ö´Â°Í ÀÌ ¾Æ´Ï¹Ç·Î ±×´ë·Î ³²¾ÆÀÖ°Ô µÈ´Ù. µû¶ó¼­ ½ÇÁ¦ÀûÀ¸·Î ÇÑ ºÎºÐÀÇ ³»¿ëÀ» ´Ù¸¥ ºÎºÐ¿¡ º¹»çÇØ ³Ö´Â °Í°ú °°°Ô µÈ´Ù. ±×·¡¼­ À̵¿ÀÇ ¼ø¼­°¡ Áß¿äÇÑ °ÍÀÌ´Ù. ¿¹: ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇϸé MCS:0100 110 CS:500 DEBUG´Â CS:0100À» CS:0510¿¡, CS:10F¸¦ CS:50F¿¡ ÇÏ´Â ½ÄÀ¸·Î µ¥ÀÌÅ͸¦ º¹»çÇØ ³ª°£´Ù. ÀÌ·¯ÇÑ À̵¿ÀÇ °á°ú¸¦ º¸°í ½ÍÀ¸¸é M ¸í·É¿¡ »ç¿ëÇÑ
ÆĶó¹ÌÅ͸¦ °¡Áö°í D ¸í·É¾î¸¦ ¼öÇàÇÏ¸é µÈ´Ù. ¸í·É¾î : NAME ±â ´É : ÆÄÀϸíÀ» ÁöÁ¤ÇÑ´Ù. ¹® ¹ý : N [........]] N ¸í·É¾î´Â µÎ °¡Áö ±â´ÉÀ» ¼öÇàÇÑ´Ù. ù°´Â ´ÙÀ½¿¡ ¿Ã LOAD³ª WRITE ¸í·É¾î¿¡¼­ »ç¿ëµÉ ÆÄÀÏÀÇ À̸§À» ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. ±×·¡¼­ ÆÄÀϸíÀ» ÁöÁ¤ÇØ ³õÁö ¾Ê°í DEBUG¸¦ ½ÃÀÛÇß´õ¶óµµ µÚ¿¡ ¿øÇÏ´Â ÆÄÀÏÀ» ¾µ ¼ö ÀÖ°è µÈ´Ù. µÑ°´Â ÇöÀç µð¹ö±ëÇÏ°í ÀÖ´Â ÆÄÀÏ (ÇÁ·Î ±×·¥)¿¡ ÆĶó¹ÌÅÍ·Î ¾²ÀÌ´Â ÆÄÀϸíÀ» ÁöÁ¤ÇÏ´Â °ÍÀí·É¾î¸¦ ½ÇÇàÇÑ´Ù¸é ÇöÀç µð¹ö±ëÇÏ°í ÀÖ´Â ÆÄÀÏ qedit.exe°¡ file2.dat¶ó´Â À̸§À¸·Î ÀúÀåµÈ´Ù. ÀÌ¿Í °°Àº ¶æÇÏÁö ¾ÊÀº °á°ú¸¦ ÇÇÇÏ·Á¸é N ¸í·É¾î ¸¦ ¹Ýµå½Ã LOAD³ª WRITE ¸í·É¾î Á÷Àü¿¡ »ç¿ëÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. N ¸í·É¾î¸¦ »ç¿ëÇÏ¸é ³× ±ºµ¥ÀÇ ±â¾ï Àå¼Ò°¡ ¿µÇâÀ» ¹Þ°Ô µÇ´Âµ¥ ´ÙÀ½°ú °°´Ù. CS:5C ù ¹ø° ÆÄÀÏÀÇ FCB CS:6C µÎ ¹ø° ÆÄÀÏÀÇ FCB CS:80 ¸í·É¾î·Î ÁÖ¾îÁø ¹®ÀÚ¿­ÀÇ ¼ö CS:81 ¸í·É¾î·Î ÁÖ¾îÁø ¸ðµç ¹®ÀÚ¿­. N ¸í·É¾î¿¡ ù ¹ø° ÆĶó¹ÌÅÍ·Î ÁÖ¾îÁø ÆÄÀÏÀÇ FCB(File Control Block)°¡ CS:5C¿¡ ¸¸µé¾îÁö°í, µÎ ¹ø° ÆĶó¹ÌÅÍ°¡ ÁÖ¾îÁ³À¸¸é ±× ÆÄÀÏÀÇ FCB°¡ CS:6C¿¡ ¸¸µé¾îÁø´Ù. ±×¸®°í N ¸í·É¾î¸¦ Ä¥ ¶§ ÀÔ·ÂÇÑ ¹®ÀÚ ¼ö(Á¦ÀÏ ¾Õ¿¡ ÀÖ´Â N ¸í·É¾î Á¦¿Ü)°¡ CS:80¿¡ ±â·ÏµÇ¸ç ±×¶§ ÀÔ·ÂÇÑ ½ÇÁ¦ÀÇ ¹®ÀÚµéÀÌ CS:81¿¡¼­ºÎÅÍ ½ÃÀÛÇؼ­ Â÷·Ê·Î ÀúÀåµÈ´Ù. (¿ª½Ã ÀÌ °æ¿ì¿¡µµ N ¸í·É¾î Á¦¿Ü) ¿¹: DEBUG qedit.exe -Ntest.txt -G - À§ÀÇ °æ¿ì GO ¸í·É¾î´Â ±â¾ï Àå¼Ò¿¡ ÀÖ´Â ÆÄÀÏÀ» ´ÙÀ½°ú °°Àº ¸í·É¾î°¡ ÁÖ¾îÁø°Íó·³ ½ÇÇàµÈ´Ù. qedit.exe test.txt À§¿Í °°ÀÌ Çϸé DEBUG ÇÁ·Î±×·¥Àº 4F°ªÀ» Ãâ·Â Æ÷Æ® 2F8·Î º¸³½´Ù. ¸í·É¾î : QUIT ±â ´É : DEBUG ÇÁ·Î±×·¥ÀÇ ¼öÇàÀ» Á¾·á ¹® ¹ý : Q Q ¸í·É¾î´Â ÆĶó¹ÌÅ͸¦ ÇÏÁö ¾Ê´Â´Ù. ÀÌ ¸í·É¾î¿¡´Â Àç µð¹ö±ëÇÏ°í ÀÖ´ø ÇÁ·Î±×·¥À» µð½ºÅ©¿¡ ÀúÀåÇÏÁö ¾Ê°í ±×´ë·Î DEBUG ÇÁ·Î±×·¥ÀÇ ¼öÇàÀ» ³¡³½ ÈÄ DOS·Î µ¹¾Æ°£´Ù. ¸í·É¾î : REGISTER ±â ´É : ÇÑ °³ ÀÌ»óÀÇ CPU ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» Ç¥½ÃÇÑ´Ù. ¹® ¹ý : R ÀÌ ÁÖ¾îÁöÁö ¾ÊÀ¸¸é ·¹Áö½ºÅÍ save¿µ¿ªÀÇ ³»¿ëÀÌ ´ýÇÁµÇ°í, ¸ðµç ·¹Áö½ºÅÍ¿Í Ç÷¹±×ÀÇ ³»¿ëÀÌ Ç¥½ÃµÈ´Ù. ÇÑÆí À» ÁÖ°Ô µÇ¸é ±× ·¹Áö½ºÅÍÀÇ °ª PE NC_ ¿©±â¼­ ÀǹÌÀÖ´Â Ç÷¹±×ÀÇ °ªÀ» ¾Æ¹« ¼ø¼­·Î³ª ÁְԵǸé DEBUG ÇÁ·Î±×·¥Àº Ç÷¹±×ÀÇ ³»¿ëÀ» ¹Ù²Û ÈÄ DEBUG ÇÁ·ÒÇÁÆ®ÀÎ "-"¸¦ Ç¥½ÃÇÒ °ÍÀÌ´Ù. NV UP DI NG NZ AC PE NC_OVDNDIPLZRACPECY (Return) ÀÌÁ¦ ¿øÇÏ´Â ´ë·Î Ç÷¹±×°¡ ¹Ù²î¾ú´ÂÁö º¸·Á¸é R ¶Ç´Â RF ¸í·É¾î¸¦ ´Ù½Ã »ç¿ëÇÏ¸é µÈ´Ù. RF OV DN DI PL ZR AC PE CY_ ¸í·É¾î : SEARCH ±â ´É : ÁÖ¾îÁø ±â¾ïÀå¼Ò»óÀÇ ¿¡¼­ ¿Í °°Àº ½ºÆ®¸µ ÀÌ ÀÖ³ª °Ë»öÇÑ´Ù. ¹® ¹ý : S ´Â Çϳª ÀÌ»óÀÇ Byte°ªÀ¸·Î µÇ¾î Àִµ¥ °°Àº Byte°ªÀº ½ºÆäÀ̽º³ª Ä¿¸Ó·Î ºÐ¸®µÈ´Ù. °¡ µÎ °³ ÀÌ»óÀÇ Byte°ªÀ¸·Î ÀÌ·ç¾îÁ® ÀÖÀ» ¶§´Â Á¦ÀÏ Ã³À½¿¡ ÀÖ´Â ByteÀÇ ¹øÁö¸¸ÀÌ ±¸ÇØÁö°í ÇÑ °³ÀÇ Byte°ªÀ¸·Î µÇ¾î ÀÖÀ» °æ¿ì¿¡´Â »ó¿¡ ³ªÅ¸³­ ¸ðµç ¹øÁö°¡ ±¸ÇØÁø´Ù. ¿¹: ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇϸé SCS:100 110 45 ¾Æ·¡¿Í °°ÀÌ µð½ºÇ÷¹ÀÌ µÇ°Å³ª ¸¸¾à ÀÏÄ¡µÇ´Â °ªÀ̾ø´Ù¸é ´ÜÁö DEBUG ÇÁ·ÒÇÁÆ®¸¸À» Ç¥½ÃÇÒ °ÍÀÌ´Ù. 04EE:0104 04EE:010F - ¸í·É¾î : TRACE ±â ´É : ÇÑ ÀνºÆ®·°¼ÇÀ» ¼öÇàÇÑ ÈÄ ¸ðµç ·¹Áö½ºÅÍ¿Í Ç÷¹±×ÀÇ ³»¿ëÀÌ ¼öÇàµÈ ÀνºÆ®·°¼ÇÀ» Ç¥½ÃÇÑ´Ù. ¹® ¹ý : T [=
] [] =
°¡ ÁÖ¾îÁö¸é ±× ÁÖ¾îÁø ¹øÁö¿¡¼­ºÎÅÍ TRACE°¡ ¼öÇàµÇ¸ç °¡ ÁÖ¾îÁö¸é ±× °ª ¸¸Å­ÀÇ ´Ü°è¸¦ TraceÇÑ´Ù. ÀÌ ¸í·É¾î¿¡´Â 8086, 8088 ÇÁ·Î¼¼¼­ÀÇ Çϵå¿þ¾î Trace ±â´ÉÀ» ÀÌ¿ë ÇϹǷΠROM¿¡ µé¾î ÀÖ´Â ÀνºÆ®·°¼Çµµ TRACEÇÒ ¼ö ÀÖ´Ù. ¿¹: T ¶ó°í ¸í·É¾î¸¦ ÀÔ·ÂÇϸé DEBUG ÇÁ·Î±×·¥Àº ±× ÇÑ ÀνºÆ®·°¼ÇÀ» ¼öÇàÇÑ ÈÄ ·¹Áö½ºÅÍ¿Í Ç÷¹±×ÀÇ ³»¿ëÀ» Ç¥½ÃÇØ ÁØ´Ù. ÇöÀçÀÇ À§Ä¡°¡ 04EE:0113À̶ó ÇÑ´Ù¸é AX=0E00 BX=09FD CX=9FDA DX=10FF SP=1000 BP=0100 SI=0000 DI=0000 DS=04EE ES=04EE SS=04EE CS=04EE IP=0113 NV UP DI NG NZ AC PE NC 04EE:0113 CD21 INT 21 ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇϸé T=0113 10 DEBUG ÇÁ·Î±×·¥Àº 0113À¸·ÎºÎÅÍ ½ÃÀÛÇؼ­ 10h°³ÀÇ ÀνºÆ®·°¼Ç À» ½ÇÇàÇϸ鼭 °¢ ÀνºÆ®·°¼ÇÀÌ ³¡³¯ ¶§¸¶´Ù ·¹Áö½ºÅÍ¿Í Ç÷¹±×ÀÇ ³»¿ëÀ» Ç¥½ÃÇÑ´Ù. ÀνºÆ®·°¼ÇÀÌ ÁøÇàµÇ°í »õ·Î¿î Á¤º¸°¡ Ç¥½ÃµÉ ¶§¸¶´Ù È­¸éÀº Â÷·Ê´ë·Î ¿Ã¶ó°¡¸ç Áß°£¿¡ Á¤Áö½ÃÄÑ ³õ°í º¸°í ½ÍÀ¸¸é ¸¦ »ç¿ëÇÑ´Ù. ¸í·É¾î UNASSEMBLE ±â ´É : ±â¾ïÀå¼ÒÀÇ ³»¿ëÀ» ÀÐ¾î µé¿© ±×°ÍÀ» ´Ù½Ã ¼Ò½º ÇÁ·Î±×·¥ À¸·Î ¹Ù²ãÁØ´Ù. À̶§ ±× ¹øÁö¿Í ¸Þ¸ð¸®»óÀÇ °ªµµ Ç¥½ÃµÈ´Ù. ¹® ¹ý : U ÀÌ ¸í·É¾î¸¦ ¼öÇàÇÏ°í ³­ °á°ú´Â ¾î¼Àºí¸®¾î ÇÁ·Î±×·¥°ú ºñ½ÁÇÒ °ÍÀÌ´Ù. ÆĶó¹ÌÅ;øÀÌ U ¸í·É¾î¸¦ Ä¡¸é Àü¿¡ U ¸í·É¾î¿¡ ÀÇÇØ ¹ø¿ªµÇ´ø ´ÙÀ½¿¡¼­ºÎÅÍ 20h byte¸¸Å­ ´Ù½Ã ¹ø¿ªµÇ¸ç ¸¦ ÁöÁ¤ÇÏ¸é ±× ¿¡ Æ÷ÇԵǴ ¸ðµç ByteµéÀÌ ¹ø¿ªµÇ´Âµ¥ °¡
¸¸À¸·Î ÁÖ¾îÁö¸é ±× ¹øÁö¿¡¼­ºÎÅÍ 20h byte ¸¸Å­¸¸ ¹ø¿ªµÈ´Ù. ¿¹: ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇϸé U04EE:0100 L10 DEBUG ÇÁ·Î±×·¥Àº 04EE:0100¿¡¼­ºÎÅÍ 16Byte¸¦ ¹ø¿ªÇÑ´Ù. ±× °á°ú´Â ¾Æ·¡¿Í °°Àº Çü½ÄÀÏ °ÍÀÌ´Ù. 04EE:0100 206472 AND [si-72],ah 04EE:0103 69 DB 69 04EE:0104 7665 JBE 016B 04EE:0106 207370 AND [BP+DI-70],DH 04EE:0109 65 DB 65 04EE:010A 63 DB 63 04EE:010B 69 DB 69 04EE:010C 66 DB 66 04EE:010D 69 DB 69 04EE:010E 63 DB 63 04EE:010F 61 DB 61 ¾Æ·¡¿Í °°ÀÌ Çϸé, U04EE:0100 0108 04EE:0100 206472 AND [si-72],ah 04EE:0103 69 DB 69 04EE:0104 7665 JBE 016B 04EE:0106 207370 AND [BP+DI-70],DH ¸Þ¸ð¸®ÀÇ ³»¿ëÀÌ ¹Ù²î¸é ¿ø·¡ÀÇ ¼Ò½º ÇÁ·Î±×·¥ÀÇ ³»¿ë°ú ¹Ù²ï ³»¿ëÀÌ µð½º¾î¼Àºí¸®ÇÑ ³»¿ë°ú´Â ´Ù¸¦ °ÍÀÌ´Ù. µû¶ó¼­ ÀÌ U ¸í·É¾î¸¦ »ç¿ëÇϸé ÀÌ º¯È­¸¦ ½±°Ô ¼Ò½º ÇÁ·Î±×·¥¿¡ ¹Ý¿µ½Ãų ¼ö ÀÖ´Ù. ¸í·É¾î : WRITE ±â ´É : µð¹ö±ëÇÏ°í ÀÖ´Â ÆÄÀÏÀ» µð½ºÅ©¿¡ ÀúÀåÇÑ´Ù. ¹® ¹ý : W [
[ ]] ÆĶó¹ÌÅ;øÀÌ W ¸í·É¾î¸¦ ¼öÇàÇÏ¸é ¹Ì¸® BX:CX¿¡´Ù µð½ºÅ©·Î Ãâ·ÂÇÒ ÆÄÀÏÀÇ Byte¼ö¸¦ ±â·ÏÇØ ³õ¾Æ¾ß Çϸç ÆÄÀÏÀº CS:0100¿¡¼­ºÎÅÍ ½ÃÀÛÇÑ´Ù.
¸¸À» ÁöÁ¤ÇÏ¸é ±× ¹øÁö¿¡¼­ºÎÅÍ ÆÄÀÏÀÌ ½ÃÀ۵Ǵ °ÍÀ¸·Î µÈ´Ù. ¶ÇÇÑ LOAD³ª GO ¸í·É¾î¸¦ »ç¿ëÇÑ ÈÄ W ¸í·É¾î¸¦ ÆĶó¹ÌÅÍ ¾øÀÌ ¾²·Á¸é BX:CXÀÇ °ªÀ» ´Ù½Ã Á¤ÇØ¾ß ÇÑ´Ù. ¾î¶² ÆÄÀÏÀ» ·ÎµåÇؼ­ ¼öÁ¤À» °¡Çß´Ù ÇÏ´õ¶óµµ ±× ÀüüÀÇ ±æÀ̸¸ º¯ÇÏÁö ¾Ê¾Ò´Ù¸é À̸§À̳ª ½ÃÀÛ¹øÁö´Â ¹Ù²îÁö ¾Ê´Â´Ù´Â »ç½Ç¿¡ ÁÖ¸ñÇÑ´Ù. ÆÄÀϸíÀº DEBUG¸¦ ºÎ¸¦ ¶§ Áְųª N ¸í·É¾î¸¦ »ç¿ëÇؼ­ ÁöÁ¤ÇØ¾ß ÇÏ´Â µ¥ ÀÌ µÎ°¡Áö ¹æ¹ý¿¡ ÀÇÇؼ­ ÆÄÀÏÀ» ÁöÁ¤ÇÏ¸é ±× ÆÄÀϸíÀÌ CS:5C ¿¡ ÀÖ´Â FCB¿¡¼­ ¾²ÀÌ´Â Çü½Ä°ú °°ÀÌ ÁÖ¾îÁö°Ô µÈ´Ù. ´Â ÆÄÀÏÀÌ ¾²¿©Áú µð½ºÅ© µå¶óÀ̺긦 ÁöÁ¤ÇÏ¸ç ¾ÕÀÇ ´Â ½á ³Ö±â ½ÃÀÛÇÏ´Â ³í¸®Àû ·¹ÄÚµåÀÇ ¹øÈ£¸¦, µÚÀÇ ´Â ¾²¿©Áú ·¹ÄÚµå ¼ö¸¦ ³ªÅ¸³½´Ù. ##ÁÖÀÇ: ¹°¸®Àû ·¹ÄÚµå¹øÈ£¸¦ °¡Áö°í Àý´ë ¼½ÅÍ¿¡´Ù Ãâ·ÂÇÏ´Â °ÍÀº ¸Å:0100 ¿¡¼­ºÎÅÍ ½ÃÀ۵Ǵ ÆÄÀÏÀ» Áý¾î ³Ö´Â´Ù. Error ¸Þ¼¼Áö ---------- DEBUG ÇÁ·Î±×·¥À» »ç¿ëÇÏ´Â µ¿¾È ¾Æ·¡¿Í °°Àº ¿¡·¯ ¸Þ¼¼Áö¸¦ ¹ÞÀ» ¼ö Àִµ¥ ¿¡·¯ ¸Þ¼¼Áö°¡ ³ªÅ¸³ª¸é ÇöÀç ¼öÇà ÁßÀÌ´ø ¸í·É¾î´Â Áß´ÜµÇ¾î ¹ö¸°´Ù. ±×·¯³ª DEBUG ÇÁ·Î±×·¥ ÀÚü´Â ³¡³ªÁö ¾Ê´Â´Ù. ______________________________________________________________ | ¿¡·¯ ÄÚµå | Á¤ ÀÇ | |___________|__________________________________________________| | |À߸øµÈ Ç÷¹±× °ª | | BF |À߸øµÈ °ªÀ» °¡Áö°í Ç÷¹±×ÀÇ °ªÀ» ¹Ù²Ù·Á°í ÇÒ ¶§ | | |¹ß»ýÇÑ´Ù. | |___________|__________________________________________________| | |³Ê¹« ¸¹Àº ÁßÁöÁ¡ | | |GO ¸í·É¾î¿¡¼­ ¿­ °³ ÀÌ»óÀÇ ÁßÁöÁ¡À» ÁöÁ¤ÇßÀ» °æ¿ì | | BP |¹ß»ýÇÑ´Ù. ¿­ °³ ÀÌÇÏ·Î ÁßÁöÁ¡ÀÇ °¹¼ö¸¦ ÁÙ ¿© ´Ù½Ã| | |GO ¸í·É¾î¸¦ ¼öÇàÇÑ´Ù. | |___________|__________________________________________________| | |À߸øµÈ ·¹Áö½ºÅÍ ÁöÁ¤ | | BR |Çã¿ëµÇÁö ¾Ê´Â ·¹Áö½ºÅÍ À̸§À» °¡Áö°í Register¸í·É | | |¾î¸¦ ½èÀ» °æ¿ì¿¡ ¹ß»ýÇÑ´Ù. | |___________|__________________________________________________| | |µÎ °³ ÀÌ»óÀÇ Ç÷¹±×°ª | | |ÇÑ °³ÀÇ Ç÷¹±×¿¡ ¼­·Î ¹Ý´ëµÇ´Â µÎ°¡Áö Ç÷¹±× °ªÀ»| | DF |ÁÖ¾úÀ» °æ¿ì¿¡ ¹ß»ýÇÑ´Ù. RF ¸í·É¿¡¼­´Â Ç÷¹±×¿¡ | | |ÇÑ °¡Áö °ª ¸¸ ÁÖ¾î¾ß ÇÑ´Ù. | |___________|__________________________________________________| ±×·³ °£´ÜÇÑ ½Ç½ÀÀ» Çغ¸°Ú½À´Ï´Ù. ¸¸¹°»ó 2.0 µ¥¸ðÆÇÀ» »ç¿ëÇϸé 10Ãʵ¿¾È ±â´Ù¸®¶ó´Â ¸Þ½ÃÁö°¡ ¶å´Ï´Ù. ÀÌ°ÍÀº Àü¿¡ ¸»ÇÑ cshow ÀÇ 15ÃÊ ¸Þ½ÃÁö¿Í ¾ÆÁÖ À¯»çÇÕ´Ï´Ù. ÀÌ°ÍÀ» µð¹ö±×·Î Àâ¾Æº¸°Ú½À´Ï´Ù. debug seemain.exe l g ÇÏ°í¼­ Ctrl+BreakÅ°¸¦ ´©¸£¸é Ä«¿îÅ͸¦ ¼¼´øÁß¿¡ ºüÁ® ³ª¿É´Ï´Ù. ¹Ø¿¡ º¸¸é Cmp ºñ±³ JZ 01AE ÀÌ·± ¸Þ½ÃÁö°¡ ¶å´Ï´Ù. XXXX:036B ¹øÁöÀÔ´Ï´Ù. ±×°÷À» 9090(NOP)·Î ¿ì¸é µü Çѹø¸¸ Ä«¿îÅ͸¦ ¼Á´Ï´Ù. °£´ÜÇÏÁÒ? ¿©±âÀÇ µð¹ö±× ¸Þ´º¾óÀ» Àß Àо¸é ½±°Ô ÀÌÇØ°¡ °¥°Ì´Ï´Ù. **´ÙÀ½Àº Debug Script ÆÄÀÏÀ» ÀÌ¿ëÇÑ ÆÐÄ¡ ÇÁ·Î±×·¥ ÀÛ¼ºÀÔ´Ï´Ù. ¾Æ·¡ ¿¹Á¦´Â ÆÐÄ¡ ÇÁ·Î±×·¥ÀÌ ¾î¶² ½ÄÀ¸·Î ±¸¼ºµÇ¾î Áö³ª¸¦ ¾Ë·ÁÁÖ±â À§ÇÑ °ÍÀÔ´Ï´Ù. µð¹ö±×/¹èÄ¡¸¸ ¾Ë¸é °£´ÜÇÑ ÆÐÄ¡´Â ³ë·Â ¿©ÇÏ¿¡ µû¶ó ÀÛ¼º °¡´ÉÇÕ´Ï´Ù. µð¹ö±× ½ºÅ©¸³Æ® ÆÄÀÏÀ» ÀÌ¿ëÇÏ¸é ¾ÆÁÖ ÀûÀº ¿ë·®À¸·Î ÆÐÄ¡½ÃÅ°´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. µð¹ö±×ÀÇ ±âº»ÀûÀÎ ¸í·É¾î¿Í ¹èÄ¡ÆÄÀÏ¿¡ ´ëÇÑ ±âÃÊÁö½Ä¸¸ ¾Ë¸é ´©±¸³ª ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÆÐÄ¡ ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ·Á¸é ÀÌ°Í ¿ª½Ã ¾î´À ºÎºÐÀ» ÆÐÄ¡ÇØ¾ß ÇÒÁö¸¦ ¸ÕÀú ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ÀÏ´Ü µð¹ö±×·Î ·ÎµåÇؼ­ S(ã±â) ¸í·ÉÀ¸·Î ÇØ´ç ¿ÀÇÁ¼Â ¹øÁö¸¦ È®ÀÎÇÏ°í ÆÐÄ¡ÇÒ µ¥ÀÌÅÍ¿Í ÇÔ²² ¾Æ·¡¿Í °°ÀÌ Àû½À´Ï´Ù. E 323C 90 90 E 3B48 90 90 E 3B4D 90 90 ±× ´ÙÀ½ ¹èÄ¡ÆÄÀÏ ¾È¿¡ ¸í±âµÈ ÆÄÀϸíÀ» ÇØ´ç ÆÄÀÏ·Î °íÄ¡±â¸¸ ÇÏ¸é µË´Ï´Ù. (¿©±â¿¡¼­´Â TELIX.EXE) TELIX.EXE¸¦ TELIX.EX_·Î ¹Ù²Û °ÍÀº EXE/HEXÆÄÀÏÀº µð¹ö±×¿¡¼­ ÀúÀåÀÌ µÇÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ÆÐÄ¡°¡ ³¡³ª¸é ´Ù½Ã ¿ø·¡´ë·Î ¸®³×ÀÓÇÕ´Ï´Ù. ¾Æ·¡´Â µð¹ö±× ½ºÅ©¸³Æ® ÆÄÀÏÀ» Æ÷ÇÔÇÑ ¹èÄ¡ÆÄÀÏ ÇüÅÂÀÇ ÆÐÄ¡ ÇÁ·Î±×·¥ ¼Ò½º·Î ÆÄÀϸíÀº TELIX322.BATÀÔ´Ï´Ù. @echo off goto batch N TELIX.EX_ L E 323C 90 90 E 3B48 90 90 E 3B4D 90 90 W Q :Batch if not exist TELIX.EXE goto error ren TELIX.EXE TELIX.EX_ > nul debug < TELIX322.BAT > nul echo Patched complete! ren TELIX.EX_ TELIX.EXE > nul goto end :Error echo TELIX.EXE not found! :End ÀÌ»óÀÔ´Ï´Ù. À§ ¹èÄ¡ÆÄÀÏ ÀÚ¼¼ÇÑ ¼³¸í ÀÔ´Ï´Ù. @echo off <¸í·É ÁøÇà »óȲÀ» Ç¥½ÃÇÏÁö ¾Ê´Â´Ù.> goto batch <·¹À̺í batch·Î Á¡ÇÁÇÑ´Ù.> N TELIX.EX_ ¦¤ ¦¡¦¤ L ¦¥ ¦¢½ÇÁ¦ µð¹ö±×¿¡¼­ E 323C 90 90 <¿ÀÇÁ¼Â ¹øÁö 323C, 323D ¹øÁö¸¦ 90h·Î ´ëÄ¡.> ¦¢Ã³¸®µÇ´Â ¸í·É¾î E 3B48 90 90 < " 3B48, 3B49 " > ¦¢(À­ ºÎºÐÀº ¸ðµÎ E 3B4D 90 90 < " 3B4D, 3B4E " > ¦¢ ¿¡·¯ 󸮵Ê.) W <¹Ù²ï ¸Þ¸ð¸®¸¦ ÀúÀåÇÑ´Ù.> ¦¢ Q <µð¹ö±×¸¦ ºüÁ® ³ª¿Â´Ù.> ¦¡¦¥ :Batch if not exist TELIX.EXE goto error ren TELIX.EXE TELIX.EX_ > nul debug < TELIX322.BAT > nul <µð¹ö±× »óÀÇ ÆÐÄ¡·Î ÇÙ½É(!) ºÎºÐ.> echo Patched complete! <ÆÐÄ¡°¡ ¿Ï·áµÇ¾ú´Ù´Â ¸Þ½ÃÁö Ç¥½Ã.> ren TELIX.EX_ TELIX.EXE > nul <´Ù½Ã ¿ø·¡´ë·Î ¸®³×ÀÓ.> goto end <·¹À̺í end·Î Á¡ÇÁ.> :Error echo TELIX.EXE not found! 20ȸ°­Á ±îÁö ³¡ÀÌ ³µ½À´Ï´Ù.