Ch 02¡@¥H°j°éÅã¥Ü ASCII ¦r¤¸

¤W¤@³¹¡A¤p¤ì°¸»¡©ú¤F DEBUG ³Ì±`¥Îªº«ü¥O»P¥Îªk¡A¤]»¡©ú¤F´X­ÓÆ[©À¡A¹³°O¾ÐÅé¡B¦ì¤¸²Õ¡K¡Kµ¥·§©À¡C³o¤@³¹¤p¤ì°¸­n¨Ó»¡©ú¤@¬q·|¤@ª½­«½Æ°õ¦æªºµ{¦¡¡A¦¹¬q­«½Æ°õ¦æªºµ{¦¡¥iºÙ¬°°j°é ( loop )¡C­«½Æ°õ¦æ¬\ÀêµL¨ýªº¨Æ±¡¡A¥i»¡¬O¹q¸£³Ì¾Õªø°µªº¨Æ¡C


¥H°j°éÅã¥Ü ASCII ¦r¤¸

²{¦bÅý§Ú­Ì½s¼g¥t¤@­Óµ{¦¡¡A³o­Óµ{¦¡¯àÅã¥Ü©Ò¦³ªº ASCII ¦r¤¸¡A¨Ã¥B¦¹µ{¦¡ªº®Ö¤ß³¡¤À³£¦b¤W¤@³¹¾Ç¹L¡C­º¥ý¡A¶}±Ò Vistual PC ªº MS-DOS 6.20 µêÀÀ¾÷¾¹¡AµM«á¶i¤J DEBUG¡A¿é¤J¤U­±µ{¦¡¡AµM«á°õ¦æ¬Ý¬Ý¡G

C:\>debug [Enter]
-a [Enter]
1092:0100 mov ah,2 [Enter]
1092:0102 mov dl,0 [Enter]
1092:0104 int 21 [Enter]
1092:0106 inc dl [Enter]
1092:0108 jmp 104 [Enter]
1092:010A [Enter]
-

¥ý§âµ{¦¡¦s¦¨¡uE:\DOS\ASCII.COM¡v¥i°õ¦æÀÉ¡CÀɮפj¤p¥i¥H±q¦ì§}¬Ý¥X¨Ó¡Aµ{¦¡±q¦ì§} 0100 ¶}©l¡A¨ì 0109 µ²§ô¡AÀY§À³£ºâ¡A¦]¦¹¦³ A ­Ó¦ì¤¸²Õ ( ¬Û·í©ó¤Q¶i¦ìªº 10 ­Ó¦ì¤¸²Õ )¡C¦s¦nÀɮ׫á¡A¦A¥H¡uG¡v«ü¥O°õ¦æ¡A¹Lµ{¦p¤U¡G

-r cx [Enter] ¡÷³]©wÀɮפj¤p¬° A ­Ó¦ì¤¸²Õ
CX 0000
:a [Enter]
-r bx [Enter]
BX 0000
:[Enter]
-ne:\dos\ascii.com [Enter] ¡÷³]©wÀɦW
-w [Enter] ¡÷¼g¤JÀÉ®×
Writing 0000A Bytes
-g [Enter] ¡÷°õ¦æ

°õ¦æµ²ªG¡A·|¬O¹³¤U­±ªº¹Ï§Î¡C³o­Óµ{¦¡µLªk°±¤U¨Ó¡A·|¤@ª½°õ¦æ¡A©Ò¦L¥X¨Óªº¦r¤¸·|¤@ª½©¹¤W±²°Ê¡C°²¦p­nÅý¥¦°±¤U¨Ó¡A¥²¶·«ö Ctrl-C ©Î Ctrl-Break ¤~¦æ ( «ö¦í Ctrl Á䤣©ñ¡A¦A«ö¤U C Áä©Î Break Áä¡ABreak Áä¦bÁä½Lªº³Ì¥k¤W¨¤ )¡Cµ{¦¡°±¤U¨Ó«á¡A·|¦b¦L¥X¤@¤j°ï¦r¤¸ªº³Ì«á¤@¦æ¥X²{¡u^C¡vªº²Å¸¹¡A³o­Ó²Å¸¹¬O«ö¤U Ctrl-C ©Î Ctrl-Break ªºµ²ªG¡Cµ{¦¡°±¤U¨Ó®É¡A¥¿­n°õ¦æªº«ü¥O¤Î¦U¼È¦s¾¹ªº­È¡A¤]·Ó¨Ò¦L¥X¨Ó¡C

¥J²ÓÆ[¹î ASCII.COM¡A©M«e¤@³¹ªº ALPHA_A.COM ¬Û¤ñ¡A´X¥G®t¤£¦h¡C¦h¤F¨â±ø«ü¥O¡G¡uINC DL¡v»P¡uJMP 0104¡v¡A¨ä¥Lªº³¡¤À¡A°£¤F§â DL ³]¬° 0 ¥~¡A©M¦L¥X¡uA¡vªº³¡¤À³£¬Û¦P¡C¥i¥H²q´ú¡A¤£¦Pªº³¡¤À¬O¦L¥X¥Nªí 0 ªº ASCII ½X¡C³o­Óµ{¦¡¥u³Ñ¤U¨â­Ó¥¼»¡©úªº x86 «ü¥O¤F¡A©³¤U´N»¡»¡§a¡C


x86 «ü¥O¡GINC

INC «ü¥O¬O¼W¥[¤@ ( increment by 1 ) ªº·N«ä¡A¨ä»yªk¬O¡G

INC     ¹Bºâ¤¸

INC «ü¥O¬O¨Ï±µ¦b«á­±ªº¹Bºâ¤¸¼W¥[¤@¡A³o­Ó¹Bºâ¤¸¥i¥H¬O¤K¦ì¤¸©Î¤Q¤»¦ì¤¸ªº¼È¦s¾¹¡A¤]¥i¥H¬OÅܼơC¨Ò¦p©³¤Uªº¨Ò¤l¡A·í°õ¦æ§¹«á¡ACX ¤§­È¬°¤@¡C

MOV     CX,0
INC     CX
MOV     DX,FFFF
INC     DX

¤W­±ªº¨Ò¤l¡ADX ¤§­È­ì¬° FFFF¡A°õ¦æ§¹¡uINC DX¡v«á¡ADX ·|Åܬ° 0¡A¨Ã²£¥Í¶i¦ì¡C¶i¦ìªº¨Æ±¡¡A²o¯A¨ìºX¼Ð¼È¦s¾¹¡A«á­±´X³¹¤~·|´£¨ì¡C


x86 «ü¥O¡GJMP

JMP «ü¥O¬O¸õÅD ( jump ) ªº·N«ä¡A¥ç§Y§âµ{¦¡ªº±±¨îÅvÂಾ¨ì°O¾ÐÅ骺¬Y³B¥h°õ¦æ¡A¦Ó¤£¬O°õ¦æ¤U¤@¦ì§}ªº«ü¥O¡CJMP ªº»yªk¬O¡G

JMP     °O¾ÐÅé¦ì§}

¦b DEBUG ùØ¥H¡uA¡v«ü¥O½s¼gµ{¦¡¡A¦p¹J¨ì JMP¡A¨ä«á©Ò±µªº°O¾ÐÅé¦ì§}¡A´N¬O­n¸õÅD¨ìªº°O¾ÐÅé½s¸¹¡F¦ý¬O DEBUG ­pºâ¥X¨Óªº¾÷±ñ½X«o¤£¬O¹ê»Úªº½s¸¹¡A¦Ó¬O¬Û¹ï¦ì§}¡C

©³¤U¤p¤ì°¸¥H ASCII.COM ¬°¨Ò¤l¡A¸Ô²Ó»¡¤@»¡ JMP «ü¥O¡C¹³¤U­±¦b DEBUG ¿é¤J¡uu 100 10a¡v¡AÅý DEBUG ¤Ï²ÕĶ ASCII.COM ªº¾÷±ñ½X¡G

-u 100 10a [Enter]
1092:0100 B402          MOV     AH,02
1092:0102 B200          MOV     DL,00
1092:0104 CD21          INT     21
1092:0106 FEC2          INC     DL
1092:0108 EBFA          JMP     0104
1092:010A 1F            POP     DS
-

»¡©ú¡uJMP¡v«ü¥O·í CPU °õ¦æ¨ì JMP 0104 ®É¡ACPU ·|§ï¼g IP ¤§­È¡A¨Ï¥¦Åܦ¨ 0104¡A©ó¬O±±¨îÅv´N¨ì 1092:0104 ³B°õ¦æ¡uINT 21¡v«ü¥O¡A¤£¬O°õ¦æ¤U¤@¦æªº¡uPOP DS¡v«ü¥O¡C

¦ý¬OÀˬd¡uJMP 0104¡vªº¾÷±ñ½X¡A«oµo²{¬O¡uEBFA¡v¡A§¹¥þ¨S¦³¡u0104¡vªº¼Æ­È¡A¨º»ò¾÷±ñ½X¬°¦ó¬O¡uEBFA¡v©O¡H¨Æ¹ê¤W¡A¡uEB¡v¬O¸õÅD«ü¥O¡A«á­±±µµÛªº¾÷±ñ½X¡A¡uFA¡v»P¸õÅD¶ZÂ÷¦³Ãö¡C³o­Ó¾÷±ñ½X¨Ã¤£¬Oµ´¹ï¦ì§}¡A¦Ó¬O¶ZÂ÷ JMP «ü¥Oªº¤U¤@±ø«ü¥O¦ì§}¡A¤]´N¬O¡uPOP DS¡vªº¦ì§}¡A010A¡A¦³¦h¤Ö­Ó¦ì¤¸²Õ¡C

¦pªG¸õ¨ì¤U¤@±ø«ü¥O¡A¨º»ò¡uEB¡v¤§«áªº¾÷±ñ½X¬°¡u00¡v¡F¦pªG©¹«e¸õÅD ( §Y©¹°ª¦ì§}¸õÅD )¡A´N¥Ñ¡u00¡v©¹¤W¥[¡F©¹«á¸õÅD ( §Y©¹§C¦ì§}¸õÅD )¡A´N¥Ñ¡u00¡v©¹¤U´î¡C¨C¸õ¤@­Ó¦ì¤¸²Õ¡A´N¼W´î¤@¡C¥i¥H°Ñ¦Ò¥k¹Ï¡C

¡uJMP 0104¡v«ü¥O¦b¦ì§} 0108¡A¤U¤@±ø«ü¥O¬O¡uPOP DS¡v¡A¦b¦ì§} 010A¡CJMP 0104 ¬O©¹§C¦ì§}¸õÅD¡A©Ò¥H¥Ñ¡u00¡v¶}©l¡A¨C¦¸¦V§C¦ì§}¸õ¤@­Ó¦ì¤¸²Õ¡A´N´î¤@¡C¡u00¡v´î¤@Åܦ¨¡uFF¡v¡A¦A´î¤@Åܦ¨¡uFE¡v¡A¨Ì§Ç¬O FD¡BFC¡BFB¡A¨ì FA ®É¡A©è¹F¦ì§} 0104¡C¦]¦¹¡uJMP 0104¡vªº¾÷±ñ½X´N¬O¡uEBFA¡v¡C

JMP «ü¥O±Ä¥Î³oºØ¬Û¹ï¦ì§}ªº¤è¦¡¸õÅD¡A¦³­Ó¦n³B¡C¨º´N¬O·í³o­Óµ{¦¡¸ü¤J¦ì§}¤£¬O 0100 ®É¡A§ï¦¨¸ü¤J¨ì¨ä¥L¦ì§}®É¡A©¹°ª¦ì§}©Î§C¦ì§}¸õÅD¦h¤Ö­Ó¦ì¤¸²Õ¤´¤£ÅÜ¡A¾÷±ñ½X¤]¤£»Ý­n§ïÅÜ¡C¹³³oºØ¥i¥H¸ü¤J¨ì°O¾ÐÅ餣¦Pªº¦ì§}¡A«o¤£¶·­«·s­pºâ¾÷±ñ½X¡A¹ï©ó©¹«á°Æµ{¦¡¡B¥~³¡µ{¦¡®w³£·|¬Ù¥h«Ü¦h³Â·Ð¡C


ASCII.COM ªº¹B§@

©³¤U¨Ó½Í½Í ASCII.COM °j°éªº¹B§@¡Cµ{¦¡°õ¦æ®É¡A¥Ñ 1092:0100 ³Bªº²Ä¤@±ø«ü¥O¶}©l°õ¦æ¡A¨Ì§ÇÅý AH Åܬ° 2¡BDL Åܬ° 0¡A±µµÛ°õ¦æ INT 21¡A¦b¿Ã¹õ¤W¦L¥X ASCII ½X¬° 0 ªº¦r¤¸¡C¬d¾\ªþ¿ý¥|¡A±oª¾¦¹¦r¤¸¬O NULL¡A§YªÅ¦r¤¸¡A©Ò¥H¿Ã¹õ¤W¤°»ò³£¨S¦³¡C

¥Ñ INT 21 ªð¦^®É¡AÅý DL ¼W¥[¤@¡A©Ò¥H DL «á¨Ó´NÅܦ¨¤@¡C±µµÛªº«ü¥O¬O¡uJMP 0104¡v¡A©Ò¥Hµ{¦¡¤S¦^¨ì¡uINT 21¡v¡A¦ý³o®É­Ô DL Åܬ°¤@¡AAH ÁÙ¬O 2¡A©Ò¥H³o®É­Ô¦L¦b¿Ã¥ú¹õ¤Wªº¬O ASCII ½X¬° 1 ªº¦r¤¸¡A¦P¼Ë¬d ASCII ½Xªí¡A±oª¾¦¹¦r¤¸¬°ªÅ¤ßªº¯ºÁy¡C

µM«á¥Ñ INT 21 ªð¦^®É¡AÅý DL ¼W¥[¤@¡A©Ò¥H DL «á¨Ó´NÅܦ¨¤G¡C±µµÛªº«ü¥O¬O¡uJMP 0104¡v¡A©Ò¥Hµ{¦¡¤S¦^¨ì¡uINT 21¡v¡A¦ý³o®É­Ô DL Åܬ°¤G¡AAH ÁÙ¬O 2¡A©Ò¥H³o®É­Ô¦L¦b¿Ã¥ú¹õ¤Wªº¬O ASCII ½X¬° 2 ªº¦r¤¸¡A¦P¼Ë¬d ASCII ½Xªí¡A±oª¾¦¹¦r¤¸¬°¹ê¤ßªº¯ºÁy¡C

¨Ì¦¹Ãþ±À¡A¶g¦Ó´_©l¡A´N¯à§â ASCII ¥þ¦L¦b¿Ã¹õ¤W¡Cª½¨ì DL Åܬ°¡uFF¡v®É¡A­Y¦A¥[¤@¡A³o®É­Ô·|µo¥Í¶i¦ì¡A¨Ã¨Ï±o DL Åܦ¨ 00¡C±µµÛ¤S¦^¨ìµ{¦¡­è°õ¦æ®É¡A±q¦L¥XªÅ¦r¤¸¡BªÅ¤ßªº¯ºÁy¡B¹ê¤ßªº¯ºÁy¡K¡K¡C³o­Óµ{¦¡¶i¤J¤@­ÓµL½a°j°é¡A¤£·|°±¤î¡A¥u¯à«ö Ctrl-C µ²§ô¡C

¦]¬°§Ú­Ì¤w§â³o­Óµ{¦¡¡A¦s¦¨¡uE:\DOS\ASCII.COM¡v¡A©Ò¥H³o­Óµ{¦¡¤]¯à¦b DOS ¤U°õ¦æ¡C¦p¹Ï¡G


§ï¨}«áªº ASCII2.COM

ASCII.COM Áö¯à§â©Ò¦³ªº ASCII ¦r¤¸Åã¥Ü¥X¨Ó¡A¦ý¬O³Ì²×ÁÙ¬O¶i¤JµL½a°j°é¦ÓµLªk¥¿±`µ²§ôµ{¦¡¡C¨º»ò¬O§_¦³¤èªk§ï¨}¡Hµª®×¬O¡A¦³ªº¡C©³¤U´N¬O§ï¨}«áªºµ{¦¡¡A¤p¤ì°¸©R¦W¬° ASCII2.COM¡C

C:\>debug
-a [Enter]
1092:0100 mov cx,100 [Enter]
1092:0103 mov ah,2 [Enter]
1092:0105 mov dl,0 [Enter]
1092:0107 int 21 [Enter]
1092:0109 inc dl [Enter]
1092:010B loop 107 [Enter]
1092:0100 int 20 [Enter]
1092:0100 [Enter]
-

¨ä°õ¦æµ²ªG¡A¦p¤U¹Ï¡C·í¤U¹F¡uG¡v«ü¥O«á¡ADEBUG ¥u¦L¥X¤@¬q¤å¦r¡A´N¥X²{¡uProgram terminated normally¡v¡Aªí¥Üµ{¦¡¥¿±`µ²§ô¡C

¥ý¤Ï²ÕĶ¬Ý¬Ý ASCII2 ªºµ{¦¡¤º®e¡G

-u 100 10d
1092:0100 B90001        MOV     CX,0100
1092:0103 B402          MOV     AH,02
1092:0105 B200          MOV     DL,00
1092:0107 CD21          INT     21
1092:0109 FEC2          INC     DL
1092:010B E2FA          LOOP    0107
1092:010D CD20          INT     20
-

¤ñ¸û ASCII.COM »P ASCII2.COM¡Aµo²{¦³¤T³B¤£¦P¡G①¦h¤F¡uMOV CX,100¡v¡C②¡uJMP¡v«ü¥O§ï¦¨¡uLOOP¡v¡C③¦h¤F¡uINT 20¡v«ü¥O¡C

³Ì«á¤@­Ó¤£¦Pªº¦a¤è¡AINT 20¡A¥i¥H¤£¥²¸ÑÄÀ¡A´N¬Oµ²§ôµ{¦¡¡A¦b¤§«e¤w¸g´£¹L¡C²Ä¤@­Ó¤£¦Pªº¦a¤è¡A¬OÅý CX ¼È¦s¾¹Åܦ¨¤Q¤»¶i¦ìªº 100¡A¤Q¤»¶i¦ìªº 100¡Aµ¥©ó¤Q¶i¦ìªº 256¡A³o¨ä¹ê¬O ASCII ¦r¤¸ªº¼Æ¥Ø¡C´«¥y¸Ü»¡¡A¦L¥X¦r¤¸ªºµ{¦¡­n­«½Æ 256 ¦¸¡A³o»P©³¤U­n¤¶²Ðªº¡uLOOP¡v«ü¥O¦³Ãö¡C


x86 «ü¥O¡GLOOP

LOOP ¬O­Ó«Ü¦³¥Îªº«ü¥O¡A¥¦¥i¥HÅý¬Y¤@¬qµ{¦¡­«½Æ°õ¦æ«Ü¦h¦¸¡C¨Ï¥Î¤èªk¬O

        MOV     CX,¦¸¼Æ
XXXX    ⁝
        ⁝
        LOOP    XXXX
YYYY    ⁝

¤W­±ªº XXXX¡BYYYY ¬O°O¾ÐÅé¦ì§}¡A¤@¶}©l­n¥ý³]©w¦n CX ¬°°õ¦æªº¦¸¼Æ ( CX ¥¿¦¡¦WºÙ¬O­p¼Æ¼È¦s¾¹¡Acount register¡Aªº·N«ä¡A·íªì­^¯Sº¸±N¦¹¼È¦s¾¹¨ú¦W¬° CX¡A¨Ã«DÀH·N¶Ã¨úªº )¡CCPU °õ¦æ¨ì XXXX ¦ì§}®É¡A¨Ì§Ç°õ¦æ¦U¶µ«ü¥O¡A°õ¦æ¨ì LOOP ®É¡ALOOP «ü¥O·|¥ý§â CX ¤§­È´î¤@¡A¦AÀˬd CX¡F¦pªG CX µ¥©ó¹s¡ACPU ´N·|°õ¦æ¦ì§} YYYY ªº«ü¥O¡F¦pªG CX ¤£µ¥©ó¹s¡ACPU ·|§â±±¨îÅvÂಾ¨ì XXXX¡A©ó¬O¤S°õ¦æ¤@¦¸ XXXX ¨ì LOOP ¤§¶¡ªº«ü¥O¡C

¹³³o¼Ë¦b XXXX »P LOOP ¤§¶¡ªº«ü¥O¡A¥u¼¶¼g¤@¹M¡A«o¥i¥H°õ¦æ«Ü¦h¦¸ªºµ{¦¡¡AºÙ¬°°j°é¡C¦p¦¹¤@ª½­«½Æ¡A¨C°õ¦æ¤@¦¸³£·|Åý CX ¤§­È´î¤@¡Aª½¨ìÅܬ° 0¡A¤~·|¸õ¥X°j°é¡A°õ¦æ YYYY ³Bªº«ü¥O¡C

¨Ï¥Î LOOP «ü¥O®É¡A­nª`·N´X¥ó¨Æ±¡¡C²Ä¤@¡A­nª`·N CX ¤§­È¡A¦b°j°é¤º CX ¤§­È³Ì¦n¤£­nÅÜ°Ê¡A§_«h¥i¯à·|©M¹w´Á¤£¦P¡C²Ä¤G¡ALOOP «ü¥O«á­±±µµÛªº¦ì§} XXXX¡A©M JMP ªº¤@¼Ë¡A³£¬O¬Û¹ï©ó YYYY ªº¦ì§}¡A¦]¦¹³Ì¦h¥u¯à©¹«e¸õÅD 127 ­Ó¦ì¤¸²Õ¡A©Î©¹«á¸õÅD 128 ­Ó¦ì¤¸²Õ¡A¤£¥i¶W¹L¦¹½d³ò¡C

²{¦b¨Ó°lÂÜ ASCII2.COM¡A¬Ý¬Ý LOOP «ü¥O¬O¦p¦ó¹B§@ªº¡C­º¥ý¥Î DEBUG ¸ü¤J¡uE:\DOS\ASCII2.COM¡v¡A¦p¤U¡G

C:\>debug e:\dos\ascii2.com [Enter]
-r [Enter] ¡÷Àˬd¼È¦s¾¹
AX=0000  BX=0000  CX=0000  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0100   NV UP EI PL NZ NA PO NC 
1092:0100 B90001        MOV     CX,0100
-g 107 [Enter] ¡÷ª½±µ°õ¦æ¨ì³]©w­«½Æ¦¸¼Æ

AX=0200  BX=0000  CX=0100  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0107   NV UP EI PL NZ NA PO NC 
1092:0107 CD21          INT     21
-p [Enter]
  ¡÷¦¹³B·|¦L¥X 00 ªº ASCII ¦r¤¸¡A¦¹¦r¤¸¬OªÅ¦r¤¸¦]¦¹¬Ý¤£¨£¡A¥u¯d¤UªÅ¦ì
AX=0200  BX=0000  CX=0100  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0109   NV UP EI PL NZ NA PO NC 
1092:0109 FEC2          INC     DL
-t [Enter] ¡÷¡uINT 21¡v»P¡uINC DL¡v³o¨â­Ó«ü¥O¦b°j°é¤º¡A·|­«½Æ°õ¦æ 256 ¦¸

AX=0200  BX=0000  CX=0100  DX=0001  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=010B   NV UP EI PL NZ NA PO NC 
1092:010B E2FA          LOOP    0107
-t [Enter] ¡÷°õ¦æ§¹ LOOP «á¡ACX ´î¤@¡A¨Ã¸õÅD¨ì¦ì§} 0107

AX=0200  BX=0000  CX=00FF  DX=0001  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0107   NV UP EI PL NZ NA PO NC 
1092:0107 CD21          INT     21
-p [Enter] ¡÷²Ä¤G¦¸°õ¦æ¦L¥X ASCII ¦r¤¸¡A¦¹¦r¤¸¬°½s¸¹¤@ªº ASCII ¦r¤¸¡A¬O¤@­ÓªÅ¤ßªº¯ºÁy

±µ¤U¨Ó¡A¤S·|¦A¦¸­«½Æ¡A¤p¤ì°¸´N¤£¦A»¡©ú¡A¶È¦C¥X¾Þ§@¤Îµ²ªG¡A¦p¤U¡G

AX=0201  BX=0000  CX=00FF  DX=0001  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0109   NV UP EI PL NZ NA PO NC 
1092:0109 FEC2          INC     DL
-t [Enter]

AX=0201  BX=0000  CX=00FF  DX=0002  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=010B   NV UP EI PL NZ NA PO NC 
1092:010B E2FA          LOOP    0107
-t [Enter]

AX=0200  BX=0000  CX=00FE  DX=0002  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0107   NV UP EI PL NZ NA PO NC 
1092:0107 CD21          INT     21
-p [Enter]
☻
AX=0202  BX=0000  CX=00FE  DX=0002  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=0109   NV UP EI PL NZ NA PO NC 
1092:0109 FEC2          INC     DL
-t [Enter]

AX=0202  BX=0000  CX=00FE  DX=0002  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=010B   NV UP EI PL NZ NA PO NC 
1092:010B E2FA          LOOP    0107
-p [Enter] ¡÷ÁÙ·|¦A°õ¦æ 253 ¦¸¡A¤£¥²¦A¤@¨B¤@¨B°lÂܤF¡A°õ¦æ P «ü¥O¡A¤@¦¸µ²§ô°j°é
♥♦♣
♬☼►◄↕‼¶§▃↨↑↓←→¡x↔¡¶¡¿!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
^_'abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡
«»░▒▓│┤╡╢╖╕╣║╗╝ù÷ùî┐¢|¢r¢s¢u¢w¢qùéùòùãùÝùäùÞùàùùùáùíùöùçùðùõùìùæùïùóùê¢}¢z¢i¢e¢m▐▀£\£]£F£S£U£m£g£n£X£c£[£_¡Û£p∈¡ä¡Ý¡Ó≥≤⌠⌡¡Ò≈°∙⋅¡Ôⁿ²
■
AX=02FF  BX=0000  CX=00FF  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000  
DS=1092  ES=1092  SS=1092  CS=1092  IP=010D   NV UP EI PL NZ NA PO NC 
1092:010D CD20          INT     20
-


­Ë°h¦r¤¸¡B´«¦æ¦r¤¸¡BÂk¦ì¦r¤¸

²Ó¤ßªºÅªªÌ¡A¥i¯à·|°Ý¡AASCII.COM ©Î ASCII2.COM ¦L¥X¨Óªºµ²ªG«Ü©_©Ç¡A¬°¤°»ò¡u♣¡v¤§«á·|´«¦æ©O¡H¬°¤°»ò¡u♠¡v¤£¨£¤F©O¡H³o¨Ç°ÝÃDªºµª®×¡A¸ò±±¨î¿Ã¹õ¦ì¸mªº¦r¤¸¦³Ãö¡C

¨Æ¹ê¤W¡A¦b ASCII ½s¸¹¤p©ó 32 ªº¦r¤¸¤¤¡A¤j¦h¬O±±¨î©PÃä³]³Æªº¦r¤¸¡A¦³¨Ç¯à¦L¥X¦r¤¸¨Ó¡A¦³¨Ç¥u¯à¬Ý¨£®ÄªG¡A³o¨Ç¦r¤¸³£ºÙ¬°±±¨î¦r¤¸¡C©³¤UÁ|´X­Ó±`¨£ªº¨Ò¤l¡G

ASCII ½X¦r¤¸ ¦WºÙ´y­z
¤Q¶i¦ì¤Q¤»¶i¦ì
77 ¹aÁn
bell
¹aÁn¡A¦pªG¡u¦L¡v¥X³o­Ó¦r¤¸ªº¸Ü¡A·|Åý¹q¸£³â¥zµo¥X¡u¹Í¡vªºÁnÅT¡A¿Ã¹õ¤W¤£·|¦L¥X¦r¨Ó¡C
88 °h®æ¦r¤¸
backspace
§â´å¼Ð¦V¥ª²¾°Ê¤@®æ¡A¨Ã§R°£¸Ó¦ì¸m¤Wªº¦r¤¸«á¡A¦A§â¥kÃ䪺¤å¦r©¹¥ª²¾°Ê¤@®æ¡C
99 ¤ô¥­©w¦ì¦r¤¸
horizontal tabulation
§â´å¼Ð¦V¥k²¾¨ì©T©wªº¦ì¸m¡A¤¤¶¡¥HªÅ¥Õ¶ñº¡¡C¦¹©T©w¦ì¸m¬°¤Kªº­¿¼Æ¦A©¹¥k¤@®æªº¦ì¸m¡C
10A ´«¦æ¦r¤¸
line feed
§â´å¼Ð²¾¨ì¤U¤@¦æªº¦P¤@¦ì¸m¡C¦ý¬O¦pªG´å¼Ð¤w¸g¦b³Ì«á¤@¦æ¤F¡A¨º´N·|¦b³Ì«á¤@¦æ¦A·s¼W¤@¦æ¡A¨Ã¨Ï´å¼Ð¦b·s¼W¤@¦æªº³Ì¥ªÃä¡C
13D Âk¦ì¦r¤¸
carriage return
§â´å¼Ð²¾¨ì¤@¦æªº³Ì¥ªÃä¡C

ÁA¸Ñ¤F¤W­±ªº±±¨î¦r¤¸«á¡A§Ú­Ì´N¯à©ú¥Õ­è¤~¨º¨â­Ó°ÝÃDªºµª®×¤F¡C¹ê»Ú¤W¡A¹q¸£¦L§¹¡u♣¡v«á¡AÁÙ¬O·|§â¡u♠¡v¦L¥X¨Ó¡A¤§«á¬O ASCII ½s¸¹ 7 ªº¹aÁn¡A¦¹®É¤£·|¦L¥X¦r¤¸¡A¦ý¥i¥HÅ¥¨£³â¥zªºÁnÅT¡C±µ¤U¨Ó¬O ASCII ½s¸¹ 8 ªº­Ë°h¦r¤¸¡A¦¹¦r¤¸©M«ö¤UÁä½L¤W¡u­Ë°hÁä¡v®ÄªG¤@¼Ë¡A¦]¦¹¡u♠¡v´N³Q®ø¥h¡C

±µ¤U¨Ó¦L¥X½s¸¹ 9 ªº ASCII ¦r¤¸¡A¦¹¦r¤¸¬O¤ô¥­©w¦ì¦r¤¸¡A©Ò¥H¹q¸£·|§â¿Ã¹õ¤WªºªÅ®æ¶ñ¨ì 8 ªº­¿¼Æªº¦ì¸m¤W¡A¦A§â´å¼Ð©¹¥k²¾¤@®æ¡C¦ý¬O¦]¬°¶ñº¡ªº¬OªÅ¥Õ¦r¤¸¡A©Ò¥H¬Ý¤£¥X¨Ó³o¨Ç®ÄªG¡C³o®É­Ô¡A³Ì«á¤@¦æùØ¡A¯à¬Ý¨£¨ìªº³Ì«á¤@­Ó¦r¤¸¬O¡u♣¡v¡AªÅ¥Õ¬O¬Ý¤£¨£ªº¡C

±µ¤U¨Ó¬O½s¸¹ A ªº´«¦æ¦r¤¸¡A¦¹®É·|·s¼W¤@¦æ¡A´å¼Ð·|²¾¨ì¤U¤@¦æªº¦P¦ì¸m¡C·s¼W¤@¦æ«á¡A¤W¤@¦æªº³Ì«á¯à¨£¨ìªº¦r¤¸´N¬O¡u♣¡v¡C±µ¤U¨Ó¬O½s¸¹ B »P C ªº¦r¤¸¡A¦b IBM PC ¤W¡A·|¦b¿Ã¹õ¤WÅã¥Ü¡u♂¡v¡B¡u♀¡v¨â¦r¤¸¡A¦Ó¤£¬O±±¨î´å¼Ð¦ì¸m¡C±µ¤U¨Ó¬O½s¸¹ D ªºÂk¦ì¦r¤¸¡A¦¹¦r¤¸·|Åý´å¼Ð²¾¨ì·s¼W¤@¦æªº³Ì¥ªÃä¡C±µ¤U¨Ó¡A¦L¥Xªº¦r¤¸´N·|Âл\·s¼W¤@¦æ¡A¤w¸g¦L¥Xªº¦r¤¸¡C¦³¤F³o»ò¦h­ì¦]¡AASCII.COM ©Î ASCII2.COM ¦L¥X¨Óªº¦r¤¸¡A´NÅܦ¨¤W­±¨º¼Ë¤F


´«¦æ¦r¤¸

¨Æ¹ê¤W¡A¦b¤£¦Pªº§@·~¨t²ÎùØ¡A´«¦æ¦r¤¸¬O¤£¤@¼Ëªº¡C³oùتº´«¦æ¦r¤¸­n¹F¨ì¨â­Ó®ÄªG¡A¤£¶È­n·s¼W¤@¦æ¡A¦Ó¥BÁÙ­n§â´å¼Ð²¾¨ì·s¼Wªº¨º¤@¦æ³Ì¥ªÃä¡C


¦^ÅU

³o¤@³¹¡A¤p¤ì°¸¤¶²Ð¤F¤T­Ó x86 «ü¥O¡GINC¡BJMP¡BLOOP¡A¥H¤Î¨â­ÓÆ[©À¡G°j°é»P´«¦æ¦r¤¸


x86 «ü¥O¡GINC

INC «ü¥O¬O¼W¥[¤@ ( increment by 1 ) ªº·N«ä¡A¨ä»yªk¬O¡G

INC     ¹Bºâ¤¸

INC «ü¥O¬O¨Ï±µ¦b«á­±ªº¹Bºâ¤¸¼W¥[¤@¡A³o­Ó¹Bºâ¤¸¥i¥H¬O¤K¦ì¤¸©Î¤Q¤»¦ì¤¸ªº¼È¦s¾¹¡A¤]¥i¥H¬OÅܼơC


x86 «ü¥O¡GJMP

JMP «ü¥O¬OµL±ø¥ó¸õÅD¡A¨ä»yªk¬O¡G

JMP     °O¾ÐÅé¦ì§}

·í CPU °õ¦æ¨ì³o¤@¦æ«ü¥O¡A·|§ïÅÜ IP ¼È¦s¾¹¤§­È¨ì¡u°O¾ÐÅé¦ì§}¡v¡A¦Ó¤£¬O JMP ªº¤U¤@±ø«ü¥Oªº¦ì§}¡C¦]¦¹µ{¦¡±±¨îÅv·|Âಾ¨ì JMP «á­±±µµÛªº°O¾ÐÅé¦ì§}¥h°õ¦æ¡A¦Ó¤£¬O¨Ì¶¶°õ¦æ¡C


x86 «ü¥O¡GLOOP

LOOP «ü¥Oªº»yªk¬O

LOOP    °O¾ÐÅé¦ì§}