¦b³o¤@³¹ùØ¡A¤p¤ì°¸·Q¸ò¦U¦ì½Í½Í²Õ¦X»y¨¥·|¨Ï¥Î¨ìªº¡A¦³ÃöÀɮ׳B²zªº DOS ªA°Èµ{¦¡¡A¥H§Q¼¶¼g¤U¤@³¹ªº½d¨Ò¡C©Ò¿×Àɮ׳B²zªº·N«ä¬O«ü«Ø¥ßÀɮסBקïÀɮסB§R°£ÀÉ®×µ¥µ¥ªº¤u§@¡C¦ý¬O¦b¶i¤J¥DÃD¤§«e¡A½Ð°Ñ¾\ªþ¿ý¤»ªº¡uDOS ¤¤ªºÀx¦s¸Ë¸m¡B¥Ø¿ý¡B¸ô®|»PÀɮסv¡A¦]¬°³o¨ÇÆ[©À¬OÀɮ׳B²z©Ò¥²¶·¨ã³Æªºª¾ÃÑ¡A§Y¨Ï¨ì¤F Windows §@·~¨t²Î®É¥N¡A³o¨ÇÆ[©À¤´µM¬O¤£Åܪº¡C
DOS ³B²zÀɮתº¤è¦¡¦³¨âºØ¡A¤@¬O±Ä¥ÎÀÉ®×±±¨î°Ï¶ô ( file control block¡AÁY¼g¬° FCB )¡A¥t¤@ºØ¬OÀÉ®×¥N½X ( file handle )¡C«eªÌ³B²zÀɮתº¤è¦¡¤w¸g¸¨¥î¤F¡A¦Ó«áªÌ¤@ª½¨ì¤µ¤éªº Windows 11 §@·~¨t²ÎÁÙ¦A¨Ï¥Î¡A¦]¦¹¤p¤ì°¸¶È»¡©úÀÉ®×¥N½XªºÀɮ׳B²z¤è¦¡¡C
·í§@·~¨t²Î ( ¨Ò¦p DOS¡BWindows µ¥ ) ¦b¶}±ÒÀɮשΫإßÀɮפ§«á¡A´Nµ¹³oÓÀɮפ@Ó¸¹½X¡A³oÓ¸¹½X´NºÙ¬°¡uÀÉ®×¥N½X¡v¡A¥¦¨ä¹ê¬O¤@Ó¥¿¾ã¼Æ¡A¥H«á§@·~¨t²Î´N¥ÎÀÉ®×¥N½X¥N´ÀÀɮצWºÙ¡A¶i¦æŪ¨ú¡B¼g¤J¡B§R°£¡B½Æ»sµ¥¤u§@¡A¦Ó¤£¦Aª½±µ¥ÎÀɦW¤F¡C³oºØ±¡§Î¦³ÂIÃþ¦ü°Ñ¥[¤j¾Ç¤J¾Ç¦Ò¸Õ¡A¸Õ°È©eû·|µ¹§A¤@Ó¿W¤@µL¤Gªºã¦ÒÃÒ¸¹½X¡A¦Ó«á¥h¸Õ³õÀ³¸Õ¡B¬dº]¡B©ñº]³£¥H³oÓ¸¹½X¥N´À©m¦W¡C
¶¶±a»¡¤@»¡ handle ªºÂ½Ä¶¡Chandle ¬O«üª«Å骺§â¤â¡A¨Ò¦p¯ùªMªº§â¤â¡C·í§ÚÌn³Ü¯ù®É¡A¥²©w¤â´¤¦í§â¤â¨Ï¥Î¡A¦]¦¹ handle ¤]¦³¾ÞÁa¡B³B²zªº·N«ä¡C·í§Ú̹ïÀɮ׶i¦æŪ¨ú¡B¼g¤J¡B§R°£¡B½Æ»sµ¥¤u§@¡A¤£¤]¹ïÀɮ׶i¦æ¾ÞÁa¡B³B²z¶Ü¡H¦Ó¨ä¾ÞÁa¡B³B²zªº¹ï¶H¡A¤£´N¬OÀÉ®×¥»¨¡A¦]¦¹±N handle ½¦¨¡uÀÉ®×¥N½X¡v( ¤j³°Â½¦¨¡u¥y¬`¡v)¡C
¨Ï¥ÎÀÉ®×¥N½X³B²zÀɮסA¥²©w·|©I¥s DOS ªA°Èµ{¦¡À°§Ú̳B²zº¾¸Hªº¨Æ±¡¡A¤Uªí¤¤¡uÀɮצs¨ú¡v¨º¤@Ä檺ªA°Èµ{¦¡³£»PÀÉ®×¥N½X¦³Ãö¡A¤¤¶¡¨º¤@Äæ«h»PÀɮ׺޲z¦³Ãö¡A¥kÄæ»P¥Ø¿ýºÞ²z¦³Ãö¡G
¦]¬° DOS §@·~¨t²Î¤¤¡A¤Þ¶i¤F¥Ø¿ýÆ[©À¨ÓºÞ²zÀɮסA¨Ã¥BÁٯह³\¨Ï¥ÎªÌ«Ø¥ß¦h¼h¥Ø¿ý¡A¦]¦¹¦b´£¨ì¤@ÓÀɮצWºÙ®É¡A³Ì·Ç½TªºÁ¿ªk¬O¼g¥X±qºÏºÐ¾÷¦WºÙ¡B®Ú¥Ø¿ý¶}©l¨ìÀɮשҦbªº¥Ø¿ý¡BÀɮתº¥DÀɦW¡B°ÆÀɦW¥þ³¡³£¼g¥X¨Ó¡A³o¼Ëªí¥ÜÀɮצWºÙªº¤è¦¡ºÙ¬°¡u§¹¾ãªºÀɦW¡v¡A¦Ó±qºÏºÐ¾÷¦WºÙ¡B®Ú¥Ø¿ý¶}©l¨ìÀɮשҦbªº¥Ø¿ýºÙ¬°¡uµ´¹ï¸ô®|¡v¡C
¨Ò¦p¡A¦b¦w¸Ë MASM 6.11 ®É¡A¨ä¦w¸Ëµ{¦¡·|n¨D¿é¤J¦w¸Ë¦bþӥؿý¡A°²³]¬O C: ºÏºÐ¾÷ªº¡u\MASM611¡v¥Ø¿ý¡A¨º»ò¦w¸Ëµ{¦¡·|§â²ÕĶ¾¹ ( MASM 6.11 ªº²ÕĶ¾¹¬O ML.EXE ) ¦w¸Ë¦b¡uC:\MASM611\BIN¡v¥Ø¿ýùØ¡A¨º»ònÁ¿¥X²ÕĶ¾¹ªº§¹¾ãÀɦW¡A´N¬O¡uC:\MASM611\BIN\ML.EXE¡v¡A¦Ó¡uC:\MASM611\BIN\¡vºÙ¬°µ´¹ï¸ô®|¡C
¦b DOS §@·~¨t²ÎùØ¡An³B²zÀɮ׮ɷíµM¥²¶·«ü©wÀɮצWºÙ¡A³q±`·|©I¥s DOS ªA°Èµ{¦¡ INT 21H À°§U³B²zÀɮסA¨º»ò²£¥Í¤@Ó°ÝÃD¡AÀɮצWºÙªø«×¤£©T©w¡AINT 21H ¦p¦ó§PÂ_ÀɮצWºÙ¨ì©³¦bþ¨àµ²§ô©O¡H¿ìªk«Ü²³æ¡A´N¬O¦bÀɮצWºÙ«á±¥[¤W 0¡A¹³³o¼Ë¥H¹sµ²§Àªº¦r¦êºÙ¬°¡uASCIZ¡v¦r¦ê¡C
ºÏºÐ¶Ç¿é°Ï ( disk transfer area¡AÁY¼g¬° DTA )¡A¬O¤@¶ô°O¾ÐÅéªÅ¶¡¡A¥HÀÉ®×±±¨î°Ï¶ô¤è¦¡Àɮצs¨ú®É¡A§@¬°ºÏºÐŪ¨ú©Î¼g¤J®É¦s©ñ¤§³B¡C³oºØ¦s¨úÀɮתº¤è¦¡¡A¬O¦b CM/P §@·~¨t²Î¤W¨Ï¥Î¡ADOS ¬°¤F¬Û®e©Ê¡A¤]¥i¥H¨Ï¥Î³oºØ¤è¦¡¡CDTA °£¤F¥Î©óÀÉ®×±±¨î°Ï¶ôªº¦s¨úÀÉ®×¥~¡A¤]¥Î¦b´M§ä²Ä¤@ӲŦXªºÀɮסC³]©w DTA ªº¤è¦¡¬°¡G
³]¸mºÏºÐ¶Ç¿é°Ï¦ì§} ¿é¤J¡GAH¡×1AH ¡@¡@¡@DS:DX¡×·sªººÏºÐ¶Ç¿é°Ï¦ì§} °õ¦æ¡GINT 21H ªð¦^¡GµL
µ{¦¡¶}©l°õ¦æ®É¡ADTA ¦bµ{¦¡«e¸m°Ï ( program segment prefix¡A²ºÙ PSP ) °¾²¾¦ì§} 80H ³B¡AÂǥѦ¹ªA°Èµ{¦¡¥i¥H§ó§ï DTA ¦ì§}¡C
³oÓ DOS ªA°Èµ{¦¡¬O¥Î¨Ó¶}±Ò¤w¦s¦bªºÀɮסCè«Ø¥ßªºÀɮסA©I¥s AH¡×3CH/INT 21H «á¦^¶ÇÈ´N¬OÀÉ®×¥N½X¡F¤w¦s¦bªºÀɮסA´N¥²¶·¥Î¶}±Òªº¤è¦¡¨ú±oÀÉ®×¥N½X¡A¨ä¥Îªk¬O¡G
¶}±Ò¤w¦s¦bªºÀÉ®× ¿é¤J¡GAH¡×3DH ¡@¡@¡@AL¡×¦s¨ú»P¦@¥Î¼Ò¦¡ ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥ÜÀɮצWºÙ °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAX¡×ÀÉ®×¥N½X ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 01H¡B02H¡B03H¡B04H¡B05H¡B0CH¡B56H )
AL ¥Î¨Ó«ü¥Ü¶}±ÒÀɮ׫á¡A³oÓÀɮצp¦ó¦s¨ú¡B¦p¦ó¦@¥Î¤Î¦p¦óÄ~©Ó¡A½Ð°Ñ¦Ò¤Uªí¡G
¦ì¤¸ | ¼Ò¦¡ | »¡©ú |
0¡ã2 | ¦s¨ú¼Ò¦¡ | 000¡@¥u¯àŪ¨ú 001¡@¥u¯à¼g¤J 010¡@¥i¥HŪ¨ú¸ò¼g¤J |
3 | «O¯d | ¬° 0 |
4¡ã6 | ¦@¥Î¼Ò¦¡ | 000¡@¬Û®e¼Ò¦¡ 001¡@¤£¯àŪ¨ú¤]¤£¯à¼g¤J 010¡@¤£¯à¼g¤J 011¡@¤£¯àŪ¨ú 100¡@¥i¥HŪ¨ú¤]¥i¥H¼g¤J |
7 | Ä~©Ó¼Ò¦¡ | 0¡@¤lµ{¦¡¯àÄ~©Ó 1¡@¥u¯à¦b¥»µ{¦¡¤¤¥Î |
Á|Ó¨Ò¤l¨Ó»¡¡A¦pªG AL¡×0C2h¡A§Y¬°¤G¶i¦ìªº 1100 0010¡A¦]¦¹ 0¡ã2 ¦ì¤¸¬° 010¡Aªí¥Ü³oÓ¶}±ÒªºÀÉ®×¥i¥HŪ¨ú¸ò¼g¤J¡F4¡ã6 ¦ì¤¸¬° 100¡Aªí¥Ü¥t¤@Óµ{¦¡¦pªG¤]¦P®É¶}±Ò³oÓÀɮ׮ɡA¤]¯àŪ¨ú¸ò¼g¤J¡F²Ä 7 ¦ì¤¸¬° 1¡Aªí¥Ü¥u¯à¦b¥»µ{¦¡¤¤¨Ï¥Î¡AµLªkÄ~©Óµ¹¤lµ{¦¡¡C
¦pªG¦¨¥\¶}±ÒÀɮסA¶i¦ìºX¼Ð³Q²M°£ ( NC )¡AAX ¤º¬°¦^¶ÇÈ¡Aªí¥Ü¦¨¥\¶}±ÒªºÀÉ®×¥N½X¡F¦pªG¥¢±Ñ¡A¶i¦ìºX¼Ð³Q³]©w ( CY )¡AAX ¬°¿ù»~½X¡A¥i¯àªº¿ù»~½X¦³ 01H¡B02H¡B03H¡B04H¡B05H¡B0CH¡B56H ¤CºØ¡A¨ä©Ò¥Nªíªº·N¸q°Ñ¾\µù¤@¡C
³oÓ DOS ªA°Èµ{¦¡¥Î¨ÓÃö³¬ÀɮסA¨ä¥Îªk¬O¡G
Ãö³¬ÀÉ®× ¿é¤J¡GAH¡×3EH ¡@¡@¡@BX¡×nÃö³¬ªºÀɮפ§ÀÉ®×¥N½X °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 06H¡Aªí¥ÜµL®ÄªºÀÉ®×¥N½X )
¦pªG¦¨¥\Ãö³¬ÀɮסA¶i¦ìºX¼Ð³Q²M°£¡F¦pªG¥¢±Ñ¡A¶i¦ìºX¼Ð³Q³]©w¡A¦^¶ÇÈ AX ¬°¿ù»~½X¡A¥i¯à¬O 06H¡Aªí¥ÜµL®ÄªºÀÉ®×¥N½X¡C
¬°¦ónÃö³¬ÀɮשO¡Hì¦]¦³¨âÓ¡C²Ä¤@Ó¬O¤@ÓÀɮצb«Ø¥ß©Î¶}±Ò«á¡A¸g¹LŪ¼g¡AµM«á¦pªG¤£»Ýn¦A¥Î¨ì¸ÓÀɮ׮ɡA´NÀ³¸ÓnÃö³¬¡AÅý¼È¦s¦b°O¾ÐÅé½w½Ä°Ïùتº¸ê®Æ¯u¥¿¼g¤JÀɮסA¤~¤£P³y¦¨¸ê®Æ¬y¥¢¡C
²Ä¤GÓ¬O¶}±ÒªºÀɮ׶V¦h¡A´N¶V¯Ó¶O°O¾ÐÅéµ¥¹q¸£¸ê·½¡C·í§ÚÌ©I¥sÃö³¬Àɮתº DOS ªA°Èµ{¦¡®É¡ADOS ´N¦¬¦^³oÓÀÉ®×¥N½X¤Î¨ä©Ò¦û¥Îªº°O¾ÐÅé¡AÅý¨ä¥LÀɮרϥΡCDOS ³W©w³Ì¤j¶}±ÒÀɮתº¼Æ¥Ø¬O©ñ¦b CONFIG.SYS ¤¤¡A¥Î
FILES=xx
¨Ó«ü©w¡AFILES ¤£°Ï¤À¤j¤p¼g¡Axx ´N¬O DOS ©Ò¯à¶}±Ò³Ì¤jÀɮ׼ƥءA¡A·íµM xx ¤]¥i¥Hק令§ÚÌ©Ò»ÝnªºÀɮ׼ƥءA«·s±Ò°Ê¨t²Î«á§Y¥i¡C
ȱoª`·Nªº¬O¡ADOS ¦b¤@¶}¾÷®É¡A´N¤w¸g¶}±Ò¤F 5 ÓÀÉ®×¥N½Xµ¹¨t²Î¨Ï¥Î¤F¡A©Ò¥H¦pªG§A¦b CONFIG.SYS ¤º«ü©w FILES=20¡A¨Æ¹ê¤W§A¥u¯à¶}±Ò 15 ÓÀɮסA¦]¦¹¦pªGn¨Ï¥Î¦P¨Ï¶}±Ò¦hÀɮתºµ{¦¡¡A¨Ò¦p Windows 3.1¡A³Ì¦n¯à¦b CONFIG.SYS «ü©w¤j¤@ÂIªº¶}±ÒÀɼƥءC³o 5 ÓÀɮ׬O¡G
0000H ¼Ð·Ç¿é¤J³]³Æ ( stdin ) ¡GÁä½L 0001H ¼Ð·Ç¿é¥X³]³Æ ( stdout )¡G¿Ã¹õ 0002H ¼Ð·Ç¿ù»~³]³Æ ( stderr )¡G¿Ã¹õ ( §@·~¨t²Îµo¥Í¿ù»~°T®§®É¡A¦¹°T®§¿é¥X¦Ü¿Ã¹õ ) 0003H ¼Ð·Ç»²§U³]³Æ ( stdaux )¡G²Ä¤@ӧǦC°ð¡A§Y COM1 0004H ¼Ð·Ç¦C¦L³]³Æ ( stdprn )¡G¦Lªí¾÷
³o¤ÓÀɮ׬ݰ_¨Ó¦ü¥G¤£¬OÀɮסA¦Ó¬O¶gÃä³]³Æ¡A«ç»ò·|³o¼Ë©O¡Hì¨Ó DOS §â³o¨Ç³]³Æµø¬°ÀɮסA¹ï¥¦Ì¿é¥X¸ê®Æ®É¡A´N¹³¬O¹ï¡uÀɮסv¼g¤J¡C
¨Ò¦p①©I¥s AH¡×40H/INT 21H ¦Ó BX¡×4¡A¨ä¹ê´N¬O¦b¦Lªí¾÷¤W¦L¥X¤å¦r¡C②§Ṳ́]¥i¥H¥Î¡u>¡v¡B¡u<¡v¨Ó¨Ï쥻¿é¥X¨ì¿Ã¹õ¤Wªº¤å¦rÅܦ¨¿é¥X¦ÜÀɮסC③°²¦p©I¥s AH¡×3EH/INT 21H ®É¡ABX ¬° 0¡A´N·|Ãö³¬Áä½L¡A·|ÅýÁä½LÅܱoµL®Ä¡C¨ä¥L 1¡ã4 ªºÀÉ®×¥N½X¤]¦³Ãþ¦üªº®ÄªG¡A©I¥s«enª`·N¡C
³oÓ¥\¯à¬OŪ¨úÀɮפ¤ªº¸ê®Æ¡A¨Ã¦s©ñ¦b°O¾ÐÅ餺¡A¨ä¥Îªk¦p¤U¡G
Ū¨úÀÉ®× ¿é¤J¡GAH¡×3FH ¡@¡@¡@BX¡×±ýŪ¨úªºÀɮפ§ÀÉ®×¥N½X ¡@¡@¡@CX¡×±ýŪ¨úªºªø«×¡A¥H¦ì¤¸²Õ¬°³æ¦ì ¡@¡@¡@DS:DX¡×½w½Ä°Ï¦ì§}¡A§Y±qÀÉ®×Ū¨ú¸ê®Æ«áªº¦s©ñ¦ì§} °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAX¡×¹ê»ÚŪ¨úªºªø«×¡A¥H¦ì¤¸²Õ¬°³æ¦ì ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 05H¡B06H¡A½Ð°Ñ¾\µù¤@ )
·í¶}±ÒÀɮשΫإßÀɮ׮ɡADOS ¤£¶È·|µ¹¸ÓÀɮפ@ÓÀÉ®×¥N½X¡AÁÙ·|³]¸m¤@Ó 32 ¦ì¤¸ªøªºÀɮ׫ü¼Ð¡C·íŪ¨úÀɮ׮ɡA´N¬O¥ÑÀɮ׫ü¼Ð³B¶}©lŪ¨ú¸ê®Æ¡C¦pªGŪ¨ú¦¨¥\¡A¨º»òÀɮ׫ü¼Ð´N·|¥[¤W¤wŪ¨úªºªø«×¡A¦Ó«ü¨ì¤U¦¸¸ÓŪ¨úªº¦ì¸m¡C
¦pªGŪ¨ú¦¨¥\¡ADOS ·|²M°£¶i¦ìºX¼Ð¡A¦^¶ÇÈ AX ¬°¹ê»ÚŪ¨úªºªø«×¡C·íÀɮ׫ü¼Ð¤w¦bÀÉ®×µ²§À©Î±µªñÀÉ®×¥½ºÝ¡A¦Ó CX ¤§È¶W¹LÀɮ׫ü¼Ð»PÀÉ®×µ²§Àªº¶ZÂ÷¡A¹ê»ÚŪ¨úªºªø«×´N·|¤p©ó±ýŪ¨úªºªø«×¡A³o®ÉÔ¶i¦ìºX¼Ð¤´·|³Q²M°£¡A§Y¨Ï¹ê»ÚŪ¨úªºªø«×¬°¹s¡C
³oÓ¥\¯à¬O§â¦b°O¾ÐÅ餺¸ê®Æ¼g¤JÀÉ®×ùØ¡A¨ä¥Îªk¦p¤U¡G
¼g¤JÀÉ®× ¿é¤J¡GAH¡×40H ¡@¡@¡@BX¡×±ý¼g¤JªºÀɮפ§ÀÉ®×¥N½X ¡@¡@¡@CX¡×±ý¼g¤Jªºªø«×¡A¥H¦ì¤¸²Õ¬°³æ¦ì ¡@¡@¡@DS:DX¡×½w½Ä°Ï¦ì§}¡A§Y±ý¼g¤Jªº¸ê®Æ¦s©ñ¦ì§} °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAX¡×¹ê»Ú¼g¤Jªºªø«×¡A¥H¦ì¤¸²Õ¬°³æ¦ì ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 05H¡B06H¡A½Ð°Ñ¾\µù¤@ )
¦pªG¼g¤J¦¨¥\¡ADOS ·|²M°£¶i¦ìºX¼Ð¡A¦^¶ÇÈ AX ¬°¹ê»Ú¼g¤Jªºªø«×¡AÀɮ׫ü¼Ð¤]·|¥[¤W¤w¼g¤Jªºªø«×¡C
·í¶}±ÒÀɮשΫإ߷sÀɮɡADOS ¤£¶È·|µ¹¸ÓÀɮפ@ÓÀÉ®×¥N½X¡AÁÙ·|³]¸m¤@ÓÀɮ׫ü¼Ð¡A³o®ÉÔÀɮ׫ü¼Ð·|«ü¦VÀÉ®×°_©l¦ì¸m¡C·íŪ¨úÀɮפº®e©Î§â¸ê®Æ¼g¤JÀɮ׮ɡA³£¬O¥ÑÀɮ׫ü¼Ð³B¶}©lŪ¨ú©Î¼g¤J¡CAH¡×42H/INT 21H ¬O¥Î¨Ó³]©w¤w¶}±ÒªºÀɮפ§Àɮ׫ü¼Ð¦ì¸m ( file pointer )¡A¨ä¥Îªk¦p¤U¡G
³]©wÀɮ׫ü¼Ð¦ì¸m ¿é¤J¡GAH¡×42H ¡@¡@¡@AL¡×°ò·ÇÂI ( 0¡G¥HÀÉ®×°_ÀY¬°°ò·ÇÂI¡F1¡G¥H²{¦bªºÀɮ׫ü¼Ð¬°°ò·ÇÂI¡F2¡G¥HÀÉ®×µ²§À¬°°ò·ÇÂI ) ¡@¡@¡@BX¡×ÀÉ®×¥N½X ¡@¡@¡@CX:DX¡×¥H°ò·ÇÂI¥Xµo¡A·sªºÀɮ׫ü¼Ð²¾°Ê¦h¤ÖӦ줸²Õ ( ¬° 32 ¦ì¤¸¦³¸¹¼Æ ) °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡ADX:AX¡×·sªºÀɮ׫ü¼Ð¶ZÂ÷ÀÉ®×°_ÀY¦h»·¡A¥H¦ì¤¸²Õ¬°³æ¦ì ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 01H¡B06H¡A½Ð°Ñ¾\µù¤@ )
CX:DX ¥i¥H¬O¥¿¼Æ©Ît¼Æ¡A«eªÌªí¥Ü§âÀɮ׫ü¼Ð©¹ÀɮקÀ¤è¦V²¾°Ê¡A«áªÌ«h©¹ÀÉ®×ÀY¤è¦V²¾°Ê¡C¦pªG§âÀɮ׫ü¼Ð©¹ÀɮקÀ¤è¦V²¾°Ê¥B¶W¹LÀɮקÀ¡A¨º»ò DOS ³Ì¦h¤]¥u¯à±N¨ä²¾¨ìÀɮקÀ¤W¡A¦P®É³]©w DX:AX ¬°Àɮפj¤p¥B²M°£¶i¦ìºX¼Ð¡A¨Ã¤£·|²£¥Í¿ù»~¡C¦pªG§âÀɮ׫ü¼Ð³]¦bÀÉ®×ÀY¤§¥~¡A¨º»ò DOS ¯uªº·|²¾¨ì¸Ó³B¡A¦P¼Ë DX:AX ¬°tÈ¥B«ü¥X¸Ó³B¶ZÀÉ®×ÀY¦h»·¡A¤]²M°£¶i¦ìºX¼Ð¤£²£¥Í¿ù»~¡A¦ý³oÀ³¸Ó¬O¿ù»~¡A¥²¶·¤p¤ß¡C
©³¤Uªº¨Ò¤l¡A¬O§âÀɮ׫ü¼Ð±q²{¦b¦ì¸m©¹ÀɮקÀ¤è¦V²¾°Ê 80H Ӧ줸²Õ¡G
mov bx,file_handle ;BX¡×ÀÉ®×¥N½X mov ax,4201h ;AH¡×42H¡FAL¡×01H¡A¥H²{¦bÀɮ׫ü¼Ðªº¦ì¸m¶}©l xor cx,cx ;©¹Àɮש¹¤è¦V²¾°Ê 80H Ӧ줸²Õ mov dx,80h int 21h
©³¤Uªº¨Ò¤l¡A«h¬O¤£½×Àɮ׫ü¼Ð¦bþ¨à¡A³£·|¨ÏÀɮ׫ü¼Ð±qÀɮקÀºÝ©¹ÀÉ®×ÀY¤è¦V²¾°Ê 100H Ӧ줸²Õ ( ¦¹³Bªº BX ©Ò¥NªíªºÀɮסA¨ä¤j¤pn¶W¹L 100H Ӧ줸²Õ )¡G
mov ax,4202h ;AH¡×42H¡FAL¡×02H¡A¥HÀÉ®×µ²§À¬°°ò·ÇÂI mov bx,file_handle ;BX¡×ÀÉ®×¥N½X mov cx,-1 ;CX:DX¡×¡Ð100H¡Aªí¥Ü³]©wÀɮ׫ü¼Ð¦b¶ZÂ÷ÀɮקÀ100HӦ줸²Õ mov dx,-100h int 21h
AH¡×42H/INT 21H °£¤F³]©wÀɮ׫ü¼Ð¥~¡AÁÙ¥i¥HÀò¨úÀɮפj¤p¡C¨Æ¹ê¤W¡A¦b DOS ªA°Èµ{¦¡¤¤¡A¨S¦³±Mªùªº¨ç¦¡Àò¨úÀɮפj¤p¡A¦]¦¹¥u¯à¥ÎÅܳqªº¤è¦¡¡C·í¶}±ÒÀɮשηs«Ø¥ßÀɮ׮ɡAÀɮ׫ü¼Ð¦ì©óÀÉ®×°_ÀY³B¡A¥i¥H§â AL ³]¬° 2¡A¥HÀÉ®×µ²§À¬°°ò·ÇÂI¡ACX¡BDX §¡³]¬° 0¡A¦A©I¥s AH¡×42H/INT 21H¡A³o¼Ëªº¸Ü´N·|§âÀɮ׫ü¼Ð²¾¨ìÀÉ®×µ²§À¡Cªð¦^®É¡ADX:AX ¬°·sªºÀɮ׫ü¼Ð¶ZÂ÷ÀÉ®×°_ÀY¦h¤ÖӦ줸²Õ¡A¤]´N¬OÀɮפj¤p¡C
¦¹ DOS ªA°Èµ{¦¡ªº¥Îªk¬O¡G
«Ø¥ß©ÎºIÂ_ÀÉ®× ¿é¤J¡GAH¡×3CH ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥Ü±ý«Ø¥ßªºÀɮצWºÙ ¡@¡@¡@CX¡×ÀÉ®×ÄÝ©Ê °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAX¡×ÀÉ®×¥N½X ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡B04H¡B05H )
ÀÉ®×Äݩʦ³¥|ºØ¡G°ßŪ ( read only )¡BÁôÂà ( hidden )¡B¨t²Î ( system )¡B«O¦s ( archive )¡A¤À§O¥H¥|Ӧ줸ªí¥Ü¡A¦ý¦¹³BÁÙ¥[¤W¥Ø¿ý¡BºÏºÐ¾÷ªº¨÷¦W¡A½Ð°Ñ¦Òªí¡GÀÉ®×ÄÝ©Ê¡C
¦pªG DS:DX ©Ò«ü¦ì§}ªºÀɮפw¦s¦b¡A¨º»ò¸ÓÀɮפº®e·|³QºIÂ_¨Ïªø«×Åܬ°¹s¡C¦]¦¹«Ø¥ßÀɮ׳̦n¨Ï¥Î AH¡×5BH/INT 21H¡C
¦pªG¦¨¥\«Ø¥ßÀɮסAINT 21H ·|²M°£¶i¦ìºX¼Ð¡A¦P®É±N·s«Ø¥ßªºÀɮפ§ÀÉ®×¥N½X·í¦¨¦^¶ÇÈ¡A¦s¤J AX ªð¦^¡F¦pªG¥¢±Ñ¡AINT 21H ·|³]©w¶i¦ìºX¼Ð¡A¦P®É AX ¬°¿ù»~½X¡C¥i¯àªº¿ù»~½X¦³ 03H¡B04H¡B05H ¤TºØ¡A¸Ô²Ó»¡©ú½Ð°Ñ¾\µù¤@¡C
³oÓªA°Èµ{¦¡¥Î¨Ó§R°£«ü©wªºÀɮסA¥Îªk¦p¤U¡G
§R°£ÀÉ®× ¿é¤J¡GAH¡×41H ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥Ü±ý§R°£ªºÀɮצWºÙ °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 02H¡B03H¡B05H¡A½Ð°Ñ¾\µù¤@ )
³oÓªA°Èµ{¦¡¤£»ÝnÂǵÛÀÉ®×¥N½X§R°£ÀɮסA¨Æ¹ê¤W¡A¦pªG¬O¤w¶}±ÒªºÀÉ®×®Ú¥»µLªk§R°£¡C¦]¦¹¥H DS:DX «ü©wn§R°£ªºÀɮצWºÙ¨Ó§R°£ÀɮסC
¦¹ªA°Èµ{¦¡ªº¥Î³~¬O¨ú±o©Î³]©wÀɮתºÄÝ©Ê¡A¥Îªk¦p¤U¡G
¨ú±o©Î³]©wÀÉ®×ÄÝ©Ê ¿é¤J¡GAH¡×43H ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥Ü±ý¨ú±o©Î³]©wÄݩʪºÀɮצWºÙ ¡@¡@¡@AL¡×0¡G¨ú±oÀÉ®×ÄÝ©Ê ¡@¡@¡@¡@¡@1¡G³]©wÀÉ®×ÄÝ©Ê¡A¦¹®Én³]©w CX ¬°ÀÉ®×ÄÝ©Ê °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AY¨ú±oÀÉ®×ÄÝ©Ê¡A¦¹®É CX ¬°¦^¶ÇªºÀÉ®×ÄÝ©Ê ¡@¡@¡@¡@¡@¡@¡@¡@Y³]©wÀÉ®×ÄÝ©Ê¡A¦¹®É CX µL·N¸q ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 01H¡B02H¡B03H¡B05H¡A½Ð°Ñ¾\µù¤@ )
¤£½×¬O¨ú±o©Î³]©w¡ACX ³£¬OÀÉ®×Äݩʦs©ñªº¦a¤è¡A¦U¦ì¤¸©Ò¥Nªíªº·N¸q°Ñ¨£¤Uªí¡C³o±iªíÁöµM¶È»¡©ú²Ä 0¡ã7 ¦ì¤¸ªº·N¸q¡A¨Æ¹ê¤W¡A²Ä 8¡ã15 ¦ì¤¸³£¨S¦³¨Ï¥Î¡C
¦ì¤¸ | ·N¸q |
0 | 1¡G¨ã¦³°ßŪÄÝ©Ê¡F0¡G¤£¨ã°ßŪÄÝ©Ê |
1 | 1¡G¨ã¦³ÁôÂÃÄÝ©Ê¡F0¡G¤£¨ãÁôÂÃÄÝ©Ê |
2 | 1¡G¨ã¦³¨t²ÎÄÝ©Ê¡F0¡G¤£¨ã¨t²ÎÄÝ©Ê |
3 | 1¡G¨÷¦W¡F0¡G«D¨÷¦W |
4 | 1¡G¥Ø¿ý¡F0¡G«D¥Ø¿ý |
5 | 1¡G¨ã¦³«O¦sÄÝ©Ê¡F0¡G¤£¨ã«O¦sÄÝ©Ê |
6 | «O¯d¡A¥²¶·¬° 0 |
7 | 1¡G¦b Novell NetWare ¤¤¥i¤À¨É¦¹ÀɮסF0¡G¤£¯à¤À¨É |
°ßŪ ( read only )¡BÁôÂà ( hidden )¡B¨t²Î ( system )¡B«O¦s ( archive ) ¥|ºØÄݩʪº·N¸q¡A¥i°Ñ¦Òªþ¿ý¤»ªº ATTRIB «ü¥O¡C¨÷¦W¥u¯à¦s©ñ¦b®Ú¥Ø¿ý¡A¦Ó¥B¤@ӺϺо÷¥u¯à¦³¤@Ó¨÷¦W¡A¦b DOS «ü¥O DIR ®É¯àÅã¥Ü¥X¨Ó¡A¥i¥H§â¨÷¦W·Q¦¨¬OºÏºÐ¾÷ªº§O¦W¡A¦p¤U¹Ï¡G
¦b DOS 6.20 ùØ¡A¦pªG AL ¤£¬° 0 ©Î 1¡A´N·|µo¥Í¿ù»~¡Aªð¦^®É¡ADOS ·|³]©w¶i¦ìºX¼Ð¡A¥B¦^¶ÇÈ AX ªº¿ù»~½X¬° 1¡Aªí¥Ü¤£¦Xªkªº¥\¯à¡C
³oÓªA°Èµ{¦¡¡A³q±`·|·f°t AH¡×4FH/INT 21H ¨Ï¥Î¡A¥i¥H¦b¤@Ó¦³¦¨¤d¤W¦ÊÓÀɮתº¥Ø¿ýùØ·j´M¯S©wªºÀɮסA¤@¦¸³B²z§¹²¦¡F¤]¥i¥H·j¯S©wªºÀɮסA¥HÁY¤p½d³ò¡CAH¡×4EH/INT 21H ªº¥Îªk¦p¤U¡G
´M§ä²Ä¤@ӲŦXªºÀÉ®× ¿é¤J¡GAH¡×4EH ¡@¡@¡@CX¡×ÀÉ®×ÄÝ©Ê ¡@¡@¡@DS:DX¡×ASCIZ ®æ¦¡ªºÀɮצWºÙ¦ì§} ( ¥i¥H¥]§t¸ô®|»P¸U¥Î¦r¤¸ ) °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAH¡×4EH/INT 21H ·|§â·j´Mµ²ªG¶ñ¤J DTA ( disk transfer area ) ¤¤¡C ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 02H¡B03H¡B12H¡A½Ð°Ñ¾\µù¤@ )
¦b¤@ӥؿý¤¤¡A·|¦³¦U¦¡¦U¼ËªºÀɮסA¹³¬O JPG ¹Ï¤ùÀÉ¡BMP3 ÁnµÀÉ¡BTXT ¯Â¤å¦rÀɵ¥µ¥¡A¥i¥H©I¥s AH¡×4EH/INT 21H ·f°t AH¡×4FH/INT 21H ¦A¥[¤W°j°é¡A³B²z§¹©Ò¦³²Å¦X DS:DX ©Ò«ü©wªºÀɮסA½Ð°Ñ¦Ò¤U¤@³¹ªº¨Ò¤l¡C
³o¸Ì¤p¤ì°¸¥u¥ý»¡©ú¦p¦ó©I¥s AH¡×4EH/INT 21H¡C©I¥s®É¡ADS:DX ¥²¶·¬On³B²zªºÀɮצWºÙ¦r¦ê¤§¦ì§}¡A¥B¦r¦ê¶·¥H 0 µ²§À¡A¦pªG¦¹¦r¦ê¥]§t¤F¡u*¡v©Î¡u?¡v¡AAH¡×4EH/INT 21H ¯à§ä¨ì²Å¦X DS:DX ©Ò«ü©wªº²Ä¤@ÓÀɮסA¦b«áÄò©I¥s AH¡×4FH/INT 21H ¯à§ä¨ì¨ä¥L²Å¦XªºÀɮסC¦¹³B©Ò¿×ªº¡u²Ä¤@Ó¡v¬O¨Ì¾Ú¥Ø¿ýºÏ°Ï¤ºÀÉ®×´yz°Ï¶ô ( file description block¡AÁY¼g¬° FDB ) ªº¶¶§Ç¡C
CX ©Ò«ü©wªºÀÉ®×ÄÝ©Ê¡AÁÙ¯à§ä¨ì¨ã¦³ÁôÂéΨt²ÎÄݩʪºÀɮסA©Î¬O¨ã¦³¨÷¦W©Î¥Ø¿ýÄݩʪº¦WºÙ¡C¨Æ¹ê¤W¡ADOS ¨Ï¥Î¤»ºØÄÝ©Ê¡A¤À§O¬O¨÷¦W¡B¥Ø¿ý¡B«O¦s¡B°ßŪ¡BÁôÂäΨt²Î¡C¨÷¦W¥u¥X²{¦b®Ú¥Ø¿ý¸Ì¡A¦Ó¥B¥u¦³¤@өΪ̨S¦³³]¸m¡A¥¦¦b¨Ï¥ÎªÌ¿é¤J¡udir¡v«ü¥O®É·|¥X²{¡A¥i¥H§â¥¦¬Ý¦¨ºÏºÐªº§O¦W¡A¦p¤U¹Ï¡G¨ã¦³¥Ø¿ýÄݩʪº¦WºÙ¡Aªí¥Ü¦¹¬°¥Ø¿ý¨Ã«DÀɮסA¦b¡udir¡v«ü¥O¤U¡A·|¥H¤@¹ï¤¤¬A¸¹¬A¦í¡A¦p¤W¹Ï¡A¥i¥H¥Î¡ucd¡v«ü¥O ( ©Î chdir ) ¤Á´«¶i¥h¡A¤Á´«¶i¥h«á¡ADOS ´£¥Ü²Å¸¹¤]¸òµÛ§ïÅÜ¡A³oӥؿý¥iµø¬°¤W¼h¥Ø¿ýªº¤l¥Ø¿ý¡A¨ä¤º¤S¯à¦s©ñ³\¦hÀɮסC¨÷¦W¡B¥Ø¿ý¬O¤ñ¸û¯S§OªºÄÝ©Ê¡A¦b©I¥s AH¡×4EH/INT 21H ®É¡ACX ¥²¶·«ü©w¨÷¦WÄÝ©Ê¡A¤~¯à§ä¨ì¨÷¦W¡F¦P²z¡ACX ¤]n«ü©w¥Ø¿ýÄÝ©Ê¡A¤]¤~¯à´M§ä¨ì¡C«O¦s¡B°ßŪ¡BÁôÂäΨt²Î¬O°w¹ïÀɮתº¡A¤£¹L¥Ø¿ý¤]¥i¥H¨ã¦³³o¥|ºØÄÝ©Ê¡A³o¥|ºØÄݩʶi¤@¨Bªº»¡©ú¥i°Ñ¦Òªþ¿ý¤»ªº ATTRIB «ü¥O¡C
¦³Ãö CX ¤¤¦U¦ì¤¸±aªíªº·N¸q¬O
bit 0¡×°ßŪ bit 1¡×ÁôÂà bit 2¡×¨t²Î bit 3¡×¨÷¦W bit 4¡×¥Ø¿ý bit 5¡×«O¦s
¦Ó AH¡×4FH/INT 21H ¤¤ CX ªº³W«h«Ü½ÆÂø¡A¤p¤ì°¸¾ã²z¦p¤U¡G
¨Ò¦p©³¤Uªºµ{¦¡¤ù¬q¡A¯à§ä¨ì¨ã¦³ÁôÂáB°ßŪ©Î«O¦s¥B°ÆÀɦW¬°¡uexe¡vªºÀɮשΥؿý¡A§Y¨Ï¦³ÓÁôÂ꺡uSEX.EXE¡v¤l¥Ø¿ý¤]¯à§ä±o¨ì¡G
file DB "*.exe",0 . . . mov dx,OFFSET file ;´M§äÀɦW¬°¡u*.exe¡vªºÀɮסAªí¥Ü°ÆÀɦW¬°¡uexe¡vªº¥þ³¡ÀÉ®× mov cx,12h ;12H¡×1 0001B¡A²Ä1¦ì¤¸¡×1ªí¥ÜÁôÂáA²Ä4¦ì¤¸¡×1ªí¥Ü¥Ø¿ý mov ah,4eh int 21h
AH¡×4EH/INT 21H ·|§ä¨ì²Ä¤@ӲŦXªºÀɮסA¨Ã§â¸ÓÀɮתºÀɦW¡BÄÝ©Ê¡B¤j¤p¡B³Ì«áקï¤é´Á»P®É¶¡¦s©ñ¦bºÏºÐ¶Ç¿é°Ï ( disk transfer area¡AÁY¼g¬° DTA ) ¤º¡CDTA ¬O¤@¶ô°O¾ÐÅé¡AÅU¦W«ä¸q¡A¬O¥Î¨Ó¶Ç»¼ºÏºÐ¸ê®Æ¥Îªº¡C·íµ{¦¡è¶}©l°õ¦æ®É¡ADTA ªº¹w³]¦ì§}¬O¦bµ{¦¡«e¸m°Ï ( program segment prefix¡A²ºÙ PSP ) °¾²¾¦ì§} 80H ³B¡A©Ò¥H DTA ªº¦ì§}¥i¥H¼g¦¨ PSP:0080¡A³o®ÉÔ DS¡BES ¼È¦s¾¹¤]³£«ü¦V PSP¡C¦pªG AH¡×4EH/INT 21H ©I¥s¦¨¥\¡ADOS ·|²M°£¶i¦ìºX¼Ð¡A¦P®É¦b DTA ¶ñ¤J¥H¤Uªº¸ê®Æ¡G
°¾²¾ ¦ì§} | ªø«× ¦ì¤¸²Õ | »¡¡@©ú | ||||||||||||||||||||||||
0¡ã20 | 21 | «O¯dµ¹ DOS ¨Ï¥Î¡C¦ý®Ú¾Ú¥¼¤½¶}ªº¤å¥ó¡A¨ä¤º®e¦p¤U¡G
| ||||||||||||||||||||||||
21 | 1 | ²Å¦XÀɮתºÄÝ©Ê¡A¨£¡uªí¡GÀÉ®×ÄÝ©Ê¡v¡C | ||||||||||||||||||||||||
22¡ã23 | 2 | Àɮ׳̫áקï®É¶¡¡C( §ó¸Ô²Óªº»¡©ú½Ð«ö³o¸Ì ) ¡@¡@¡@Bit 0¡ã4¡G¬í¼Æ°£¥H 2 ¡@¡@¡@Bit 5¡ã10¡G¤ÀÄÁ ¡@¡@¡@Bit 11¡ã15¡G¤p®É ( 0¡ã23 ) | ||||||||||||||||||||||||
24¡ã25 | 2 | Àɮ׳̫áקï¤é´Á¡C( §ó¸Ô²Óªº»¡©ú½Ð«ö³o¸Ì ) ¡@¡@¡@Bit 0¡ã4¡G¤é ¡@¡@¡@Bit 5¡ã8¡G¤ë ¡@¡@¡@Bit 9¡ã15¡G¦è¤¸¦~¡Ð1980 | ||||||||||||||||||||||||
26¡ã29 | 4 | Àɮפj¤p¡G¦¹¬°Âù¦r²Õ¡A³Ì¦h¥i¹F 4GB¡C | ||||||||||||||||||||||||
30¡ã42 | 13 | ÀɮצWºÙ¡A¥H ASCIZ ªí¥Ü¡u8.3¡vÀɦW®æ¦¡¡C |
DTA ©Ò¦b¦ì§}è¦n»P¨Ï¥ÎªÌ¦b©RÅ¥´£¥Ü¦r¤¸¤U©Ò¿é¤Jªº«ü¥O¤Î°Ñ¼Æ©Ò¦b¦ì§}«Å|¡A¦pªGµ{¦¡°õ¦æ´Á¶¡¡A¤£¨Ï¥Î DTA ©Î¿é¤Jªº«ü¥O¤Î°Ñ¼Æªº¸Ü¡A¨º´N¨S¤°»ò°ÝÃD¡F¦ý¦pªG¨âªÌ³£·|¥Î¨ì¡A´N·|µo¥Í½Ä¬ð¡C³o®É¥i¥H©I¥s AH¡×1AH/INT 21H §â DTA ³]¸m¨ì§Oªº¦ì§}¡C
³oÓªA°Èµ{¦¡¡A³q±`·|·f°t AH¡×4EH/INT 21H ¨Ï¥Î¡C³q±`¬O¦b°õ¦æ§¹ AH¡×4EH/INT 21H ¤§«á¡A¦A¸òµÛ©I¥s AH¡×4FH/INT 21H §ä¨ì²Ä¤GӤΧó¦h²Å¦XªºÀɮסA¥Îªk¬O¡G
´M§ä¤U¤@ӲŦXªºÀÉ®× ¿é¤J¡GAH¡×4FH ¡@¡@¡@DTA ( disk transfer area ) ¤¤¤w¸g¦³©I¥s AH¡×4EH/INT 21H ©Î AH¡×4FH/INT 21H «áªº¸ê®Æ °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡ADTA ·|§ó·s ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 12H¡A½Ð°Ñ¾\µù¤@ )
°²¦pn¨ú±o©Ò¦³²Å¦XªºÀɮסA¨º»ò¥²¶·¨Ï¥Î°j°é¡A½Ð°Ñ¦Ò¤U¤@³¹ªº¨Ò¤l¡C
§ó§ïÀɮצWºÙ¡A¥i¥H¨Ï¥Î AH¡×56H/INT 21H¡A¥Îªk¬O
§ó§ïÀɮצWºÙ ¿é¤J¡GAH¡×56H ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥Üì¨ÓªºÀɮצWºÙ ( §Y³QקïÀɦW )¡A¥B¤£¯à¥]§t¸U¥Î¦r¤¸ ¡@¡@¡@ES:DI¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥Ü·sªºÀɮצWºÙ¡A¥B¤£¯à¥]§t¸U¥Î¦r¤¸ °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ÅܧóÀɦW ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 02H¡B03H¡B05H¡B11H¡A½Ð°Ñ¾\µù¤@ )
§ó§ïÀɦW³q±`µo¥Í¦b¦P¤@ºÏºÐªº¦P¤@¥Ø¿ý¤º¡A¦ý AH¡×56H/INT 21H ªº¿é¤J°Ñ¼Æ¡A¤]¥i¥H¨Ï·sÂÂÀɦW¦b¦P¤@ºÏºÐªº¤£¦P¥Ø¿ý¤º¡F¦pªG¬O³o¼Ëªº¸Ü¡A¨º»ò´N·|§âÂÂÀÉ®×·h²¾¨ì·sªº¥Ø¿ý¤º ( ³o®ÉÔ¡ADOS ªº°µªk¨ä¹ê¬O¥uקïºÏºÐ¤¤ÀÉ®×´yz°Ï¶ô¡A¹ê»Ú¤W¨Ã¨S¦³¯u¥¿ªº·h²¾Àɮפº®e©Ò¦û¥ÎªººÏ°Ï¡A°Ñ¾\µù¤G )¡A·h²¾«áÀÉ®×Äݩʤ¤ªº«O¦sÄÝ©Ê·|®ø¥¢¡C¦pªG¬O DOS 3.1 ª©¤Î¨ä¥H¤W¡A¤]¥i¥H¹ï¥Ø¿ý¶i¦æ§ó¦W¡C
°²¦p³æ¯Âªº¥u¬On§ó§ïÀɮצWºÙ¡A¨º»ò ES:DI »P DS:DX ©Ò«üªº·sÂÂÀɦW¡A³Ì¦n³£¨Ï¥Îµ´¹ï¸ô®|¡C³o¼Ëªº¸Ü¡A¤£½×¥Ø«eªº¥Ø¿ý¬O§_¬°·sÂÂÀɮשҦb¥Ø¿ý¡A³£¯à¥¿½T°õ¦æ¡C°²¦p ES:DI »P DS:DX ©Ò«üªº·sÂÂÀɦW¡A¥un¦³¤@Өϥά۹ï¸ô®|¡A±¡ªp´N·|«Ü½ÆÂø¡C¨Ò¦p¡A°²¦p¡uTESTREN1.ASM¡v¦b¡uE:\TEST\¡v¥Ø¿ý¤º¡A¦³Óµ{¦¡ RN.ASM¡A§ó§ïÀɦWªºµ{¦¡¤ù¬q¬O©³¤Uªº¼Ë¤l¡G
old_f DB "E:\TEST\TESTREN1.ASM",0 ;µ´¹ï¸ô®| new_f DB "TESTREN2.ASM",0 ;¬Û¹ï¸ô®| . . . mov ax,ds mov es,ax mov dx,OFFSET old_f mov di,OFFSET new_f mov ah,56h int 21h
°õ¦æ RN.EXE ®É¡A¦pªG¥Ø«eªº¥Ø¿ý¬O¡uE:\TEST\¡v¡A¨º»ò´N¯à¥¿±`ªº§â¡uE:\TEST\TESTREN1.ASM¡v§ï¦W¦¨¡uE:\TEST\TESTREN2.ASM¡v¡F¦pªG¥Ø«e¥Ø¿ý¬O¡uE:\TEST\¡v¡A¨º»ò°õ¦æ RN.EXE «á¡A«o·|§â¡uE:\TEST\TESTREN1.ASM¡v·h²¾¨ì¡uE:\TESTREN2.ASM¡v¡A³o¬O¦]¬°¥¦²Å¦X¡u·sÂÂÀɦW¦b¦P¤@ºÏºÐªº¤£¦P¥Ø¿ý¡vªº«e´£¡C
AH¡×57H/INT 21H ¯à°÷¨ú±o©Î³]©wÀɮ׳̫áק諸®É¶¡»P¤é´Á¡A¦]¦¹¦³¨âÓ¥\¯à¡G①¨ú±o»P②³]©w¡A¥Ñ AL ¨M©w¡C¤èªk¦p¤U¡G
¨ú±o©Î³]©wÀɮ׮ɶ¡¤é´Á ¿é¤J¡GAH¡×57H ¡@¡@¡@BX¡×ÀÉ®×¥N½X ¡@¡@¡@¦pªGn¨ú±oÀɮ׳̫áק諸®É¶¡»P¤é´Á ¡@¡@¡@¡@¡@AL¡×00H ¡@¡@¡@¦pªGn³]©wÀɮ׳̫áק諸®É¶¡»P¤é´Á ¡@¡@¡@¡@¡@AL¡×01H ¡@¡@¡@¡@¡@CX¡×Àɮ׳̫áק諸®É¶¡ ¡@¡@¡@¡@¡@DX¡×Àɮ׳̫áק諸¤é´Á °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¨ú±o©Î³]©w¡C¦pªG¬O¨ú±o¡A«h CX¡×Àɮ׳̫áק諸®É¶¡ ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ DX¡×Àɮ׳̫áק諸¤é´Á ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 01H¡B06H¡A½Ð°Ñ¾\µù¤@ )
¤£ºÞ¬O¨ú±oÁÙ¬O³]©w¡ACX ³£¬O«ü®É¶¡¡ADX ³£¬O«ü¤é´Á¡A¨ä®æ¦¡¦p¤U¡G
®É¶¡ ( CX ) | ¤é´Á ( DX ) |
Bit 0¡ã4¡G¬í¼Æ°£¥H 2 Bit 5¡ã10¡G¤ÀÄÁ Bit 11¡ã15¡G¤p®É ( 0¡ã23 ) |
Bit 0¡ã4¡G¤é Bit 5¡ã8¡G¤ë Bit 9¡ã15¡G¦è¤¸¦~¡Ð1980 |
¦b CX ªº²Ä 0 ¨ì²Ä 4 ¦ì¤¸°O¸üªº¨Ã«D¯u¥¿ªº¬í¼Æ¡A¥²¶·§â¥¦¼¥H¤G¤~¬O¯u¥¿ªº¬í¼Æ¡Cì¦]¬O¤p®É»P¤ÀÄÁ¦@¦û¥Î¤F 11 ¦ì¤¸¡A¦Ó CX ¤~ 16 ¦ì¤¸¼e¡A©Ò¥H¥u¯à¥Î 5 Ӧ줸ªí¥Ü¬í¼Æ¡A5 Ӧ줸³Ì¦h¥u¯àªí¥Ü 0¡ã31¡A©Ò¥H¤£±o¤w¥u¦³±N¬í¼Æ°£¥H¤G«á°O¿ý©ó CX ªº²Ä 0 ¨ì²Ä 4 ¦ì¤¸¡C¤p®É»P¤ÀÄÁªº¸ê®Æ¤ñ¬í¼Æ«n±o¦h¡A¦]¦¹ÁY´îªº¬O¬í¼Æ¡C¦P²z DX ªº²Ä 9 ¨ì²Ä 15 ¦ì¤¸°O¸üªº¨Ã«D¦è¤¸´X¦~¡A¦Ó¬O¦è¤¸´X¦~¦A´î¥h 1980 ( MS¡ÐDOS ½Ï¥Í©ó¦è¤¸ 1981 ¦~ )¡A©Ò¥H¥Ñ DX ¤¤¨ú±oªº¸ê®Æn¦A¥[¤W 1980 ¤~¬OÀɮ׳̫áק諸¦~¥÷¡C
AH¡×5BH/INT 21H ¬O¥Î¨Ó«Ø¥ß·sÀɮתº¡A¥Îªk©M AH¡×3CH/INT 21H ´X¥G¬Û¦P¡G
«Ø¥ß·sÀÉ®× ¿é¤J¡GAH¡×5BH ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹¦r¦êªí¥ÜÀɮצWºÙ ¡@¡@¡@CX¡×ÀÉ®×ÄÝ©Ê ( ¨£¡uªí¡GÀÉ®×ÄÝ©Ê¡v) °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡AAX¡×ÀÉ®×¥N½X ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡B04H¡B05H¡B50H¡A½Ð°Ñ¾\µù¤@ )
AH¡×5BH/INT 21H DOS ªA°Èµ{¦¡¬O¥Î¨Ó«Ø¥ßÀɮסA¨ä¿é¤J°Ñ¼Æ¡B¦^¶Çȧ¡»P AH¡×3CH/INT 21H ¬Û¦P¡C°ß¤@ªº®t§O¬O¡A¦pªG DS:DX ©Ò«ü¦ì§}ªºÀɮפw¦s¦b®É¡AAH¡×5BH/INT 21H ¨Ã¤£·|ºIÂ_ÀɮסA¦Ó¬O²£¥Í¿ù»~¡Aªð¦^®É¡A¶i¦ìºX¼Ð³Q³]©w¡A¥B AX ¬° 50H¡A¥NªíÀɮצs¦b¡C
«Ø¥ß¤l¥Ø¿ý¡AAH¡×39H/INT 21H¡AªA°Èµ{¦¡ªº¥Îªk¬O
«Ø¥ß¤l¥Ø¿ý ¿é¤J¡GAH¡×39H ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹ ASCIZ ¦r¦ê¬°¤@¸ô®|¦WºÙ¡A³Ì«á¤@ӥؿý´N¬On«Ø¥ßªº¤l¥Ø¿ý °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡B05H¡A½Ð°Ñ¾\µù¤@ )
¦b DS:DX ©Ò«ü©wªº¦r¦ê¤¤ªº¤l¥Ø¿ý¡A³£¥²¶·¦s¦b¡A°£¤F³Ì«á¤@Ó¤§¥~¡A¦pªG¦³¤@Ó¤£¦s¦b¡A´N·|¥¢±Ñ¡C¦pªG®Ú¥Ø¿ý¤wº¡¡A¤]·|¥¢±Ñ¡C¸ô®|©Ò¥]§tªº¦r¤¸Á`¼Æ¡A¤£¯à¶W¹L 64 Ó¡A§_«h¤]·|¥¢±Ñ¡F¦b³o«e´£¤§¤U¡ADOS ³£¯à«Ø¥ß¤l¥Ø¿ý¡A¤£ºÞ³o¨Ç¤l¥Ø¿ý¦³¦h¤Ö¼h¡C
§R°£¤l¥Ø¿ý¡AAH¡×3AH/INT 21H¡AªA°Èµ{¦¡ªº¥Îªk¬O
§R°£¤l¥Ø¿ý ¿é¤J¡GAH¡×3AH ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹ ASCIZ ¦r¦ê¬°¤@¸ô®|¦WºÙ¡A³Ì«á¤@ӥؿý´N¬On§R°£ªº¤l¥Ø¿ý °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡B05H¡B06H¡B10H¡A½Ð°Ñ¾\µù¤@ )
n§R°£ªº¤l¥Ø¿ý¥²¶·¬OªÅªº¡A§_«h·|µo¥Í¿ù»~¡C¨Æ¹ê¤W¡A¥ô¦ó¤@Ó¤l¥Ø¿ý³£¥]§t¦³¡u.¡v»P¡u..¡v³o¨âÓ¡©¥Ø¿ý¡ª¡A¤À§O¥Nªí¥»¨³oÓ¤l¥Ø¿ý»P¤W¤@¼h¥Ø¿ý¡C³o¸Ì©Ò»¡¡uªÅªº¡vªº·N«ä¬O°£¤F³o¨âÓ¤§¥~¡A¤£§t¨ä¥LÀɮשΨä¥L¥Ø¿ý¡C
³]©w¥Ø«eªº¥Ø¿ý¡AAH¡×3BH/INT 21H¡AªA°Èµ{¦¡ªº¥Îªk¬O
³]©w¥Ø«eªº¥Ø¿ý ¿é¤J¡GAH¡×3BH ¡@¡@¡@DS:DX¡×ASCIZ ¦r¦ê¦ì§}¡A¦¹ ASCIZ ¦r¦ê¬°¤@¸ô®|¦WºÙ¡A³]©w¥Ø«eªº¥Ø¿ý¬°¸ô®|¤Wªº³Ì«á¤@Ó¤l¥Ø¿ý °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\ ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡A½Ð°Ñ¾\µù¤@ )
¨CӺϺо÷³£¦³¦Û¤vªº¥Ø«e¥Ø¿ý¡ADOS ·|§â³o¨Ç¸ê®Æ°O¿ý°_¨Ó¡C·í§A¦b DOS ´£¥Ü¦r¤¸¤U¤Á´«ºÏºÐ¾÷¦WºÙ®É¡A´N¯à¬Ý¨£¸ÓºÏºÐ¾÷ªº¥Ø«e¥Ø¿ý¡C¦pªG DS:DX ©Ò«üªº¦r¦ê¥]§tºÏºÐ¾÷¦WºÙ¡A§ïÅܪº´N¬O¸ÓºÏºÐ¾÷ªº¥Ø«e¥Ø¿ý¡F¦pªG¤£¥]§tºÏºÐ¾÷¦WºÙ¡A§ïÅܪº¬O¥Ø«eºÏºÐ¾÷ªº¥Ø«e¥Ø¿ý¡C
¨ú±o¥Ø«eªº¥Ø¿ý¡AAH¡×47H/INT 21H¡AªA°Èµ{¦¡ªº¥Îªk¬O
¨ú±o¥Ø«eªº¥Ø¿ý ¿é¤J¡GAH¡×47H ¡@¡@¡@DL¡×¨ú±oþӺϺо÷ªº¥Ø«e¥Ø¿ý ( 00H¡Ð¥Ø«eªººÏºÐ¾÷¡A01H¡ÐA: ºÏºÐ¾÷¡B02H¡ÐB: ºÏºÐ¾÷¡K¡K) ¡@¡@¡@DS:DX¡×±µ¦¬¥Ø«e¥Ø¿ýªº¦r¦ê¦ì§}¡Aªø 64 Ӧ줸²Õ °õ¦æ¡GINT 21H ªð¦^¡GNC¡×¦¨¥\¡ADS:DX ©Ò«üªº¦ì§}¶ñ¤J¥Ø«eªº¥Ø¿ý ¡@¡@¡@CY¡×¥¢±Ñ¡AAX¡×¿ù»~½X ( ¥i¯à¬O 03H¡A½Ð°Ñ¾\µù¤@ )
DS:DX ©Ò«üªº¥Ø«e¥Ø¿ý¤£¥]§tºÏºÐ¾÷¦WºÙ¡C
¤£½×þ¤@Ó DOS ªA°Èµ{¦¡¡A¦³ÃöÀɮ׳B²zªº¿ù»~½X¬Û¦P®É¡A©Ò¥Nªíªº·N¸q¤]¬Û¦P¡A±`¨£ªº¦p¤U¡G
¤p¤ì°¸½Í½×ªº³o¤@³¡¤À¬OÁ¿ DOS¡A©Ò¥H©³¤U¤]´N¶È¹ï DOS ¨Ï¥ÎªºÀɮרt²Î¡AFAT Àɮרt²Î»¡©ú¡C
¦b DOS §@·~¨t²Î¤º¡A¤£ºÞ¬OµwºÐÁÙ¬O³nºÐ¡A¤@¤ùºÏºÐ¤ù³£¥i¥H¹º¤À³\³\¦h¦hªº¦P¤ß¶ê¡A¦Ó¨CÓ¦P¤ß¶ê¦A¹º¤À¤@ÓÓ©·½u©Ò²Õ¦¨¼e«×«Ü¤pªººÏ°Ï ( sector )¡C³o¨ÇºÏ°Ï¦p¦P°O¾ÐÅé¦ì§}¤@¼Ë¡A³£¦³½s¸¹¡A DOS¡BWindows µ¥§@·~¨t²Î¨Ì¾Ú³o¨Ç½s¸¹¤~¯àŪ¨ú©Î¼g¤J¸ê®Æ¡C³o¨ÇºÏ°Ï¤S¹º¤À´XÓ°Ï°ì¡A¦p¤U¡G
·í©I¥s AH¡×41H/INT 21H §R°£Àɮ׮ɡADOS ¶È¶È§ä¨ìn§R°£Àɮתº FDB¡A§âÀɦWªº²Ä¤@Ó¦r¤¸§ï¦¨§R°£°O¸¹ ( ¤Q¤»¶i¦ìªº¼ÆÈ¡A0E5H )¡A¦P®É§R°£ FAT ¤¤ªººÏ°Ï½s¸¹ªº¦ê±µÃì¡A¨ä¾l³£¨S¦³§ïÅÜ¡C©Ò¥HÀɮפº®e¥H¤Î¦b FDB ºÓ¦û¥ÎªººÏ°Ï½s¸¹³£ÁÙ¦b¡A¬GºÏºÐ±Ï´©³nÅé¤~¯à±Nè§R°£ªºÀɮױϦ^¡C·íµM¡A¦pªG§R°£Àɮפ§«á¡AºÏºÐ¸g¹L¦h¦¸Åª¼g¡A¨º»ò FAT ¤¤ªº¦ê±µÃì©Î¸ê®Æ°Ï¾D¨ìÂмg¡AÁÙ¬O±Ï¤£¦^¨Ó¡C
·í©I¥s AH¡×56H/INT 21H §ó§ïÀɦW¡A¦pªG·s¡BÂÂÀɦW¬O¦b¦P¤@ӺϺо÷¤Wªº¤£¦P¤l¥Ø¿ý®É¡ADOS ¶È¶È§ä¨ì¤l¥Ø¿ý¤¤ÂÂÀɮתº FDB¡A±N¨ä FDB §R°£¡A¦P®É¦b·sÀɦW¤¤«ü©wªº¤l¥Ø¿ý²K¥[·sÀɮתº FDB ¸ê®Æ¡AÂÂÀɮשҦû¾ÚªººÏ°Ï¤]³£ì«Ê¤£°Êªº«O¯dµÛÅܦ¨·sÀɮשҦû¾ÚªººÏ°Ï¡C©Ò¥H§A·|µo²{¦b¦P¤@ӺϺФº¡A§â¤jÀɮײ¾¨ì¥t¤@Ó¤l¥Ø¿ý¡A°Ê§@Àþ¶¡´N§¹¦¨¡C