• ¾î¼Àºí¸® ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Â ¹æ¹ý
    • ¾î¼Àºí¸® ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâÀ§ÇÏ¿©´Â editor °¡ ÇÊ¿äÇÏ´Ù
    • editor ´Â ¾î¶² °ÍÀ» »ç¿ëÇصµ ¹«°üÇÏ´Ù.
    • Áï edit.exe ³ª turbo-C ÀÇ tc.exe »ó¿¡¼­ ÀÛ¼ºÇصµ µÇ¸ç ¶ÇÇÑ hwp, MS word µî ¾î¶² ÅøÀ» »ç¿ëÇÏ¿©µµ µÈ´Ù.
    • ´Ü È­ÀÏÀÇ È®ÀåÀÚ´Â asm À¸·Î ÁÖ¾î¾ß¸¸ ÇÑ´Ù.

    • ¡¡
      ¿¹) edit ¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ ÀÛ¼º¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

      C:\edit pgm1_1.asm (return)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

        ¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        TITLE PGM1_1: SAMPLE PROGRAM¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡.MODEL SMALL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡.STACK¡¡¡¡ 100H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

        ¡¡.DATA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡A DW¡¡¡¡¡¡¡¡ 2¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡B DW¡¡¡¡¡¡¡¡ 5¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡SUM DW¡¡¡¡ ?¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

        ¡¡.CODE¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡MAIN¡¡¡¡¡¡¡¡ PROC¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡;initialize DS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ MOV¡¡ AX,@DATA¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ MOV¡¡ DS,AX¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡;add the numbers¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ MOV¡¡ AX,A¡¡¡¡¡¡¡¡¡¡ ;AX has A¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ ADD¡¡ AX,B¡¡¡¡¡¡¡¡¡¡ ;AX has A+B¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ MOV¡¡ SUM,AX¡¡¡¡¡¡ ;SUM = A+B¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡;exit to DOS¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ MOV¡¡ AX,4C00H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡ INT¡¡ 21H¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡MAIN ENDP¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡END¡¡ MAIN¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        (save and exit)

        ¡¡
        ¡¡
      ¡¡
        ¡¡
  • ¾î¼Àºí¸® ÇÁ·Î±×·¥À» ¾î¼ÀºíÇÏ¿© ½ÇÇàÈ­ÀÏ ¸¸µå´Â ¹æ¹ý
    • ¾î¼Àºí¸® È­ÀÏÀ» ½ÇÇàÈ­ÀÏ (±â°è¾î È­ÀÏ)·Î ¸¸µé±â À§Çؼ­´Â assembler °¡ ÇÊ¿äÇÏ´Ù.
    • ¾î¼Àºí·¯ ÇÁ·Î±×·¥Àº ¿©·¯È¸»ç°ÍÀÌ Àִµ¥ ¿©±â¼­´Â ´ëºÎºÐÀÇ ÇлýÀÌ °®°í ÀÖ´Â Turbo-C 2.0 ¿¡ ÀÖ´Â tasm.exe ¿Í tlink.exe ¸¦ »ç¿ëÇϴ°ÍÀ» ¼³¸íÇÏ°Ú´Ù.
    • À§ÀÇ È­ÀÏÀÌ ¾ø´Â ÇлýÀº ¿©±â¸¦ Ŭ¸¯ÇÏ¿© download ¹ÞÀ»°Í
    • À§È­ÀÏÀº winzip v.6.2 ·Î compress µÇ¾îÀÖÀ½À¸·Î winzip À¸·Î ¾ÐÃàÀ» Ç®°Í

    • ¡¡
      ¿¹) pgm1_1.asm À» ¾î¼ÀºíÇÏ¿© ½ÇÇàÈ­ÀÏ ¸¸µé±â¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
      ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        À§¿¡¼­ download ¹ÞÀº µÎ È­ÀÏÀ» ÇϳªÀÇ µð·ºÅ丮¿¡ ³õ´Â´Ù.¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¶ÇÇÑ pgm1_1.asm È­ÀÏÀ» µ¿ÀÏ µð·ºÅ丮¿¡ ³õ´Â´Ù.¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¿¹·Î ¿©±â¼­´Â À§ÀÇ ¼¼È­ÀÏÀÌ C:\asmtest µð·ºÅ丮¿¡ ÀÖ´Ù°í °¡Á¤ÇÔ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¸í·É
        ¼³¸í
        C:\asmtest\tasm pgm1_1.asm (return)¡¡ ÀÌ·¸°Ô Çϸé pgm1_1.obj È­ÀÏÀÌ ¸¸µé¾îÁø´Ù (dir ·Î È®Àιٶ÷)
        C:\asmtest\tlink pgm1_1.obj (return) ÀÌ·¸°Ô Çϸé pgm1_1.exe È­ÀÏÀÌ ¸¸µé¾îÁø´Ù¡¡ (dir ·Î È®Àιٶ÷)
        C:\asmtest\pgm1_1 (return) pgm1_1.exe È­ÀÏÀ» ¼öÇà½ÃŲ´Ù
        ¡¡
      ¡¡
  • ½ÇÇàÈ­ÀÏÀ» debugging ÇÏ´Â ¹æ¹ý
    • debugging À̶õ ÇÁ·Î±×·¥ÀÇ ¼öÇàÀ» Á¦¾îÇÏ¿© ÇÁ·Î±×·¥ÀÇ µ¿ÀÛÀ» »ìÆ캸°í ÇÁ·Î±×·¥ÀÇ Æ²¸°ºÎºÐÀ» °íÄ¡´Â ÀÏÀ» ¸»ÇÑ´Ù.
    • debugging À» ÇϱâÀ§Çؼ­´Â debugging À» ¼öÇàÇØÁÖ´Â ÇÁ·Î±×·¥ÀÌ ÀÖ¾î¾ßÇÑ´Ù.
    • ¿©±â¼­´Â dos »ó¿¡¼­ ¼öÇàµÇ´Â debug.exe ¸¦ ÀÌ¿ëÇÏ¿© debuggingÀ» ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°Ú´Ù.

    • ¡¡
        ¡¡¡¡¡¡¡¡¡¡¡¡¡¡
        ¸í·É
        ¼³¸í
        C:\debug pgm1_1.exe pgm1_1.exe µð¹ö±ë ½ÃÀÛ
        - È­¸é¿¡ ¿ÞÂÊ°ú °°ÀÌ Ç¥½ÃµÊ
        -? (return) debug ÇÁ·Î±×·¥ÀÇ ¸í·ÉµéÀ» º¸¿©ÁÜ
        -u offset_address (return) pgm1_1 ÇÁ·Î±×·¥À» offset_address ºÎÅÍ º¸¿©ÁÜ (-u (return) Çϸé óÀ½ºÎÅÍ º¸¿©ÁÜ)
        -t (return) ù¸í·ÉºÎÅÍ ÇѸí·É¾¿ ¼öÇà(À̶§ °¢ ·¹Áö½ºÅÍÀÇ °ª¹× Ç÷¡±× ·¹Áö½ºÅÍÀÇ °ªÀ̺¸ÀÓ)
        -g (return) ÇÁ·Î±×·¥ÀÇ ³¡±îÁö ½ÇÇà
        -a offset_address offset_address ºÎºÐÀÇ ¾î¼Àºí¸® ¸í·É¾î¸¦ ¹Ù²Þ
        -d offset_address ¹üÀ§ offset_address ºÎÅÍ ¹üÀ§ÀÇ °¹¼ö¸¸Å­ 16Áø¼ö·Î Ç¥½ÃÇØÁÜ
        -p =ÁÖ¼Ò ¼ýÀÚ ÁÖ¼ÒºÎÅÍ ¼ýÀÚ¸¸Å­ ½ÇÇàÇÔ
        -r ·¹Áö½ºÅÍ¸í ·¹Áö½ºÅÍÀÇ ÇöÀç°ªÀ» Ç¥½ÃÇØÁÖ°í º¯°æ°ªÀ» ¹°¾îº½ (±×³É (return) À» Ä¡¸é °ªÀÌ º¯°æµÇÁö ¾ÊÀ½)
        ¡¡
      ¡¡
  • ¿¹Á¦
    • À§ÇÁ·Î±×·¥À» debugging ÇÏ´Â ÇÑ °úÁ¤

    • ¡¡
      °úÁ¤
      ¼³¸í
      C:\asmtest>debug pgm1_1.exe¡¡¡¡¡¡¡¡¡¡
      -
      debug ±¸µ¿
      -u¡¡¡¡¡¡¡¡
      3170:0000 B87131¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ AX,3171¡¡¡¡¡¡¡¡
      3170:0003 8ED8¡¡¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ DS,AX¡¡¡¡¡¡¡¡
      3170:0005 A10400¡¡¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ AX,[0004]¡¡¡¡¡¡¡¡
      3170:0008 03060600¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡ AX,[0006]¡¡¡¡¡¡¡¡
      3170:000C A30800¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ [0008],AX¡¡¡¡¡¡¡¡
      3170:000F B8004C¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ AX,4C00¡¡¡¡¡¡¡¡
      3170:0012 CD21¡¡¡¡¡¡¡¡¡¡¡¡ INT¡¡¡¡¡¡¡¡ 21¡¡¡¡¡¡¡¡
      3170:0014 0200¡¡¡¡¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡ AL,[BX+SI]¡¡¡¡¡¡¡¡
      3170:0016 050007¡¡¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡ AX,0700¡¡¡¡¡¡¡¡
      3170:0019 000C¡¡¡¡¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡ [SI],CL¡¡¡¡¡¡¡¡
      3170:001B 8E064E55¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ ES,[554E]¡¡¡¡¡¡¡¡
      3170:001F 32C9¡¡¡¡¡¡¡¡¡¡¡¡XOR¡¡¡¡¡¡¡¡ CL,CL¡¡¡¡¡¡¡¡
      -¡¡¡¡¡¡¡¡
      ¡¡
      pgm1_1.exe ¸¦ unassemble ÇÑ´Ù.¡¡¡¡¡¡
      3170:0000 ¿¡¼­ 3170Àº segment address 0000 Àº offset address ÀÌ´Ù.¡¡¡¡¡¡
      ¡¡
      -t¡¡¡¡¡¡

      AX=3171¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡¡¡
      DS=3160¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=0003¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:0003 8ED8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ DS,AX¡¡¡¡¡¡
      -

      trace ¸í·ÉÀ¸·Î ÇѽºÅÛ ¼öÇàÇÑ´Ù.¡¡¡¡¡¡
      ¼öÇàÈÄ °¢ ·¹Áö½ºÅÍÀÇ °ª ¹× ´ÙÀ½¼öÇàÇÒ ¸í·É¾î°¡ º¸ÀδÙ.
      -t¡¡¡¡¡¡

      AX=3171¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡¡¡
      DS=3171¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=0005¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:0005 A10400¡¡¡¡¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡AX,[0004]¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡DS:0004=0002¡¡¡¡¡¡
      -¡¡¡¡¡¡
      ¡¡

      trace ¸í·ÉÀ¸·Î ÇѽºÅÛ ¼öÇàÇÑ´Ù.¡¡¡¡¡¡
      ÀÌÁ¦ DS °¡ ÃʱâÈ­µÈ´Ù.¡¡¡¡¡¡
      À̶§ DS ´Â 3171 ÀÌ µÇ¾ú´Ù.
      -d 3171:0004¡¡¡¡¡¡
      3171:0000¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 02 00 05 00-07 00 0C 8E 06 4E 55 32¡¡¡¡¡¡
      ¡¡
      º¯¼ö A ÀÇ °ªÀÌ DS:0004 ¿¡ ÀÖÀ½À¸·Î ¸Þ¸ð¸®ÀÇ ³»¿ëÀ» º¸´Ï 02 00 À¸·Î µÇ¾îÀÖ´Ù.¡¡¡¡¡¡
      ÀÌ´Â 0002 ¸¦ ÀǹÌÇÑ´Ù.¡¡¡¡¡¡¡¡
      DS:0006 ¿¡´Â º¯¼ö BÀÇ °ªÀÌ µé¾îÀÖ´Ù. 05 00 ÀÓÀ¸·Î0005 ÀÌ´Ù.¡¡¡¡¡¡
      ÀÌ´Â ÇÁ·Î±×·¥¿¡¼­ ÃʱâÈ­½ÃÄÑÁØ °ª°ú °°´Ù.¡¡¡¡¡¡
      ¡¡
      -t¡¡¡¡¡¡

      AX=0002¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡SI=0000¡¡DI=0000¡¡¡¡¡¡
      DS=3171¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=0008¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:0008 03060600¡¡¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡AX,[0006]¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ DS:0006=0005¡¡¡¡¡¡
      ¡¡

      trace ¸í·ÉÀ¸·Î ÇѽºÅÛ ¼öÇàÇÑ´Ù.¡¡¡¡¡¡
      MOV AX,[0004]¿¡ ÀÇÇÏ¿© AX ³»¿ëÀÌ 0002 ·Î ¹Ù²î¾î ÀÖ´Ù. ´ÙÀ½ ¸í·ÉÀº ADD AX,[0006] ÀÌ´Ù¡¡¡¡¡¡
      ¡¡
      -t¡¡¡¡¡¡

      AX=0007¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡¡¡
      DS=3171¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=000C¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:000C A30800¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡[0008],AX¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ DS:0008=0007¡¡¡¡¡¡
      ¡¡

      trace ¸í·ÉÀ¸·Î ÇѽºÅÛ ¼öÇàÇÑ´Ù.¡¡¡¡¡¡
      ÀÌÁ¦ [0006]ÀÇ 5¿Í AX ¿¡ ÀÖ´ø 2 °¡ ´õÇØÁ®¼­ AXÀÇ ³»¿ëÀÌ 7ÀÌ µÇ¾ú´Ù.¡¡¡¡¡¡
      ¡¡
      -t¡¡¡¡¡¡

      AX=0007¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡¡¡
      DS=3171¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=000F¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:000F B8004C¡¡¡¡¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ AX,4C00¡¡¡¡¡¡
      ¡¡

      trace ¸í·ÉÀ¸·Î ÇѽºÅÛ ¼öÇàÇÑ´Ù.¡¡¡¡¡¡
      MOV [0008], AX ¸í·ÉÀÌ ¼öÇàµÇ¾ú´Ù.¡¡¡¡¡¡
      °á±¹ 3171:0008ÀÇ ³»¿ëÀÌ 0007ÀÌ µÈ´Ù.¡¡¡¡¡¡
      ¡¡
      -g¡¡¡¡¡¡

      ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î Á¾·áµÇ¾ú½À´Ï´Ù¡¡¡¡¡¡
      ¡¡

      ÇÁ·Î±×·¥À» ³¡±îÁö ½ÇÇàÇÑ´Ù.
      -t¡¡¡¡¡¡

      AX=3171¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡¡¡
      DS=3160¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=0003¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡¡¡
      3170:0003 8ED8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ DS,AX¡¡¡¡¡¡
      ¡¡

      óÀ½ºÎÅÍ ´Ù½Ã trace ÇÑ´Ù.¡¡¡¡¡¡
      ¡¡
      -e 3171:0004¡¡¡¡¡¡
      3171:0004¡¡ 02.10¡¡¡¡¡¡
      ¡¡
      º¯¼ö A °ª¿¡ °­Á¦·Î 10À» ÇÒ´çÇÑ´Ù
      -g¡¡¡¡¡¡

      ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î Á¾·áµÇ¾ú½À´Ï´Ù¡¡¡¡¡¡
      ¡¡

      ÇÁ·Î±×·¥À» ³¡±îÁö ½ÇÇàÇÑ´Ù.
      -d 3171:0004¡¡¡¡¡¡
      3171:0000¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 10 00 05 00-15 00 0C 8E 06 4E 55 32¡¡¡¡¡¡
      ¡¡
      3171:0004 ¿¡´Â 10ÀÌ µé¾îÀÖ°í °á°ú¿¡´Â 0015 °¡ µé¾îÀÖ´Ù.
      -a 0005¡¡¡¡¡¡
      3170:0005 mov ax, [0002]¡¡¡¡¡¡
      3170:0008¡¡¡¡¡¡
      ¡¡
      0005 ¹øÁöÀÇ ¾î¼Àºí ¸í·ÉÀ» mov ax, [0004] ¿¡¼­ mov ax, [0002] ·Î ¹Ù²Ù¾ú´Ù.¡¡¡¡¡¡
      ¡¡
      -u 0¡¡¡¡¡¡
      3170:0000 B87131¡¡¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ AX,3171¡¡¡¡¡¡
      3170:0003 8ED8¡¡¡¡¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ DS,AX¡¡¡¡¡¡
      3170:0005 A10200¡¡¡¡¡¡¡¡¡¡¡¡MOV¡¡¡¡¡¡¡¡ AX,[0002]¡¡¡¡¡¡
      3170:0008 03060600¡¡¡¡¡¡¡¡¡¡ADD¡¡¡¡¡¡¡¡ AX,[0006]¡¡¡¡¡¡
      ¡¡
      ÇÁ·Î±×·¥ÀÌ ºü²î¾î ÀÖÀ½À» º¸¾Ò´Ù.¡¡¡¡¡¡
      ¡¡
      ¡¡
    ¡¡
MASM ¾î¼Àºí·¯ »ç¿ë¹ý¹× debug, codeview ÀÇ »ç¿ë¹ýÀº ±³Àç ºÎ·Ï D ¿Í E ¸¦ ÂüÁ¶ÇÒ°Í