• C ·Î ÀÛ¼ºÇÏ¿© assembly ÇÁ·Î±×·¥ ¸¸µé±â
  • ù¹ø° ¾î¼Àºí¸®¾î ÇÁ·Î±×·¥À» C·Î ÇÁ·Î±×·¥ÇÏ°í C compiler ¸¦ ÀÌ¿ë ¾î¼Àºí¸®¾î·Î ¸¸µé¾î ºñ±³ÇÏ¿© º¸ÀÚ
    test.c ÀÇ À̸§À¸·Î ´ÙÀ½ÀÇ C ÇÁ·Î±×·¥À» ÀÛ¼º

    int A=2, B=5, SUM;
    main()
    {
    ¡¡¡¡¡¡ SUM = A + B;
    }

    Turbo-C 2.0 compiler ¿¡¼­ tcc -S test.c Çϸé test.asm ÀÌ ¸¸µé¾îÁü
    ¡¡
    ¡¡
    Ã¥ÀÇ ¾î¼Àºí¸® ÇÁ·Î±×·¥
    C·Î ÇÁ·Î±×·¥ÇÏ°í ¾î¼Àºí¸®¾î·Î ¸¸µç ÇÁ·Î±×·¥
    (Turbo-C compiler 2.0 ¿¡¼­ assembly ·Î ¸¸µê)
    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¡¡¡¡¡¡¡¡¡¡

    ¡¡¡¡¡¡ .186¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ifndef¡¡ ??version¡¡¡¡¡¡¡¡¡¡¡¡
    ?debug¡¡ macro¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ endm¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ endif¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ S "main.c"¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
    DGROUP¡¡ group¡¡¡¡ _DATA,_BSS¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ assume¡¡ cs:_TEXT,ds:DGROUP,ss:DGROUP¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
    d@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
    d@w label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _BSS¡¡¡¡¡¡ segment word public 'BSS'¡¡¡¡¡¡¡¡¡¡¡¡
    b@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
    b@w label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C E9906D7824066D61696E2E63¡¡¡¡¡¡¡¡¡¡¡¡
    _BSS¡¡¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
    _A¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ dw¡¡ 2¡¡¡¡¡¡¡¡¡¡¡¡
    _B¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ dw¡¡ 5¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C E800066D61696E2E63906D7824¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ L 2¡¡¡¡¡¡¡¡¡¡¡¡
    _main¡¡¡¡ proc¡¡¡¡¡¡ near¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ B¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ B¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ L 4¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ mov ax,word ptr DGROUP:_A¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ add ax,word ptr DGROUP:_B¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ mov word ptr DGROUP:_SUM,ax¡¡¡¡¡¡¡¡¡¡¡¡
    @1:¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ L 5¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ret¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ E¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ E¡¡¡¡¡¡¡¡¡¡¡¡
    _main¡¡¡¡ endp¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _BSS¡¡¡¡¡¡ segment word public 'BSS'¡¡¡¡¡¡¡¡¡¡¡¡
    _SUM¡¡¡¡¡¡ label¡¡¡¡ word¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ db¡¡ 2 dup (?)¡¡¡¡¡¡¡¡¡¡¡¡
    _BSS¡¡¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C E9¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ segment word public 'DATA'¡¡¡¡¡¡¡¡¡¡¡¡
    s@¡¡ label¡¡¡¡ byte¡¡¡¡¡¡¡¡¡¡¡¡
    _DATA¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ segment byte public 'CODE'¡¡¡¡¡¡¡¡¡¡¡¡
    _TEXT¡¡¡¡ ends¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ public¡¡ _main¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ public¡¡ _SUM¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ public¡¡ _B¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ public¡¡ _A¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C EA0109¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C E31800000023040000¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C EC055F6D61696E1800¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C EC045F53554D0400¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C EC025F420400¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ ?debug¡¡ C EC025F410400¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡¡¡¡¡ end¡¡¡¡¡¡¡¡¡¡¡¡
    ¡¡
    ¡¡

  • C ÇÁ·Î±×·¥ÀÇ º¯¼ö¸íÀ̳ª ÇÔ¼ö¸íÀº ¾î¼Àºí¸®·Î º¯È¯½Ã ¸ðµÎ º¯¼ö¸íÀ̳ª ÇÔ¼ö¸í¾Õ¿¡ _°¡ ºÙ½À´Ï´Ù.
  • C ÇÁ·Î±×·¥¿¡¼­ global variable ·Î ¼±¾ðÇÑ º¯¼ö°¡ ÃʱⰪÀ» °®Áö ¾ÊÀ»°æ¿ì ÀÌ´Â BSS (uninitialized data area)

  • ¿µ¿ª¿¡ ÇÒ´çµË´Ï´Ù. À§ÀÇ ¿¹¾î¼­ SUM Àº ÃʱⰪÀÌ ¾øÀ½À¸·Î BSS ¿µ¿ª¿¡ ÇÒ´çµÇ¾ú½À´Ï´Ù.
  • ±×¿Ü ¼Ò½º·¹º§ debuggingÀ» ÇϱâÀ§ÇÑ Á¤º¸µéÀÌ µé¾î°¡ ÀÖ½À´Ï´Ù.

  • ¡¡
  • À§ÀÇ C·Î ÇÁ·Î±×·¥ÇÑÈÄ Turbo-C compiler ¿¡ ÀÇÇØ ¸¸µé¾îÁø assembly ÇÁ·Î±×·¥Àº assembler ·Î ½ÇÇàÈ­ÀÏÀ»

  • ¸¸µé¾î¼­ ¹Ù·Î µ¹¸±¼ö°¡ ¾ø½À´Ï´Ù. ¿Ö³ÄÇϸé C compiler ´Â »ç¿ëÀÚ°¡ ÇÁ·Î±×·¥ÇÑ ÇÁ·Î±×·¥¿¡ ¿©·¯°¡Áö ½ÃÀÛ¹×
    Á¾·á¿Í °ü·ÃµÈ (ÁÖ·Î ¸Þ¸ð¸®°ü¸® ¹× ÀÛ¾÷ȯ°æÁ¤º¸µî) ÇÁ·Î±×·¥À» µ¡ºÙÀ̱⠶§¹®ÀÔ´Ï´Ù.
    ±×·¯¹Ç·Î dos ·Î µ¹¾Æ°¡´Â ¸í·ÉÀ¸·Î Á¾·á°¡ ±¸ÇöµÇÁö ¾Ê°í ret ¸í·ÉÀ¸·Î call ÇÑÇÁ·Î±×·¥À¸·Î º¹±ÍÈÄ º¹±Í
    ÇÁ·Î±×·¥¿¡¼­ dos ·Î return Çϱ⶧¹®ÀÔ´Ï´Ù.
    ¡¡
  • À§ÀÇ C ÇÁ·Î±×·¥À» Turbo-C compiler ¿¡¼­ ½ÇÇàÈ­ÀÏÀ» ¸¸µé¾úÀ»¶§ÀÇ Å©±â´Â 2,314 byte °¡ µË´Ï´Ù.

  • (ÇÁ·Î±×·¥ Å©±â´Â ¿É¼ÇÀ̳ª compiler ¿¡ µû¶ó ´Ù¸¦¼ö ÀÖÀ½)
    ÀÌ´Â °í±Þ¾ð¾î´Â ÇÁ·Î±×·¥ÀÇ ÀÛ¾÷ȯ°æ, ¸Þ¸ð¸® »ç¿ë, ÆÄÀÏÁ¦°Åµî PSP¿¡ °ü·ÃµÈ ¸ðµç°ÍÀ» ½º½º·Î ÇØ°áÇϱ⶧¹®ÀÔ´Ï´Ù.
  • ¾î¼Àºí¸®·Î ÇÁ·Î±×·¥ÇÑ ÈÄ ½ÇÇàÈ­ÀÏÀ» ¸¸µé¸é 536 byte ÀÔ´Ï´Ù.

  • ¡¡

    Program Segment Prefix (PSP)

  • PSP ¶õ?

  • ¡¡
      DOS °¡ ÇÁ·Î±×·¥À» ·ÎµåÇÒ¶§ »ç¿ëÀÚ ÇÁ·Î±×·¥¾Õ 256¹ÙÀÌÆ® (100H ¹ÙÀÌÆ®) ¿¡ PSP ¶ó ºÒ¸®´Â Á¦¾îºí·°À» ·ÎµåÇÑ´Ù.
      PSP ´Â DOS°¡ ÇÁ·Î±×·¥ ½ÇÇàÀ» µ½±âÀ§ÇØ »ç¿ëÇÏ´Â ¿©·¯°¡Áö Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù.
      ÀÌ·¯ÇÑ Á¤º¸´Â »ç¿ëÇÑ ¾ð¾î¿¡ °ü°è¾øÀÌ ¸ðµç DOS ÇÁ·Î±×·¥¿¡ ÇÊ¿äÇÏÁö¸¸ °í±Þ¾ð¾î´Â ÇÁ·Î±×·¥ÀÇ ÀÛ¾÷ȯ°æ,
      ¸Þ¸ð¸® »ç¿ë, ÆÄÀÏÁ¦°Åµî PSP¿¡ °ü·ÃµÈ ÀÏÀ» ½º½º·Î ÇØ°áÇÔÀ¸·Î ¾î¼Àºí¸®¾î¿¡¼­ º¸´Ù ´õ Áß¿äÇÏ´Ù.
    ¡¡
  • PSPÀÇ ³»ºÎ±¸Á¶
    • ¡¡
      ¡¡
      Offset
      Size
      Item
      00h Word Program exit point (INT 20h.)¡¡
      02h Word Memory size in paragraphs.¡¡
      04h Byte Unused.¡¡
      05h 5 Bytes Far call to DOS function handler.¡¡
      0Ah DWord Old INT 22h vector.¡¡
      0Eh DWord Old INT 23h vector.¡¡
      12h DWord Old INT 24h vector.¡¡
      16h Word Parent PSP segment.¡¡
      18h 14h Bytes Open files (0FFh = unused.)¡¡
      2Ch Word Environment segment.¡¡
      2Eh DWord Far ptr to SS:SP.¡¡
      32h Word Max. open files.¡¡
      34h DWord --> Open files table (usually PSP:0018h.)¡¡
      38h 8 Bytes ?¡¡
      40h Word Version number reported to this process (DOS 5+.)¡¡
      42h 0Eh Bytes ?¡¡
      50h 3 Bytes DOS function dispatcher (INT 21h, RETF.)¡¡
      53h Word Unused.¡¡
      55h FCB #1 extension.¡¡
      5Ch FCB #1.¡¡
      6Ch FCB #2.¡¡
      80h 80h Bytes Command line tail.¡¡
      ¡¡
      ¿¹) debug pgm1_1.exe ¸¦ ¼öÇàÈÄ PSP ¸¦ »ìÆ캸ÀÚ
      ¡¡
      ¡¡
      -r¡¡¡¡
      AX=0000¡¡ BX=0000¡¡ CX=0018¡¡ DX=0000¡¡ SP=0100¡¡ BP=0000¡¡ SI=0000¡¡ DI=0000¡¡¡¡
      DS=3160¡¡ ES=3160¡¡ SS=3172¡¡ CS=3170¡¡ IP=0000¡¡¡¡ NV UP EI PL NZ NA PO NC¡¡¡¡
      3170:0000 B87131¡¡¡¡¡¡¡¡¡¡¡¡¡¡ MOV¡¡¡¡¡¡¡¡ AX,3171¡¡¡¡
      ¡¡
      CS °¡ 3170 ÀÓÀ¸·Î PSPÀÇ À§Ä¡´Â 3160:0000
      -d 3160:0000 100¡¡¡¡
      3160:0000¡¡ CD 20 FF 9F 00 9A F0 FE-1D F0 4F 03 22 29 8A 03¡¡¡¡ . ........O.")..¡¡¡¡
      3160:0010¡¡ 22 29 17 03 22 29 11 29-01 01 01 00 02 FF FF FF¡¡¡¡ ")..").)........¡¡¡¡
      3160:0020¡¡ FF FF FF FF FF FF FF FF-FF FF FF FF 2B 31 4C 01¡¡¡¡ ............+1L.¡¡¡¡
      3160:0030¡¡ 2A 2D 14 00 18 00 60 31-FF FF FF FF 00 00 00 00¡¡¡¡ *-....`1........¡¡¡¡
      3160:0040¡¡ 07 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00¡¡¡¡ ................¡¡¡¡
      3160:0050¡¡ CD 21 CB 00 00 00 00 00-00 00 00 00 00 20 20 20¡¡¡¡ .!...........¡¡¡¡
      3160:0060¡¡ 20 20 20 20 20 20 20 20-00 00 00 00 00 20 20 20¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .....¡¡¡¡
      3160:0070¡¡ 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ........¡¡¡¡
      3160:0080¡¡ 00 0D 70 67 6D 31 5F 31-2E 65 78 65 0D 00 01 01¡¡¡¡ ..pgm1_1.exe....¡¡¡¡
      3160:0090¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00A0¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00B0¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00C0¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00D0¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00E0¡¡ 01 01 01 01 01 01 01 01-01 01 01 01 01 01 01 01¡¡¡¡ ................¡¡¡¡
      3160:00F0¡¡ 01 01 01 01 01 01 01 00-00 00 01 00 00 00 1C 61¡¡¡¡ ...............a¡¡¡¡
      3160:0100¡¡ B8¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ .¡¡¡¡
      ¡¡
      CD 20 Àº INT 20H ÀÇ ±â°è¾îÀÓ.¡¡¡¡
      9FFF ´Â ¸Þ¸ð¸® Å©±âÀÓ(40959 * 16 = 655344).¡¡¡¡
      312B Àº ȯ°æº¯¼ö Àִ°÷.¡¡¡¡
      9A ´Â call ÀÇ ±â°è¾î.¡¡¡¡
      0080 ÀÌÈÄ·Î program À̸§°ú ¿É¼ÇÀÌ µé¾î°¨.
      -d 312B:0000¡¡¡¡
      312B:0000¡¡ 77 69 6E 62 6F 6F 74 64-69 72 3D 43 3A 5C 57 49¡¡¡¡ winbootdir=C:\WI¡¡¡¡
      312B:0010¡¡ 4E 44 4F 57 53 00 43 4F-4D 53 50 45 43 3D 43 3A¡¡¡¡ NDOWS.COMSPEC=C:¡¡¡¡
      312B:0020¡¡ 5C 57 49 4E 44 4F 57 53-5C 43 4F 4D 4D 41 4E 44¡¡¡¡ \WINDOWS\COMMAND¡¡¡¡
      312B:0030¡¡ 2E 43 4F 4D 00 50 52 4F-4D 50 54 3D 24 70 24 67¡¡¡¡ .COM.PROMPT=$p$g¡¡¡¡
      312B:0040¡¡ 00 50 41 54 48 3D 43 3A-5C 42 43 34 35 5C 42 49¡¡¡¡ .PATH=C:\BC45\BI¡¡¡¡
      312B:0050¡¡ 4E 3B 43 3A 5C 57 49 4E-44 4F 57 53 3B 43 3A 5C¡¡¡¡ N;C:\WINDOWS;C:\¡¡¡¡
      312B:0060¡¡ 57 49 4E 44 4F 57 53 5C-43 4F 4D 4D 41 4E 44 3B¡¡¡¡ WINDOWS\COMMAND;¡¡¡¡
      312B:0070¡¡ 43 3A 5C 4C 41 4E 47 55-41 47 45 5C 4D 41 53 4D¡¡¡¡ C:\LANGUAGE\MASM¡¡¡¡
      ¡¡
      ȯ°æº¯¼ö°¡ ÀúÀåµÇ¾î Àִ°÷
      -u 3160:0000 1¡¡¡¡
      3160:0000 CD20¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ INT¡¡¡¡¡¡¡¡ 20¡¡¡¡
      ¡¡
      -u 3160:0005 5¡¡¡¡
      3160:0005 9AF0FE1DF0¡¡¡¡¡¡ CALL¡¡¡¡¡¡ F01D:FEF0¡¡¡¡
      ¡¡
      ¡¡

      Âü°í»çÇ×

      • ¸Þ¸ð¸® »çÀÌÁî 9FFF ´Â ½ÊÁø¼ö·Î 40959 ÀÌ¸ç ¿©±â¿¡ 16À» °öÇÑ°ªÀÌ ¸Þ¸ð¸® »çÀÌÁîÀÓ
      • À§ÀÇ debug ÃʱâÈ­¸é¿¡¼­ º¸µíÀÌ Ãʱâ DS °ªÀº 3160 À¸·Î µÇ¾îÀÖ´Ù.
      • Áï Ãʱâ DS °ªÀº PSP ¿µ¿ªÀ» °¡¸®Å²´Ù.
      • À̸¦ »ç¿ëÀÚ ÇÁ·Î±×·¥ÀÇ µ¥ÀÌŸ ¿µ¿ªÀ¸·Î ¹Ù²Ù±â À§ÇÏ¿©¡¡ MOV AX, @DATA ¿Í¡¡ MOV DS, AX ¸í·ÉÀÌ ÇÊ¿äÇÏ´Ù.
      ¡¡