¤p¤ì°¸±N¦b³o¤@³¹ùؽͽͧó¦h±`¥Îªº DOS ªA°Èµ{¦¡¡C
²Ä¤@Ón½Íªº¬O¡A¦b¿Ã¹õ¤W¦L¥X¤@Ó¦r¦ê¡C©Ò¿×ªº¦r¦ê¡A¥i¥H§â¥¦·í¦¨¬O¤@Ó¥y¤l¡A¥¦¬O¥Ñ³\¦h¦r¤¸²Õ¦X°_¨Óªº¡AÀx¦s¦b°O¾ÐÅ骺³sÄòªÅ¶¡ùØ¡C¨Ò¦p©³¤U·|¥Î¨ìªº ¡uI love assembly language.¡v´N¥i¥H·í¦¨¬O¦r¦ê¡A¤@Ó¦r¦ê¥i¯à¦û¥Î«Ü¦hӦ줸²Õ¡A¦Ó¤@Ó^¤å¦r¦û¥Î¤@Ӧ줸²Õ¡A¦]¦¹«ezªº¦r¦ê¦û¥Î¤F 25 Ӧ줸²Õ¡CÁöµM¦r¦ê¦û¥Î³\¦h¦ì¤¸²Õ¡A¦r¦êªº¦ì§}¨ä¹ê«üªº´N¬O¦r¦ê©Ò¦bªº³Ì§C¦ì§}¡C
©³¤U¬O¦b¿Ã¹õ¤W¦L¥X¦r¦êªº¥\¯à¡G
¦b¿Ã¹õ¤W¦L¥X¦r¦ê ¿é¤J¡GAH¡×09H ¡@¡@¡@DS:DX¡×n¦L¥Xªº¦r¦ê°_©l¦ì§} °õ¦æ¡GINT 21H µù¡G¦r¦ê¥²¶·¥H¡u$¡vµ²§À¡C
ª`·N¨ì¡An¦L¥X¨Óªº¦r¦ê¡A¥²¶·©ñ¦b DS:DX ¦ì§}¤W¡ADS ¬O°Ï¬q¦ì§}¡ADX ¬O¦¹°Ï¬qªº°¾²¾¦ì§}¡A¦¹¦r¦ê¥²¶·¥H¡u$¡vµ²§À¡A¡u$¡v¤£·|¦L¥X¨Ó¡C
©³¤Uªº PRINTSTR.COM µ{¦¡·|Åý¿Ã¹õÅã¥Ü¡uI love assembly language.¡v¦r¦ê¡C³o¦r¦ê¬O¸ê®Æ¡A¨Ã¤£¬Oµ{¦¡½X¡A¤£¬OnÅý CPU °õ¦æªº¡C¦Ó DEBUG °õ¦æµ{¦¡®É¡A¬O±q°¾²¾¦ì§}¡A0100¡A³B¶}©l°õ¦æ¡A¤@Ó«ü¥O°õ¦æ§¹¡A¦A°õ¦æ¤U¤@Ó«ü¥O¡C©Ò¥H¤p¤ì°¸°²³]¡uI love assembly language.¡v¦r¦ê¡A±µ¦bµ{¦¡½X«á±¡C¥ý¶i¤J DEBUG¡A¦A¿é¤J©³¤Uªºµ{¦¡¡G
C:\>debug [Enter] -a [Enter] 1092:0100 mov ah,9 [Enter] 1092:0102 mov dx,0 [Enter] ¡÷¦]¬°¤£ª¾¹D¦r¦ê¦ì§}¡A©Ò¥H¥ýÀH·N°²³]¦r¦ê¦ì§}¬° 0000 1092:0105 int 21 [Enter] 1092:0107 int 20 [Enter] 1092:0109 db "I love assembly language.$" [Enter] ¡÷²{¤wª¾¦r¦ê¦ì§}¬° 1092:0109¡AÁöµM¥¦¾î¸ó¤F¦ì§} 1092:0109 ¨ì 1092:0122 1092:0123 [Enter] -a 102 [Enter] 1092:0102 mov dx,109 [Enter] ¡÷§â DX ³]¬°¥¿½Tªº¦ì§} 1092:0105 [Enter] -r cx [Enter] CX 0000 :23 [Enter] -r bx [Enter] BX 0000 :[Enter] -ne:\dos\printstr.com [Enter] -w [Enter] Writing 00023 Bytes -g [Enter] I love assembly language. Program terminated normally -
¬Ý¨ì¤W±ªº¨Ò¤l¡A·í¿é¤J¨ì¦ì§}¡u1092:0102¡vªºµ{¦¡®É¡A¥uª¾¹D¦r¦ê¦ìµ{¦¡½X«á±¡A¦ý¤£ª¾½T¹ê¦ì§}¡A©Ò¥H¥ýÀH«K°²³]¤@Ó¦ì§}¡Cµ¥¨ìµ{¦¡¿é¤J§¹¡A³Ì«á±¤~ª¾¹D¦r¦ên©ñ¦b¡u1092:0109¡v³B¡C©Ò¥H¡A³Ì«á±ÁÙn¦Aקïì¨Óªºµ{¦¡½X¡A§â¡umov dx,0¡v¡A§ï¦¨¡umov dx,109¡v¡C³o¬O¨Ï¥Î DEBUG ¼¶¼g²Õ¦X»y¨¥¤£¤è«Kªº¦a¤è¡C
¤W±ªº¨Ò¤l¤¤¡A¦b¦ì§}¡u1092:0109¡v¿é¤Jªº¡uDB¡v«ü¥Oªº§@¥Î¡A¨Ã¤£¬OÅý CPU °õ¦æ¬YӰʧ@¡A¦Ó¬OÅý DEBUG ªÅ¥X¬Y¤@¶ô°O¾ÐÅé¡A§@¬°¶ñ¤J¤@¨Ç¦r¤¸©Î¼Æ¦r¡C¹³³o¼Ë¤£¬O«ü¨Ï CPU ¤u§@¡A¦Ó¬O«ü¨Ï²ÕĶ¾¹¤u§@ªº«ü¥O¡AºÙ¬°°²«ü¥O ( pseudo instruction )¡C¡uDB¡v¬O¡udefine byte¡vªº·N«ä¡A¥¦¬O¤@Ó°²«ü¥O¡A¨ä»yªk¬O¡G
DB ¦r¦ê DB ¼ÆÈ¡i,¼ÆÈ,¼ÆÈ¡K¡K¡j
°²¦p DB «á±±µµÛªº¬O¦r¦ê¡A¨º»ò¥²¶·¥H¤@¹ï¡u"¡v©Î¡u'¡v¬A°_¨Ó¡F°²¦p¬O¼ÆȪº¸Ü¡A¥²¶·¦b 0 ¨ì 255 ªº½d³ò¤º¡A¦]¬°¤@Ӧ줸²Õ¥u¯àÀx¦s 0¡ã255 ªº½d³ò¡C¨Ò¦p¡G
DB "Good morning!" DB 100,200
¦pªG¥Î DB ©w¸q¤@Ó¼ÆȪº¸Ü¡A¥i¥H§â³oÓ¦ì§}ªº¼ÆÈ·í¦¨¬O¤@ÓÅܼơA¥¦¯à°÷¨Ìµ{¦¡»Ý¨D§ïÅܨäÈ¡A¬GºÙ¬°°O¾ÐÅéÅܼơA¥i¥H¦bµ{¦¡¤¤Àx¦s¸ê®Æ¥Î¡A¥H«á¦AºCºC´£¨ì¡C¦]¬° DB ¥u¯à©w¸q¤@Ӧ줸²Õªºªø«×¡A©Ò¥H³oÓÅܼƥu¯à¦b 0¡ã255 ªº½d³ò¤º¡C
¥t¦³¤@Ó°²«ü¥O¡ADW¡A¥i¥H©w¸q¤@Ó¦r²Õ ( define word ) ªº¤j¤p¡A¨ä¼ÆÈ´N¯à¦b 0¡ã65535 ªº½d³ò¡A¯àÀ³¥Îªº½d³ò´N¤j±o¦h¤F¡C¦¹¥~¡A¦b MASM 6.x ª©ùØ¡ADB ©M BYTE ¬O¤@¼Ëªº·N«ä¡ADW ©M WORD ¬O¤@¼Ëªº·N«ä¡C
©³¤U¨Ó°µÓ¹êÅç¡A§â DX ¤§È§ï¦¨ 100 ¸Õ¸Õ¬Ý¡G
-a 102 [Enter] 1092:0102 mov dx,100 [Enter] 1092:0105 [Enter] -d 100 l30 [Enter] 1092:0100 B4 09 BA 00 01 CD 21 CD-20 49 20 6C 6F 76 65 20 ......!. I love 1092:0110 61 73 73 65 6D 62 6C 79-20 6C 61 6E 67 75 61 67 assembly languag 1092:0120 65 2E 24 D3 E0 03 F0 8E-DA 8B C7 16 C2 B6 01 16 e.$............. -g [Enter] ┤ ║ ☺ùù!ùù I love assembly language. Program terminated normally -
±q¤W±ªº¹êÅçùØ¡A¥i¥H¬Ý¨ì¡A«e±¦L¥X¨Óªº¦r¤¸¡A¨ä¹ê´N¬Oµ{¦¡½X¡uB4 09 BA 00 01 CD 21 CD 20¡v©Ò¥Nªíªº ASCII ¦r¤¸¡C¤]´N¬O»¡¡AAH¡×9/INT 21 ªA°Èµ{¦¡©Ò¦L¥Xªº¦r¦ê¡A¬O¥Ñ DS:DX ©Ò«üªº¦ì§}¶}©l¦L¥X¨Ó¡A¦Ó¤£ºÞ¦r¦ê¦³¨S¦³·N¸q¡A¦L¨ì¡u$¡v«eªº¦r¤¸µ²§ô¬°¤î¡C¦pªG DS:DX ¦ì§}³]©w¿ù»~¡A³oÓªA°Èµ{¦¡ÁÙ¬O¯à¦L¥X¤@¤j°ïµL·N¸qªº¦r¦ê¡C
©³¤U¦A¨Ó°µ²Ä¤GÓ¹êÅç¡A¦pªG§â DS:DX ³]¬° 1092:fff0¡A¦Ó¥B±q³oÓ¦ì§}¨ì 1092:ffff ³£¨S¦³¡u$¡v¦r¤¸¡A¨º»ò°õ¦æ«á¡A·|µo¥Í¤°»ò¨Æ©O¡HŪªÌ¥i¥H¦Û¦æ¸Õ¸Õ¬Ý¡AÁÙÆZ¦³½ìªº¡C
¤p¤ì°¸¤w¸g¤¶²Ð¤F¨âÓ DOS ªA°Èµ{¦¡¡G¦L¥X¦r¤¸»P¦L¥X¦r¦ê¡A²{¦b¨Ó¤¶²Ð±qÁä½L¤W¿é¤J¦r¤¸ªºªA°Èµ{¦¡¡Cn¦bÁä½L¤W¿é¤J¤@Ó¦r¤¸¡A¥i¥H¥Î AH¡×1/INT 21H ªA°Èµ{¦¡¡C°õ¦æ«á¡A¹q¸£·|µ¥«Ý¨Ï¥ÎªÌ¿é¤J¤@ÓÁä¡Aª½¨ì¨Ï¥ÎªÌ«ö¤U¥ô·N¤@ÓÁä«á¡A¦A«á§â¦r¤¸ªº ASCII ½X¦s¤J AL ¼È¦s¾¹ùØ¡AµM«á°õ¦æ¤U¤@¹D«ü¥O¡C
¥ÎÁä½L¿é¤J¦r¤¸ ¿é¤J¡GAH¡×01H °õ¦æ¡GINT 21H ªð¦^¡GAL¡×¨Ï¥ÎªÌ«ö¤UªºÁä©Ò¥Nªíªº ASCII ½X
¨Ó¬Ý¬Ý©³¤Uªº¨Ò¤l¡G
C:\>debug [Enter] -a [Enter] 1092:0100 mov ah,1 [Enter] 1092:0102 int 21 [Enter] 1092:0104 int 20 [Enter] 1092:0106 [Enter] -g 104 [Enter] ¡÷¹q¸£·|¼È°±¨S¦³¤ÏÀ³ 5 [Enter] ¡÷«öÁä½L¤W¥ô·N¤@ÓÁä¡A¹q¸£¤~·|°õ¦æ¤U¤@¹D«ü¥O¡A³oùؤp¤ì°¸«ö¤U¡u5¡v³oÓÁä AX=0135 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 ¡÷AL¡×35¡A35 ¬O¦r¤¸ 5 ªº ASCII ½X DS=1092 ES=1092 SS=1092 CS=1092 IP=0104 NV UP EI PL NZ NA OS NC -
°õ¦æ AH¡×01/INT 21 ¤@¦¸¡A¥u¯à¿é¤J¤@Ó¦r¤¸¡A¨CÓ¦r¤¸¦û¥Î¤@Ӧ줸²Õ¡A¦pªGn¿é¤J¤@Ó¦r¦ê¡A¨º»ò´N¥²¶·§Q¥Î°j°é¡A¦P®É§â¦s©ó AL ¤º¿é¤Jªº¦r¤¸«O¦s¦b°O¾ÐÅ餺¡C¤U±ªº KEYIN.COM ¥i¥HÅý¨Ï¥ÎªÌ¿é¤J¤@Ó¦r¦ê¡AµM«á§â¥¦Àx¦s¦b°O¾ÐÅ餺¡C©³¤U¬O KEYIN.COM ªº¤º®e¡G
C:\>debug [Enter] -a [Enter] 1092:0100 mov bx,0 [Enter] ¡÷¼È®É¤£ª¾¹D½T¤Á¦ì§}¡A¥ý¥Î 0 ¥N´À 1092:0103 mov ah,1 [Enter] 1092:0105 int 21 [Enter] 1092:0107 mov [bx],al [Enter] ¡÷§â¨Ï¥ÎªÌ¿é¤Jªº¦r¤¸¡A¦s¤J°O¾ÐÅ餺 1092:0109 inc bx [Enter] 1092:010A cmp al,d [Enter] 1092:010C jne 103 [Enter] 1092:010E int 20 [Enter] 1092:0110 [Enter] ¡÷¤w¸gª¾¹D¡A¦ì§} 0110 ³B¤w¸g¤£¬Oµ{¦¡¤º®e¤F¡A©Ò¥H¦¹¦ì§}¥i¥H¦s©ñ¨Ï¥ÎªÌ¿é¤Jªº¦r¤¸ -a 100 [Enter] 1092:0100 mov bx,110 [Enter] ¡÷×¥¿ BX ¤§ªì©lÈ 1092:0103 [Enter] -r cx [Enter] CX 0000 :10 [Enter] -r bx [Enter] BX 0000 :[Enter] -ne:\dos\keyin.com [Enter] -w [Enter] Writing 00010 Bytes -g [Enter] ¡÷¥ý°õ¦æ¬Ý¬Ý Good morning! [Enter] ¡÷¿é¤J¡uGood morning!¡v«á«ö¤U Enter Áä¡Aªí¥Ü¿é¤J§¹¦¨ Program terminated normally -d 100 l20 [Enter] 1096:0100 BB 10 01 B4 01 CD 21 88-07 43 3C 0D 75 F5 CD 20 ......!..C<.u.. 1096:0110 47 6F 6F 64 20 6D 6F 72-6E 69 6E 67 21 0D 85 10 Good morning!... -¡÷¦ì§} 0110 ³B¡A«O¦s¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê
¥E¬Ý³oÓµ{¦¡¡A¦ü¥GÆZªøªº¡A¥J²Ó¤@¬Ý¡A¤j³¡¤Àªºµ²ºc³£¦b«e±¾Ç²ß¹L¡C¥u¦³¦ì§} 0107 ªº¡©MOV [BX],AL¡ª¡B¦ì§} 010A ªº¡©CMP AL,D¡ª¡B¦ì§} 010C ªº¡©JNE 0103¡ª¡A¬O·s¨£¨ì«ü¥O¡A¨Ã¤£¤Ó¦h¡A©Ò¥H¤]¤£»Ýn¤Ó¾á¤ß¡C
¤Wzµ{¦¡n¦b°O¾ÐÅ餤«O¦s¨Ï¥ÎªÌ¿é¤Jªº ASCII ¦r¤¸¡A¨º»ò¡An«O¦s¦b°O¾ÐÅéþ©O¡HÁÙ¬O¸ò«e±¤@¼Ë¡A¦bµ{¦¡½Xªº«á±§a¡I¤@¶}©l¡A¨Ã¤£ª¾¹Dµ{¦¡½X¦bþ¨àµ²§ô¡A©Ò¥H¥ý°²³]¬° 0¡A³o´N¬O¦b¦ì§}¡u0100¡vªºµ{¦¡½X¬°¦ó³o¼Ë¼gªºì¦]¤F¡Cµ¥µ{¦¡½X¿é¤J§¹¡A¤~ª¾¹Dµ{¦¡½X¦b¡u0110¡v³Bµ²§ô¡A©Ò¥H«á±ÁÙn¦A¦¸×¥¿ BX ªºªì©lÈ ( ªì©lÈ´N¬O¤@¶}©lªº¼ÆÈ¡ABX ªº¼ÆÈ·|ÀHµ{¦¡°õ¦æ¦ÓÅÜ°Ê )¡C
²{¦b·Q¹³¡Aµ{¦¡¤w°õ¦æ¨ì¦ì§}¡u0107¡v³B¡A³o®É¨Ï¥ÎªÌ¤w¸g¿é¤J¤@Ó¦r¤¸¤F¡A¸Ó¦r¤¸ªº ASCII ½X¤w¸g¦b AL ¼È¦s¾¹ùر¤F¡A³o¤@¦æ´N¬On§â AL ¤ºªº¸ê®Æ¦s¤J©Î»¡²¾¨ì°O¾ÐÅé¦ì§}¡u0110¡v³B¡Cn§â¸ê®Æ²¾¨ì°O¾ÐÅ餺¡A¥i¥H¥Î¡uMOV¡v«ü¥O¡A¦Ó°O¾ÐÅé¦ì§}«h¬O 0110¡C¦ý¬O¼g¦¨
MOV 0110,AL
¤£¬O«Ü©_©Ç¶Ü¡HMOV «ü¥O·|§â³Ì¥kÃ䪺¹Bºâ¤¸¤§È¶ñ¤J¨ì¥ªÃ䪺¹Bºâ¤¸¡A¦ý¬O 0110 ¬°¤@Ó±`¼Æ¡A¬O¤£¯à§ïÅܪº¡C¦b²Õ¦X»y¨¥¤¤¡A¥H¤@¹ï¤¤¬A¸¹¬A°_¨Óªº¼ÆÈ¡A¦¹¼ÆȪí¬O°O¾ÐÅé¦ì§}¡F¦Ó¾ãÓ¦¡¤l ( ´N¬O¡u[¦ì§}]¡v) ¥Nªí¦¹°O¾ÐÅé¦ì§}ªº¤º®e¡A³oÓ¤º®e¬O¥i¥H§ó§ï¡C©Ò¥Hµ{¦¡½XÀ³¸Ó³o¼Ë¼g¡G
MOV [0110],AL
¤W±ªº¦¡¤l¡A0110 ¥Nªí¦ì§}¡A¦Ó [0110] ¥Nªí¦ì§} 0110 ªº¤º®e¡C¦b³oÓ¨Ò¤lùØ¡A0110 ¬O±`¼Æ¡A¤£¯à§ïÅÜ¡F¦Ó [0110] ¬O°O¾ÐÅé¦ì§} 0110 ùرªº¤º®e¡A¥i¥H§ïÅÜ¡C¹³³o¼Ë°O¾ÐÅé¦ì§}¦pªG¬O¤@Ó±`¼Æ¡A¨º»òª½±µ´Nª¾¹D°O¾ÐÅé¦ì§}¦bþùØ¡A³oºØ¨M©w°O¾ÐÅé¦ì§}ªº¤è¦¡ºÙ¬°¡uª½±µ©w§}¡v¡C¥i¥H¼g¦¨¤U±ªº¼Ë¤l¡G
MOV [±`¼Æ],AL ;ª½±µ©w§}
¥t¥~¡A[±`¼Æ] ¤ºªº¼ÆÈ¥i¥HÅܧó¡A¦]¦¹¥i¥H§â [±`¼Æ] ·í¦¨¬OÅܼơA³o¼ËªºÅܼƺ٬°°O¾ÐÅéÅܼơC( ±q¬YÓÆ[ÂI¨Ó¬Ý¡A¼È¦s¾¹¤]¥i¥H·í¦¨ÅܼơAºÙ¬°¼È¦s¾¹ÅܼơC)
¦A¦^¨ì keyin.com µ{¦¡¡A¦]¬°¥¦¨Ã¤£¬O¥u¿é¤J¤@Ó¦r¤¸¡A©Ò¥H¤U¤@¦¸¿é¤J¦r¤¸«á¡AÁÙ¬O·|²¾¨ì¦P¤@¦ì§}¡A´N·|Åýì¥ý¿é¤Jªº¸ê®Æ®ø¥¢¤£¨£¡Cn¸Ñ¨M³oÓ°ÝÃD¡A±o¥Î¶¡±µ©w§}¡C¶¡±µ©w§}¬O¥Î¤@ÓÅܼƥNªí¦ì§}¡A¦b DOS ²Õ¦X»y¨¥ùØ¡A³oÓÅܼƥu¯à¬O BX¡BBP¡BSI¡BDI ³o¥|ӼȦs¾¹¡A¤£¯à¥Î¨ä¥LÅܼƩμȦs¾¹¡C©Ò¥H´NÅܦ¨¡G
MOV [¼È¦s¾¹],AL ;¶¡±µ©w§}
¦b keyin.com µ{¦¡ùؼȦs¾¹±Ä¥Î BX¡C³o¼Ëªº¸Ü¡A¥un¦b§â¤U¤@µ§¨Ï¥ÎªÌ¿é¤Jªº«öÁä¦s¤J°O¾ÐÅ餧«e¡A¨Ï BX ¼W¥[¤@¡A´N¯à§â¦ì§}§ïÅܦ¨¤U¤@Ó¤F¡A¤]¯à«O¦sì¥ýªº¸ê®Æ¡C
¤§©Ò¥H¥s¶¡±µ©w§}¬O¦]¬°¡A¦b§â¦s¨ú¸ê®Æ®É¡A¥²¶·¥ý¨ì¼È¦s¾¹ùØ¥h¬d¸ß¨ä¤ºªº¼ÆȬO¦h¤Ö¡A¦¹¼ÆÈ¥Nªí¦ì§}¡A¤~§ä¨ì¯u¥¿n¦s¨úªº°O¾ÐÅé¦ì§}¡A¬G¤ê¡u¶¡±µ©w§}¡v¡C³oºØ¨M©w°O¾ÐÅé¦ì§}ªº¤è¦¡¡A¬O²Õ¦X»y¨¥¤¤«Ü±`¨£ªº¤èªk¡A½Ð°Ñ¦Ò¥k¹Ïªº»¡©ú¡C
¦b x86 «ü¥OùØ¡A¤]¦³¥|«h¹Bºâªº«ü¥O¡A¦¹³B¥ý¨Ó½Í½Í´îªk«ü¥O¡C´îªk«ü¥O¦³¤À¾ã¼Æªº´îªk»P¯BÂI¼Æªº´îªk¡A¾ã¼Æªº´îªk«ü¥O¤S¤Àɦì»P¤£É¦ì¡A¤À§O¬O SBB »P SUB¡C¦b¦¹³B¤p¤ì°¸¶È½Í¤£É¦ìªº¾ã¼Æ´îªk¡A´«¥y¸Ü»¡¡A¥u½Í SUB ( subtract ) «ü¥O¡C
SUB ( subtract ) «ü¥Oªº»yªk¬O
SUB ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
SUB ·|§â¥Øªº¹Bºâ¤¸ ( destination operand ) ùرªº¼ÆÈ´î¥h¨Ó·½¹Bºâ¤¸ ( source operand ) ùرªº¼ÆÈ¥H«á¡A¦A§âµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡C¦]¦¹°õ¦æ§¹«á¡A¥Øªº¹Bºâ¤¸¤§È·|§ïÅÜ¡A¨Ó·½¹Bºâ¤¸¤§È¤£ÅÜ¡C¨Ò¦p¤U±µ{¦¡¡G
MOV AX,9 MOV BX,8 SUB AX,BX
°õ¦æ§¹«á¡AAX ¬°¤@¡ABX ¬°¤K¡C°£¤F¤Q¤»¦ì¤¸¼È¦s¾¹¥i§@¬°¹Bºâ¤¸¥~¡A¤K¦ì¤¸ªº¼È¦s¾¹¡B¤K¦ì¤¸©Î¤Q¤»¦ì¤¸ªº°O¾ÐÅéÅܼƤ]³£¥i¥H§@¬°¹Bºâ¤¸¡A¦ý¬O¨Ó·½¹Bºâ¤¸»P¥Øªº¹Bºâ¤¸ªº¼e«×n¤@P¡C¨Ò¦p¡G
SUB [110],AX SUB [110],AL SUB DL,[120] SUB CX,100
³£¬O¦Xªkªº«ü¥O¡C¨Ó·½¹Bºâ¤¸¤]¥i¥H¨Ï¥Î±`¼Æ¡A¹³¤W±ªº²Ä¥|Ó¨Ò¤l¡A¦ý¬O´N¤£¯à·í§@¥Øªº¹Bºâ¤¸¡A³o¤]¬O«Ü¦X²zªº¡C
SUB °£¤F¯àpºâ¥Xµ²ªG¥~¡AÁÙ·|§âpºâ«áªº¬Y¨Çª¬ºA°O¿ý°_¨Ó¡A³o¨Ç°O¿ý°_¨Óªºª¬ºA¥]§t①¬O§_·¸¦ì¡B②µ²ªG¬O§_¬°t¡B③µ²ªG¬O§_¬°¹s¡B④¬O§_»²§Uɦì¡B⑤¬O§_¦P¦ì¡B⑥¬O§_ɦì¡A¦@¤»ºØ¡C³o¤»ºØª¬ºA³£·|¦b SUB ¹Bºâ§¹«á¡A°O¿ý¦b CPU ùتººX¼Ð¼È¦s¾¹¡C³o¨Çª¬ºA¬Ý°_¨Ó«Ü½ÆÂø¡A¦]¦¹¤p¤ì°¸¥u¤¶²Ðµ²ªG¬O§_¬°¹s¡A³o¤]¬O¥»³¹n¥Î¨ìªº¡C
ºX¼Ð¼È¦s¾¹¬O¤Q¤»¦ì¤¸ªº¼È¦s¾¹¡A²Ä¤»Ó¦ì¤¸´N¬O¹sȺX¼Ð ( zero flag¡A²ºÙ ZF )¡C·í¹Bºâµ²ªG¬°¹s¡ACPU ·|§â¹sȺX¼Ð³]¬°¤@¡A¤Ï¤§³]¬°¹s¡C
²{¦b¥Î DEBUG ¨ÓÀËÅç¹sȺX¼Ð¡C¥ý¿é¤J©³¤Uµ{¦¡¡G
C:\>debug [Enter] -a [Enter] 1092:0100 mov ax,900 [Enter] 1092:0103 sub ax,ax [Enter] ¡÷§â AX ´î±¼ AX¡Aµ²ªG¥²¬°¹s 1092:0105 [Enter] -r [Enter] ¡÷°õ¦æ«e¡A¥ýÀˬd¦U¼È¦s¾¹ AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1092 ES=1092 SS=1092 CS=1092 IP=0100 NV UP EI PL NZ NA PO NC ¡÷NZ ¥Nªí¹sȺX¼Ð²{¦b¬O¹s 1092:0100 B80009 MOV AX,0900 -t [Enter] AX=0900 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1092 ES=1092 SS=1092 CS=1092 IP=0103 NV UP EI PL NZ NA PO NC 1092:0103 29C0 SUB AX,AX -t [Enter] AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1092 ES=1092 SS=1092 CS=1092 IP=0105 NV UP EI PL ZR NA PE NC ¡÷SUB AX,AX ¹Bºâ§¹«á¡A 1092:0105 F3 REPZ ¹sȺX¼Ð³]¬°¤@¡A¥Î ZR ªí¥Ü 1092:0106 AE SCASB -
¹sȺX¼Ð¥u¦³¨âºØª¬ºA¡A0 ©Î 1¡A¦b DEBUG ùØ¡A¤À§O¥Î NZ ©M ZR ªí¥Ü¡C¥i¯à·|¦³¤H¥H¬°¤p¤ì°¸¼g¿ù¤F¡A0 ¤£¬O ZERO ¶Ü¡H«ç»ò¹sȺX¼Ð¬° 0 ®É¡A¤Ï¦Ó¬O¥H NZ ( Non Zero ) ªí¥Ü¡CºX¼Ð¼È¦s¾¹¤§È³£¬O¥HÅÞ¿èȪí¥Ü¡G1 ¥Nªí¯u¡A0 ¥Nªí°²¡C¹sȺX¼Ð¥Nªí¡u¹Bºâµ²ªG¬°¹s¬O§_¬°¯u¡v¡A¦]¦¹¦pªG¹Bºâµ²ªG¬°¹s¡Aªí¥Ü«e±¡u¡v¤ºªº±Ôz¬°¯u¡A¦]¦¹¹sȺX¼Ð³]¬° 1¡A¥ç¥i»¡¹sȺX¼Ð³Q³]©w ( set )¡F¤Ï¤§¡A¹Bºâµ²ªG¤£¬°¹s¡Aªí¥Ü«ez¡u¡v¤º±Ôz¬°°²¡A¦]¦¹¹sȺX¼Ð³]¬° 0¡A¹sȺX¼Ð³Q²M°£ ( clear )¡C
¦b DEBUG ùØ¡Aªí¥Ü¹sȺX¼Ð®É¡AÁÙ¬O¥H¹Bºâµ²ªGªí¥Ü¸û¬°¤è«K¡A¦]¦¹¹Bºâµ²ªG¬°¹s¡A¥Î ZR ªí¥Ü¡F¤£¬°¹s¡A¥Î NZ ªí¥Ü¡C©Ò¥H¬Ý°_¨Ó¦ü¥G¥Ù¬Þ¡A¨ä¹ê¤@ÂI¤]¤£·|¡C¤p¤ì°¸¾ã²z¦p¤Uªí¡G
¹Bºâµ²ªG | ¹sȺX¼Ð | ³]©w©Î²M°£ | DEBUG ¤ºÅã¥Ü |
¹s | 1 | ³]©w ( set ) | ZR |
¤£¬O¹s | 0 | ²M°£ ( clear ) | NZ |
Á¿§¹¤F SUB «ü¥O ( ¨ä¹êÁÙ¦³«Ü¦hºX¼Ð·|¨ü¨ì SUB ¼vÅTªº³¡¤À¡AÁÙ¨SÁ¿ )¡A©³¤U¨Ó»¡»¡ CMP «ü¥O¡CCMP «ü¥O¡ACMP ¬O¤ñ¸û«ü¥O¡A¤ñ¸û¨âÓ¹Bºâ¤¸ªº«ü¥O¡A¨ä»yªk¬O¡G
CMP ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
¨Æ¹ê¤W¡ACPU ¦b°õ¦æ CMP «ü¥O®É¡A¨ä¹ê¬O°õ¦æ SUB «ü¥O¡A®t§O¥u¬O¦b©ó¡A³Ì«á CMP ¨S¦³§âµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡A¦Ó SUB «h§âµ²ªG¦s¤J¥Øªº¹Bºâ¤¸¡C
¹q¸£µ{¦¡¯à¶i¦æ¤ñ¸û½ÆÂøªº¹Bºâ¡A¥i¥H§PÂ_¬Y¨Ç±ø¥ó¦¨¥ß®É¡A°õ¦æ¬Y¤@¬qµ{¦¡¡F¥t¤@±ø¥ó¦¨¥ß®É¡A°õ¦æ¥t¤@¬qµ{¦¡¡C¹³³o¼Ë¦b¤£¦P±ø¥ó¤U¡Aµ{¦¡¶i¦æ¤£¦Pªº¬yµ{¡AºÙ¬°±ø¥ó¸õÅD¡C¦b x86 «ü¥O¤¤¦³«Ü¦h±ø¥ó¸õÅD«ü¥O¡A¥»³¹¶È¤¶²Ð JNE »P JE ¨âÓ«ü¡C
JE/JNE «ü¥Oªº»yªk¬O
JE ¦ì§} JNE ¦ì§}
JE ªº·N«ä¬O¡A¦pªG¬Ûµ¥´N¸õÅD ( jump short if equal )¡An¸õ¨ìªº¥Øªº¦ì§}«h¬O JE «á±±µµÛªº¦ì§}¡CJE «ü¥O©M JZ «ü¥O¬O¤@¼Ò¤@¼Ëªº¡C¨Ò¦p¤U±µ{¦¡¡G
MOV CX,2 CMP CX,2 JE 100 INC CX
JE ±`±`¦b CMP «ü¥O¤§«á°õ¦æ¡C¹³¤W±ªºµ{¦¡¡A¥ý¤ñ¸û CX »P 2¡A¦pªG¬Û¦P¡A±±¨îÅv·|¸õ¨ì¦ì§} 100 ³B°õ¦æ¡A¦Ó¤£¬O°õ¦æ«á±ªº¡uINC CX¡v«ü¥O¡C
JE ¨ä¹ê¬OÀˬd¹sȺX¼Ð¡A¦pªG¹sȺX¼Ð³Q³]©w¡A´N·|µo¥Í¸õÅD¡F¦pªG¹sȺX¼Ð³Q²M°£¡A´N¤£·|¸õÅD¡A¦Ó¬O¨Ì·Ó¶¶§Ç°õ¦æ JE ªº¤U¤@¹D«ü¥O¡C
JNE «ü¥O»P JE «ê¦n¬Û¤Ï¡AJNE ¬O«ü¦pªG¤£¬Ûµ¥´N¸õÅD¡CJNE ©M JNZ ¬O¤@¼Ò¤@¼Ëªº¡CJNE ·|Àˬd¹sȺX¼Ð¡A¦pªG²M°£¡A¤~µo¥Í¸õÅD¡C
¤£ºÞ JE/JZ ©Î JNE/JNZ ¥u¯à¦b¦P¤@°Ï¬q¡A©¹§C¦ì§}³Ì¦h¸õ 128 Ӧ줸²Õ©Î©¹°ª¦ì§}³Ì¦h¸õ 127 Ӧ줸²Õ¡A¤@¯ëµù°O¬° ¡Ð128 ©Î ¡Ï127¡C¹³³o¼Ëªº¸õÅDºÙ¬°¡uµuµ{¸õÅD¡v¡C
¦b»¡©ú¤F¡u¶¡±µ©w§}¡v¡B¡u¤ñ¸û«ü¥O¡v»P¡uJNE «ü¥O¡v«á¡A§Ú̦A¦^ÀY¬Ý¬Ý KEYIN.COM µ{¦¡¡A¥Î DEBUG ¸ü¤J KEYIN.COM¡A¦A¤Ï²ÕĶ¡G
C:\>debug e:\dos\keyin.com [Enter] -u 100 10e [Enter] 10B4:0100 BB1001 MOV BX,0110 10B4:0103 B401 MOV AH,01 10B4:0105 CD21 INT 21 10B4:0107 8807 MOV [BX],AL 10B4:0109 43 INC BX 10B4:010A 3C0D CMP AL,0D 10B4:010C 75F5 JNZ 0103 10B4:010E CD20 INT 20
²Ä¤@¦æ§â BX ¤§È³]¬° 110¡A³o¬OÓ¦ì§}¡A¦¹¦ì§}±NÀx¦s¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê¡C±µ¤U¨Óªº¨â¦æ¬OÁä½L¿é¤J¦r¤¸ªº DOS ªA°Èµ{¦¡¡Aµ¥«Ý¨Ï¥ÎªÌ«öÁä¡C·í¨Ï¥ÎªÌ«ö¤U¥ô¦ó¤@Áä«á¡A¦¹«öÁä©Ò¥Nªí¦r¤¸ªº ASCII ½s¸¹·|Àx¦s¦b AL ùر¡C¦pªG¨Ï¥ÎªÌ«ö¤U¯S®í«öÁä¡A¦³¨Ç¬O¨S¦³ ASCII ½s¸¹¡A¦³¨Ç«h¦³¡C¹³«ö¤U Enter Áä¡A¨ä ASCII ½s¸¹´N¬O D¡C
±µ¤U¨Óªºµ{¦¡¦b¦ì§} 0107 ³B¡An§â AL ¤§È¦s¤J°O¾ÐÅ餤¡CµM«á¨Ï BX ȼW¤@¡A¦¹¥Øªº¦b©ó¨Ï BX ©Ò«ü¦V¤U¤@Ó°O¾ÐÅé¦ì§}¡C±µ¤U¨Ó¬O¤ñ¸û AL ¤§È¬O§_¬° D¡A¨Æ¹ê¤W¡A³oÓ«ü¥O´N¬OÀˬd¨Ï¥ÎªÌ¬O§_«ö¤U Enter Áä¡C±µ¤U¨Óªº«ü¥O¬O JNZ¡A¦¹³B²£¥Í¨âºØ±¡§Î¡G①¦pªG AL ¤£¬° D¡A¨Ï¥ÎªÌ«ö¤Uªº¤£¬O Enter Áä¡A´N¸õ¨ì 0103 ³B¡F②§_«hÄ~Äò°õ¦æ¤U¤@¹D«ü¥O¡A§Y¡uINT 20¡v¡Aµ²§ôµ{¦¡¡A¨SÔ£¦n»¡ªº¡C
¦pªG¬O²Ä¤@ºØ±¡§Î¡A¤S·|¦^¨ì¦ì§} 0103 ³Bµ¥«Ý¨Ï¥ÎªÌ¥ÑÁä½L¿é¤J¦r¤¸¡A¦pªG¨Ï¥ÎªÌ«ö¤U¤@Áä¡A´N·|§â«öÁä¦r¤¸ªº ASCII ½s¸¹¦s¤J AL ùر¡C¤U¤@«ü¥O¬O§â AL ¦s¤J BX ©Ò«üªº°O¾ÐÅ餺¡Anª`·Nªº¬O BX ¤w¸g¤£¬Oì¨ÓªºÈ¤F¡A¦Ó¬O¤ñì¥ýȦh¤@¡A·N«ä´N¬O¡ABX «ü¦V¤U¤@Ó°O¾ÐÅé¦ì§}¡A©Ò¥H¦s¤Jªº AL ¤£·|»\¹L¤W¤@¦¸¿é¤Jªº¦r¤¸¡C
³oºØ±¡§Î·|¤@ª½«½Æ¡Aª½¨ì¨Ï¥ÎªÌ«ö¤U Enter Áä¡A¤~·|µ²§ôµ{¦¡¡C³oÓµ{¦¡ªº¬yµ{¡A¥i¥H¥Î¥k¹Ï»¡©ú¡C
¦b¥»³¹¡A¤p¤ì°¸n¤¶²Ðªº²Ä¤TÓ DOS ªA°Èµ{¦¡¬O½w½Ä°Ï¦¡ªºÁä½L¿é¤J¡A³oÓ·N«ä¬O¦b°õ¦æ INT 21 «e¡A¨Æ¥ý·Ç³Æ¦n¤@¶ô°O¾ÐÅé¡A¦¹¶ô°O¾ÐÅéºÙ¬°½w½Ä°Ï ( buffer )¡A¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê·|³Q INT 21 ¦s©ñ©ó³o¶ô½w½Ä°Ï¤º¡C¨Ï¥Î¤èªk¦p¤U¡G
½w½Ä°Ï¦¡ªºÁä½L¿é¤J¦r¦ê ¿é¤J¡GAH¡×0AH ¡@¡@¡@DS:DX¡×¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê¦s©ñ¦ì§} ( §Y½w½Ä°Ï¦ì§} ) ¡@¡@¡@½w½Ä°Ïªº²Ä¹sӦ줸²Õ¡×½w½Ä°Ï¤j¤p¡Ð2¡×³Ì¦h¿é¤Jªº¦ì¤¸²ÕӼơÐ1 ( ¤£§t Enter ) ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@( ³æ¦ì¬O¦ì¤¸²Õ¡A¦b°õ¦æ INT 21H «en¨Æ¥ý¶ñ¦n ) °õ¦æ¡GINT 21H ¿é¥X¡GDS:DX ªº²Ä¤@Ӧ줸²Õ¡×¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦r¤¸Ó¼Æ ( ³æ¦ì¬O¦ì¤¸²Õ )¡A¤£¥]§t Enter ¦r¤¸ ¡@¡@¡@DS:DX ªº²Ä¤GӦ줸²Õ¶}©l¬O¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê
½w½Ä°Ïªº¦w±Æ¤è¦¡¬O¡G
©³¤U¨Ó¬Ý¬Ý¥Î½w½Ä°Ï¦¡ªº¤è¦¡¿é¤J¦r¦êªº¨Ò¤l¡G
C:\>debug [Enter] -a [Enter] 1D67:0100 mov ah,a [Enter] 1D67:0102 mov dx,110 [Enter] 1D67:0105 int 21 [Enter] 1D67:0107 int 20 [Enter] 1D67:0109 [Enter] -e 110 6 [Enter] ¡÷½w½Ä°Ï¦b¦ì§} 0110 ³B -d 110 L10 [Enter] 1D67:0110 06 8B C6 F7 0A 0A D0 D3-48 DA 2B D0 34 00 56 1D ........H.+.4.V. -g [Enter] └─¦ì§} 0110 ³B¬° 6¡Aªí¥Ü½w½Ä°Ï±q¦ì§} 110 ³B¶}©l¦@ 8 Ӧ줸²Õ 12345 [Enter] ¡÷¿é¤J¡u12345¡v¦@ 5 Ó¦r¤¸«á¡A§Y¨Ï¦A¿é¤J§ó¦h¦r¤¸¡ADOS ¤£·|±µ¨ü¤]¤£Åã¥Ü¡A¥u¯à«ö ENTER Áäµ²§ô¿é¤J Program terminated normally -d 110 l10 [Enter] 1D67:0110 06 05 31 32 33 34 35 0D-48 DA 2B D0 34 00 56 1D ..12345.H.+.4.V. -r ip [Enter] └─¦ì§} 111 ³B¬O¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦ì¤¸²ÕӼơA¤£¥]§t 0D IP 0100 :100 [Enter] -g [Enter] abc [Enter] ¡÷¶È¿é¤J¡uabc¡v¦@ 3 Ó¦r¤¸«á´N«ö ENTER Áäµ²§ô¿é¤J Program terminated normally -d 110 l10 [Enter] ┌─¦ì§} 111 ³B¬O¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦ì¤¸²ÕӼơA¤£¥]§t 0D¡A0D ¤§«áªº¬O¤§«e´Ý¾lªº¸ê®Æ 1D67:0110 06 03 61 62 63 0D 35 0D-48 DA 2B D0 34 00 56 1D ..abc.5.H.+.4.V.
¤W±ªº¹Lµ{¤¤¡A½w½Ä°Ïªº¦ì§}¬O±q 110 ¨ì 117¡C½w½Ä°Ï²Ä¹sӦ줸²Õ¬O 6¡Aªí¥Ü½w½Ä°Ï¤j¤p¬O 8 Ӧ줸²Õ¡F¦©°£ 0D ¦r¤¸¡B¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦ì¤¸²ÕӼƥH¤Î²Ä¹sӦ줸²Õ¡A¨Ï¥ÎªÌ³Ì¦h¥u¯à¿é¤J 5 Ó¦r¤¸¡C¨Ï¥ÎªÌ¦b¿é¤J 5 Ó¦r¤¸¤§«e¡AÀH®É¥i¥H«ö ENTER Áäµ²§ô¿é¤J¡C¦pªG¨Ï¥ÎªÌ¤w¿é¤J 5 Ó¦r¤¸¡A§Y¨Ï¦A«ö¨ä¥LÁä¡ADOS ¤£·|±µ¨ü¤]¤£·|Åã¥Ü¡A¤Ï¦Ó·|¨Ï DOS µo¥X¡u¹Í¡vÁn ( ¦ý¦bµêÀÀ¾÷¾¹¤¤µL¦¹µ®Ä )¡A¥u¦³·í¨Ï¥ÎªÌ«ö¤U Enter Áä«á¡ADOS ·|§â¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦r¤¸Ó¼Æ ( ¤£§tÂk¦ì¦r¤¸ )¡A¦s¤J½w½Ä°Ï²Ä¤@Ӧ줸²Õ¤º¡C
PTR ªº»yªk¬O
¸ê®ÆÃþ«¬ PTR ¹Bºâ¦¡
¸ê®ÆÃþ«¬¬O«ü WORD ©Î BYTE µ¥¤Q¤»¦ì¤¸©Î¤K¦ì¤¸ªø«×ªº¾ã¼Æ¡C¦]¬°²Õ¦X»y¨¥n¨D¹Bºâ®É¡A¨âÓ¹Bºâ¤¸ªºªø«×¥²¶·¬Û¦P¡A¦ý¬O¦pªG¨âÓ¹Bºâ¤¸ªø«×µLªk½T©w¡A©Î¬On±j¢×¥¿¬YÓ¹Bºâ¤¸ªºªø«×®É¡A´N¥i¥H¨Ï¥Î PTR °²«ü¥O¡C
¨Ò¦p¤W±ªºµ{¦¡¡A¦b¦ì§} 0105 ³Bªº«ü¥O¡An³]©w½w½Ä°Ï¤º¨Ï¥ÎªÌ¥i¥H¿é¤Jªº³Ì¤j¦r¤¸¼Æ¬° 10¡A¦ý¬O¦pªG¼g¦¨¡uMOV [0110],10¡v¡A¤£¯à½T©w¦ì§} 110 ©Ò¦bªº°O¾ÐÅéÅܼƬO¦ì¤¸²ÕÁÙ¬O¦r²Õ¡A¦P¼Ëªº¡A10 ¤]µLªk½T©w¬O¦ì¤¸²Õ©Î¦r²Õ¡C¹³³oºØ¨âÓ¹Bºâ¤¸³£¤£½T©w®É¡A´N±o¨Ï¥Î PTR ¹Bºâ¤l«ü©w¡C
¦]¦¹¿é¤Jµ{¦¡½X®É¡A±o¥Î¡uMOV BYTE PTR [110],10¡v¡A©Î¬O¡uMOV [110],BYTE PTR 10¡v¡A¨âªÌ¬O¤@¼Ëªº·N«ä¡C¥un±j¢¨ä¤¤¤@Ó¹Bºâ¤¸¬O¦ì¤¸²Õ¡A¥t¤@Ó¹Bºâ¤¸ªºªø«×¤]´N¯à½T©w¬O¦ì¤¸²Õ¤F¡C
³oÓªA°Èµ{¦¡Åý¹q¸£°±¤U¨Ó¡Aµ¥¨Ï¥ÎªÌ«ö¤U¤@ÓÁä¦AÄ~Äò¡A©Ò«ö¤UÁ䪺 ASCII ½X·|³Q¦s¤J¨ì AL ¼È¦s¾¹ùØ¡C
¥ÎÁä½L¿é¤J¦r¤¸ ¿é¤J¡GAH¡×01 °õ¦æ¡GINT 21H ªð¦^¡GAL¡×¨Ï¥ÎªÌ«ö¤UªºÁä©Ò¥Nªíªº ASCII ½X
¦b¿Ã¹õ¤W¦L¥X¤@Ó¦r¦ê¡G
¦b¿Ã¹õ¤W¦L¥X¦r¦ê ¿é¤J¡GAH¡×09H ¡@¡@¡@DS:DX¡×n¦L¥Xªº¦r¦ê°_©l¦ì§} °õ¦æ¡GINT 21H µù¡G¦r¦ê¥²¶·¥H¡u$¡vµ²§À¡C
³oÓªA°Èµ{¦¡Åý¹q¸£°±¤U¨Ó¡Aµ¥¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê¡A«ö¤U Enter Áä«áªí¥Ü¿é¤J§¹¦¨¡A¦¹¦r¦ê·|³Q INT 21 ¦s©ñ©ó¤@¶ô°O¾ÐÅ餺¡A¦¹°O¾ÐÅéºÙ¬°½w½Ä°Ï¡C
½w½Ä°Ï¦¡ªºÁä½L¿é¤J¦r¦ê ¿é¤J¡GAH¡×0AH ¡@¡@¡@DS:DX¡×¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê¦s©ñ¦ì§} ( §Y½w½Ä°Ï¦ì§} ) ¡@¡@¡@½w½Ä°Ïªº²Ä¹sӦ줸²Õ¡×½w½Ä°Ï¤j¤p¡Ð2¡×³Ì¦h¿é¤Jªº¦ì¤¸²ÕӼơÐ1 ( ¤£§t Enter ) ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@( ³æ¦ì¬O¦ì¤¸²Õ¡A¦b°õ¦æ INT 21H «en¨Æ¥ý¶ñ¦n ) °õ¦æ¡GINT 21H ¿é¥X¡GDS:DX ªº²Ä¤@Ӧ줸²Õ¡×¨Ï¥ÎªÌ¹ê»Ú¿é¤Jªº¦r¤¸Ó¼Æ ( ³æ¦ì¬O¦ì¤¸²Õ )¡A¤£¥]§t Enter ¦r¤¸ ¡@¡@¡@DS:DX ªº²Ä¤GӦ줸²Õ¶}©l¬O¨Ï¥ÎªÌ¿é¤Jªº¦r¦ê
DB ªº»yªk¬O
DB ¦r¦ê DB ¼ÆÈ[,¼ÆÈ,¼ÆÈ¡K¡K]
DB ¬OÅý DEBUG ©Î²ÕĶ¾¹ªÅ¤U´XӦ줸²Õ¡A·í°µÅܼƩάO¦r¦ê¡C¦pªG¬O¦r¦ê¡A¥²¶·¥H¤@¹ï¡u"¡v©Î¡u'¡v¬A°_¨Ó¡F°²¦p¬O¼ÆȪº¸Ü¡A¥²¶·¦b 0 ¨ì 255 ªº½d³ò¤º¡A¦]¬°¤@Ӧ줸²Õ¥u¯àÀx¦s 0¡ã255 ªº½d³ò¡C
»P DB Ãþ¦üªº°²«ü¥O¡AÁÙ¦³ DW¡BDD¡K¡Kµ¥¡A¤À§O¬O©w¸q¦r²Õ¡BÂù¦r²Õ¡K¡K¡C¦r²Õ¬O¤Q¤»¦ì¤¸¡AÂù¦r²Õ¬O¤T¤Q¤G¦ì¤¸¡C
PTR ¥Î©ó±j¢¨Ï«á±ªº¹Bºâ¦¡µ²ªG¬°«e±©Òªí¥Üªº¸ê®ÆÃþ«¬¡CPTR »yªk¬O
¸ê®ÆÃþ«¬ PTR ¹Bºâ¦¡
©³¤U¬O±`¨£ªº¨Ò¤l¡G
MOV WORD PTR [110],20
³oÓ«ü¥O·|Åý¦ì§} [0110] ªºÅܼƦ¨¬°¤@Ó¦r²Õªºªø«×¡A¦]¦¹¦¹«ü¥O°õ¦æ§¹«á¡A¦ì§} 0110 ¦s©ñ 20¡A¦ì§} 0111 ¦s©ñ 00¡C
CMP ªº»yªk¬O
CMP ¥Øªº¹Bºâ¤¸,¨Ó·½¹Bºâ¤¸
JE »P JZ ¬O¤@¼Ëªº·N«ä¡AJNE »P JNZ ¬O¤@¼Ëªº·N«ä¡A¨ä»yªk¬O
JE xxxx JNE xxxx
¤W±ªº xxxx ³£¬O¥Nªí¦ì§}¡C
CMP ±`»P JNE/JNZ ©Î JE/JZ °t¦X¨Ï¥Î¡A¤ñ¸û¥Øªº¹Bºâ¤¸»P¨Ó·½¹Bºâ¤¸¡A§â¤ñ¸û«áªºª¬ºA¦s¤JºX¼Ð¼È¦s¾¹¡AµM«á¥Ñ JE ©Î JNE §PÂ_¦p¦ó¸õÅD¡C¨Ò¦p¡G
CMP AX,BX JE xxxx
ªí¥Ü¦pªG AX »P BX ¬Ûµ¥¡Aµ{¦¡±±¨îÅv·|¸õÅD¨ì¦ì§} xxxx ³B°õ¦æ¡C
CMP AX,BX JNE xxxx
ªí¥Ü¦pªG AX ¤£µ¥©ó BX¡Aµ{¦¡±±¨îÅv·|¸õÅD¨ì¦ì§} xxxx ³B°õ¦æ¡C
ª½±µ©w§}¬O§â°O¾ÐÅé¦ì§}¥H¤@¹ï¤¤¬A©· ( [¡B] ) ¬A°_¨Ó¡A¥Nªí¬YÓ°O¾ÐÅéÅܼơA³oÓ°O¾ÐÅéÅܼƪº¤º®e¥i¥H§ïÅÜ¡C¨Ò¦p¡G
MOV [110],10
ªí¥Ü§â¼ÆÈ 10 ¦s¤J°O¾ÐÅé¦ì§} 110 ³B¡C¹³³o¼Ëª½±µ¥H¼ÆȪí¥Ü°O¾ÐÅé¦ì§}ªº¤è¦¡¡A¨Ó¨M©wþ¤@Ó°O¾ÐÅé¦ì§}¡AºÙª½±µ©w§}
¦pªG§â BX¡BBP¡BSI¡BDI ¥H¤@¹ï¤¤¬A©·¬A°_¨Ó¡A¤]¥Nªí¬YÓ°O¾ÐÅéÅܼơAn¨ú±o°O¾ÐÅé¦ì§}®É¡AÁÙn¥ý¥hŪ¨ú¼È¦s¾¹¤º®e¡A¬GºÙ¬°¶¡±µ©w§}¡C¦ý¬O¦]¬°³o¨Ç¼È¦s¾¹¤§È¥i¥H§ïÅÜ¡A©Ò¥H¬O«Ü±`¨Ï¥Îªº©w§}¤è¦¡¡C¨Ò¦p¡G
MOV AL,[BX]