DOS Àɮ׳B²zªº¤èªk¦³¨âºØ¡A¤@¬O±Ä¥Î FCB ¦¡(file control block¡AÀÉ®×±±¨î°Ï)¡A¥t¤@ºØ¬O handle ¦¡(file handle¡AÀÉ®×¥N½X)¡CFCB ¦¡ªºÀɮ׳B²z¤è¦¡¤w¸g¸¨¥î¤F¡A¨ì²Ä¤Q¤C³¹¦A¦V¦U¦ì³ø§i¡A¦]¦¹²{¦bÅý§Ú¶°¤¤ºë¤O¡A¦V¦U¦ì»¡©ú handle ¦¡ªºÀɮ׳B²z¤è¦¡¡C
©Ò¿× handle ¦¡ªºÀɮ׺޲z¦³ÂIÃþ¦ü¥hÂå°|ùجݯf¡C·í§ÚÌ¥hÂå°|¬Ý¯f®Éº¥ý¨ì±¾¸¹³B»â¨ú¸¹½XµP¡A¦¹«áÂå¥Í´N¨Ì¾Ú¸¹½XµP¥s¯f¤HÂå¯f¡CHandle ¦¡ªºÀɮ׳B²z¤]¬OÃþ¦ü¡A·í§Ú̶}±ÒÀɮשΫإßÀɮ׮ɡADOS ´Nµ¹¤©¦¹Àɮפ@Ó¸¹½X¡A³oÓ¸¹½X¥Nªí¦¹ÀɮסA·íµ{¦¡·Q³B²zÀɮ׮ɡA´N¥H³o¥N½X¨Óªí¥Ü³oÓÀɮסA¦Ó¤£¦Aª½±µ¥ÎÀɦW¤F¡C¤Wz©Ò´£¨ìªº¸¹½X´NºÙ¬° file handle¡A©Î¥sÀÉ®×¥N½X¡C
¦A»¡±o§ó¸Ô²Ó¤@ÂI¡A·í§Ú̶}±ÒÀɮשΫإßÀɮ׮ɴN¥i¥H¨ú±o¤@ÓÀÉ®×¥N½X¡A°µªk¬On¥ý§âÀɮצWºÙ ( ¤]¥i¥]§t¸ô®| ) ©ñ¦b°O¾ÐÅé¬Y³B¡A¨Ã¦bÀɦW³Ì«á¥[¤W 00H §Y¥i¡AµM«á¥æµ¹«ü©wªº DOS ªA°Èµ{¦¡¥h°õ¦æ´N¥i¥H¤F¡C¹³³oºØ ASCII ¦r¦ê¦A¥[¤W 00H ªº¦r¦êºÙ¬° ASCIIZ ¦r¦ê¡C¤@¤Á´N¬O³o»ò²³æ¡C
·í§ÚÌ©I¥sÃö³¬Àɮתº DOS ªA°Èµ{¦¡®É¡ADOS ´N¦¬¦^³oÓÀÉ®×¥N½X¡AÅý¨ä¥L·sªºÀɮרϥΡCDOS ³W©w³Ì¤j¶}±ÒÀɮתº¼Æ¥Ø¬O©ñ¦b CONFIG.SYS ¤¤¡A¥Î
files=xx
¨Ó«ü©w¡A¦¹³Bªº xx ´N¬O DOS ©Ò¯à¶}±Ò³Ì¤jÀɮ׼ƥءA·íµM xx ¤]¥i¥Hק令§ÚÌ©Ò»ÝnªºÀɮ׼ƥءCȱoª`·Nªº¬O¡ADOS ¦b¤@¶}¾÷®É¡A´N¤w¸g«ü©w 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 ) 0001H ¼Ð·Ç¿é¥X³]³Æ ( stdout ) 0002H ¼Ð·Ç¿ù»~³]³Æ ( stderr ) 0003H ¼Ð·Ç»²§U³]³Æ ( stdaux ) 0004H ¼Ð·Ç¦C¦L³]³Æ ( stdprn )
³o¤Ó¡yÀÉ®×¥N½X¡z¬Ý°_¨Ó¦ü¥G¤£¬OÀɮסA¦Ó¬O¶gÃä³]³Æ¡CÄ´¦p¡A¼Ð·Ç¿é¤J³]³Æ¡B¼Ð·Ç¿é¥X³]³Æ«üªº¬OÁä½L»P¿Ã¹õ¡A¼Ð·Ç¦C¦L³]³Æ«üªº¬O¦Lªí¾÷¡A«ç»ò·|³o¼Ë©O¡Hì¨Ó DOS §â³o¨Ç³]³Æµø¬°ÀɮסA¹ï¥¦Ì¿é¥X¸ê®Æ®É¡A´N¹³¬O¹ï¡yÀɮסz¼g¤J¡C³o¤]´N¬O§ÚÌ¥i¥H¥Î¡y>¡z¡B¡y<¡z¨Óªí¿é¥X¨ì¿Ã¹õ¤Wªº¤å¦rÅܦ¨Àɮתº½t¬G¡C
¶}±Ò©Î«Ø¥ßÀɮפ§«á¡A¨ú±o¤FÀÉ®×¥N½X¡A¦pªGnŪ¨ú¬Y¨ÇÀɮפº®e©ÎªÌ¼g¤J¬Y¨Ç¤º®e¨ìÀɮפ¤¡A¤S¸Ó¦p¦ó°µ©O¡H
¦Ò¼{¥þ³¡ªºÅª¨ú©Î¼g¤Jªº®É¾÷¡A¨Ã¤£¬O©Ò¦³±¡ªp¤U³£¥²¶·±qÀɮ׳̫eºÝŪ¨ú©Î¼g¤J¡A¨Ò¦p¦b¤@Ó¥þ®Õ¼Æ¤dµ§ªº¾Ç¥Í¸ê®ÆùØ¡A¥unŪ¨ú¬Y¤@¯Z¸ê®Æ®É¡A¦pªG¨C¦¸³£±o±qÀÉ®×ÀY¶}©lŪ¨ú¡AµM«á¦A´M§ä¨ì¸Óµ§¸ê®Æ¡A³o¼Ë´N«D±`ªº¯Ó®É¯Ó¤O¡C
¬°¤FÁקK³oÓ°ÝÃD¡ADOS ¤º³¡·|¬°¨CÓ¶}±ÒªºÀɮ׫إߤ@Ó 32 ¦ì¤¸ªøªºÀɮ׫ü¦ì¾¹¡A¨C·íè¶}±ÒÀɮ׮ɡAÀɮ׫ü¦ì¾¹«K«ü¦VÀɮ׳̫e±¡A¨CŪ¨ú©Î¼g¤J¤@¦¸®É¡AÀɮ׫ü¦ì¾¹´N¦Û°Ê¦a«ü¦VŪ¨ú©Î¼g¤Jªº§ÀºÝ¡C°²¦pµ{¦¡¤£¬O¨Ì¶¶§ÇŪ¨úŪ¨ú©Î¼g¤J®É¡ADOS ªA°Èµ{¦¡¤]¦³¤@Ó¥\¯à¡A¥i¥H¶È²¾°ÊÀɮ׫ü¦ì¾¹¡A¦Ó¤£Åª¨ú©Î¼g¤J¡C³o¼Ëµ{¦¡¥u»Ýpºân¨ÏÀɮ׫ü¦ì¾¹²¾¨ìnŪ¨ú©Î¼g¤Jªº¦a¤è¡AµM«á¦A¥[¥H³B²z§Y¥i¡C
¦n§a¡I¥ý¬Ý¬Ý¤Uªí¤¤±`¥ÎªºÀÉ®×¥N½X DOS ªA°Èµ{¦¡¡C¤Uªí¤À¨â³¡¥÷¡A¤W¥b³¡¬O¦b DOS ¤¤ªºªA°Èµ{¦¡¡A¤U¥b³¡¬O Windows 9x/Me ¤¤ DOS ¼Ò¦¡¤¤ªºªA°Èµ{¦¡¡A¨âªÌªº®t§O¦b Windows 9x/Me ¥i¨Ï¥ÎªøÀɦW¡A¦Ó DOS ¤¤ªºªA°Èµ{¦¡µLªk¨Ï¥ÎªøÀɦW¡C
¦b DOS ¨t²Î¤¤¦³ÃöÀÉ®×¥N½XªºªA°Èµ{¦¡ | |||
¥Î³~ | ©I¥s | ¿é¤J | ¿é¥X |
«Ø¥ß·sÀÉ®× | AH=3CH | DS:DX=·sÀɦW¤§ASCIIZ¦r¦ê¦ì§} CX=ÀÉ®×ÄÝ©Ê |
AX=ÀÉ®×¥N½X ¸Ô±¡°Ñ¦Ò¿ù»~½X |
¶}±ÒÀÉ®× | AH=3DH |
DS:DX=±ý¶}±ÒÀɦW¤§ASCIIZ¦r¦ê¦ì§} AL=³]©w¶}±ÒªºÀÉ®×ÄÝ©Ê |
AX=ÀÉ®×¥N½X ¸Ô±¡°Ñ¦Ò¿ù»~½X |
Ãö³¬ÀÉ®× | AH=3EH | BX=±ýÃö³¬¤§ÀÉ®×¥N½X | ¸Ô±¡°Ñ¦Ò¿ù»~½X |
Ū¨úÀɮפº®e | AH=3FH | BX=±ýŪ¨ú¤§ÀÉ®×¥N½X CX=±ýŪ¥X¤§ªø«×¡A¥H¦ì¤¸²Õ¬°³æ¦ì DS:DX=Ū¥XÀɮפº®e¤§¦s©ñ¦ì§} |
AX=¹ê»ÚŪ¥X¤§¦ì¤¸²Õ¼Æ ¸Ô±¡°Ñ¦Ò¿ù»~½X |
±N°O¾ÐÅ餺®e¼g¤JÀÉ®× | AH=40H | BX=±ý¼g¤J¤§ÀÉ®×¥N½X CX=±ý¼g¤J¤§¦ì¤¸²Õ¼Æ DS:DX=±ý¼g¤J¤§°O¾ÐÅé¦ì§} |
AX=¹ê»Ú¼g¤J¤§¦ì¤¸²Õ¼Æ ¸Ô±¡°Ñ¦Ò¿ù»~½X |
§R°£ÀÉ®× | AH=41H | DS:DX=±ý§R°£¸ô®|ÀɦW¤§ASCIIZ¦r¦ê¦ì§} | ¸Ô±¡°Ñ¦Ò¿ù»~½X |
²¾°ÊÀɮ׫ü¦ì¾¹ | AH=42H | BX=ÀÉ®×¥N½X CX:DX=²¾°Ê¦ì¤¸²Õ¼Æ AL=¥Ñ¦ó³B¶}©l²¾°Ê(²¾°Ê¤è¦¡)(µù¤G) |
DX:AX=²¾°Ê«á¶ZÀÉ®×°_©l³B¦h»· |
«Ø¥ß©Î¶}±ÒÀÉ®× ¦¹¥\¯à¬O3CH»P3DHªºÁ`©M |
AX=6CH | DS:SI=±ý¶}±Ò©Î«Ø¥ß¤§ASCIIZ¦r¦ê BX=¦s¨ú¼Ò¦¡ CX=ÄÝ©Ê DX=°Ê§@ ( ¸Ô²Ó±¡§Î½Ð°Ñ¦Òµù¤T ) | ¡@ |
¦b Windows 9x/Me ¦³ÃöªøÀɦWªºÀÉ®×¥N½XªA°Èµ{¦¡ INT 21H/AH=71H | |||
¥Î³~ | ©I¥s | ¿é¤J | ¿é¥X |
«Ø¥ß©Î¶}±ÒÀÉ®× | AX=716CH | DS:SI=±ý¶}±Ò©Î«Ø¥ß¤§ASCIIZ¦r¦ê BX=¦s¨ú¼Ò¦¡ CX=ÄÝ©Ê DX=°Ê§@ ( ¸Ô²Ó±¡§Î½Ð°Ñ¦Òµù¤T ) |
NC ¦¨¥\¡AAX=ÀÉ®×¥N½X ¡@¡@ ¡@¡@CX= 1ªí¥Ü³Q¶}±Ò |
§R°£ÀÉ®× | AX=7141H | DS:DX=±ý§R°£ÀɦW¤§ ASCIIZ ¦r¦ê¦ì§} CH=ÄÝ©Ê SI=0000 ¤£¤¹³\¨Ï¥Î¸U¥Î¦r¤¸§R°£ÀÉ®× |
NC ¦¨¥\ CY ¥¢±Ñ¡AAX=¿ù»~½X |
«Ø¥ß¤l¥Ø¿ý | AX=7139H | DS:DX=«ü¦V±ý«Ø¥ß¤l¥Ø¿ý¦W¤§ ASCIIZ ¦ì§} | NC ¦¨¥\ CY ¥¢±Ñ¡AAX=¿ù»~½X |
´M§ä²Ä¤@ӲŦXªºÀÉ®× | AX=714EH | DS:DX=«ü¦V±ý´M§äªºÀɦW ASCIIZ ¦r¦ê¤§¦ì§}¡A¥i¥]§t¸U¥Î¦r¤¸ CL=¤¹³\ªºÄÝ©Ê CH=¥²»ÝªºÄÝ©Ê SI=FindData ªº¤é´Á®É¶¡®æ¦¡¡A0 ªí¥Ü Win 9x ®æ¦¡¡F1 ªí¥Ü DOS ®æ¦¡ ES:DI=«ü¦V FindData µ²ºcÅé |
NC¡Ð¦¨¥\ ¡@¡@¡@AX=ÀÉ®×´M§ä¥N½X ¡@¡@¡@CX=Unicode Âà´«ºX¼Ð ¡@¡@¡@¡@¡@¦ì¤¸ 0 ¬° 1¡Aªí¥Üªð¦^ªºªøÀɦW§tµLªkÂà´« ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ªº¸U°ê½X¦r¤¸ ¡@¡@¡@¡@¡@¦ì¤¸ 1 ¬° 1¡Aªí¥Üªð¦^ªºµuÀɦW§tµLªkÂà´« ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ªº¸U°ê½X¦r¤¸ CY¡Ð¥¢±Ñ |
´M§ä¤U¤@ӲŦXªºÀÉ®× | AX=714FH | BX=ÀÉ®×´M§ä¥N½X¡A¥ç§Y©I¥s AX=714EH ¤§ªð¦^È SI=FindData ªº¤é´Á®É¶¡®æ¦¡¡A0 ªí¥Ü Win 9x ®æ¦¡¡F1 ªí¥Ü DOS ®æ¦¡ ES:DI=«ü¦V FindData µ²ºcÅé ¤@¯ë¦Ó¨¥¡A´M§äÀÉ®×·|¥ý¥H 714EH §ä¨ì²Ä¤@ÓÀɮפÎÀÉ®×´M§ä¥N½X¡A¦¹®É²Ä¤@ÓÀɮתº¸ê®Æ¤w¦b FindData ùؤF¡A¦A¥H 714FH ´M§ä²Ä¤G¡B²Ä¤T¡K¡KӲŦXªºÀɮסA¦pªG¤£¶·¦A´M§äªº¸Ü¡A¥H 71A1H Ãö³¬ÀÉ®×´M§ä¥N½X¡A¨Ã±N¸ê·½ÁÙµ¹¨t²Î¡C |
NC¡Ð¦¨¥\ ¡@¡@¡@AH=4FH ¡@¡@¡@CX=Unicode Âà´«ºX¼Ð ¡@¡@¡@¡@¡@¦ì¤¸ 0 ¬° 1¡Aªí¥Üªð¦^ªºªøÀɦW§tµLªkÂà´« ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ªº¸U°ê½X¦r¤¸ ¡@¡@¡@¡@¡@¦ì¤¸ 1 ¬° 1¡Aªí¥Üªð¦^ªºµuÀɦW§tµLªkÂà´« ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@ªº¸U°ê½X¦r¤¸ CY¡Ð¥¢±Ñ |
¤@¯ë¦Ó¨¥¡A¥N½X¦¡ªºÀɮ׳B²z¤è¦¡¡A°õ¦æ§¹«á¦pªG¶i¦ìºX¼Ð³Q³]©w(¦b DEBUG Åã¥Ü CY)¡Aªí¥Ü¿ù»~²£¥Í¡A¦¹®É AX ¼È¦s¾¹ªº¤º®eªí¥Ü¿ù»~½X¡C¦pªG¶i¦ìºX¼Ð³Q²M°£(NC)¡A«hªí¥Ü¨S¦³¿ù»~µo¥Í¡C¦]¦¹§ÚÌÀ³¸Ó¦b°õ¦æ§¹¤¤Â_ªA°Èµ{¦¡«á¡AÀˬd¬O§_¦³¿ù»~¡C
©³¤U§Ú¨Ó¥Ü½d¤@Óµ{¦¡¡ACRTTCT.COM¡A³oÓµ{¦¡·|¦b C:\MYDOCU~1 ¤l¥Ø¿ý¤º«Ø¥ß¤@Ó¦W¬° TEST.TXT ªºÀɮסAµM«á DOS µ¥«Ý§ÚÌ¿é¤J¤@¨Ç¦r¡A¦pªG«ö¤U Esc Áä´N·|±N§ÚÌ¿é¤Jªº¦r¦s¤J TEST.TXT Àɨøõ¦^ DOS¡C³oÓµ{¦¡¨Ã¨S¦³½s¿è¥\¯à¡A¦]¦¹¦pªG¿é¤J¿ù»~¡A¬O¨Sªk¨ì¦^¥hק諸¡Cµ{¦¡¦p¤U¡G
;*************************************** code segment assume cs:code,ds:code org 100h ;--------------------------------------- start: jmp begin file_name db 'C:\MYDOCU~1\TEXT.TXT',0 file_handle dw ? message_1 db 'µLªk«Ø¥ß TEXT.TXT ÀÉ¡C$' message_2 db 'µLªk±N¸ê®Æ¦s¤J TEXT.TXT ÀÉ¡C$' message_3 db '¼g¤J¦¨¥\¡I$' buffer db 200 dup (?) ;12 ¿é¤J½w½Ä°Ï begin: mov ah,3ch mov cx,0 mov dx,offset file_name ;15 ¨ú±oASCIIZ¦r¦ê¦ì§} int 21h mov dx,offset message_1 jc error mov file_handle,ax ;19 ±Nhandle¦s¤JÅÜ¼Æ mov si,offset buffer ;20 ±NSI«ü¦V¿é¤J½w½Ä°Ï next: mov ah,0 ;21 ¦r¤¸¿é¤J int 16h cmp al,1bh ;23 Àˬd¬O§_«ö¤UEscÁä je exit mov [si],al ;25 Y¤£¬O¡A«h±N¸Ó¦r¤¸¦s©ó½w½Ä°Ï mov ah,2 ;26 ¤Î¦L¦b¿Ã¹õ¤W mov dl,al int 21h cmp al,0dh ;29 Y¨Ï¥ÎªÌ«ö¤UEnterÁä jne not_cr mov dl,0ah ;31 «hÁÙn¦A¦s¤J´«¦æ¦r¤¸ inc si mov ah,2 int 21h mov [si],dl not_cr: inc si cmp si,offset begin ;37 Àˬd½w½Ä°Ï¬O§_¶ñº¡¤F jne next exit: mov cx,si mov dx,offset buffer mov ah,40h sub cx,dx jz close mov bx,file_handle int 21h ;45 ¦s¤JÀÉ®× mov dx,offset message_2 jc error close: mov ah,3eh mov bx,file_handle int 21h ;50 Ãö³¬ÀÉ®× mov dx,offset message_3 error: mov ah,9 int 21h mov ax,4c00h int 21h ;--------------------------------------- code ends ;*************************************** end start
±N³oÓì©lÀɽsĶ¡B³sµ²¨ÃÂà´«¦¨ CRTTCT.COM ÀÉ¡A°õ¦æ¬Ý¬Ý
¤p¤ì°¸¥ý°õ¦æ CRTTXT.COM µ{¦¡¡AµM«á¿é¤J
I learn assembly language hard, beacuse it is very fun.
³o¤@¬q¤å¦r(ºñ¦â°é°_¨Óªº¦a¤è)¡A¦b³rÂI«á«ö¤U Enter Áä¸õ¨ì¤U¤@¦æ¦bÄ~Äò¿é¤Jª½¨ì¥yÂI¡A¿é¤J§¹«á¦A«ö¤U Enter Áä¡A¦A«ö¤U Esc Áä¡Aµ{¦¡¥ß§Y§â§Ú©Ò¿é¤Jªº¤å¦r¦s¤J C:\MYDOCU~1\TEXT.TXT ÀÉ¡A¨Ãªð¦^ DOS¡C
µM«á§Ú¦b DOS ©R¥O´£¥Ü¤U¡AÀˬd TEXT.TXT ÀÉ(¬õ¦â°é°_¨Óªº¦a¤è)¡A§A¤]¥i¥Hµ§°O¥»¶}±Ò¥L¡A¬Æ¦ÜÄ~Äò½s¿è¡C
©³¤U¥J²Ó»¡©ú³oÓµ{¦¡¡C
²Ä¤Q¤T¦æ¨ì²Ä¤Q¤¦æ¬O³]©w«Ø¥ßÀɮשһÝnªº¼È¦s¾¹È¡A°Ñ¦Ò¤Wªí¡A¥²¶·³]©wAH¡BDS¡BDX¡BCXµ¥¼È¦s¾¹¡C¦]¬°³oÓµ{¦¡¬O COM ÀÉ¡A¨ä©Ò¦³°Ï¬q³£¬Û¦P¡A¬G DS ¼È¦s¾¹¤£¥²³]©w´N¬O¥¿½TÈ¡A¨ä¥L¤TӼȦs¾¹³£¥²¶·¦b©I¥s¤¤Â_«e³]¦n¡C
YµL¿ù»~¡A²Ä¤Q¤E¦æ±N DOS ¶Ç¦^¨ÓªºÀÉ®×¥N½X¦s¤J¤@ÓÅܼƤ¤¡A¥H³Æ©Ò»Ý¡C²Ä¤G¤Q¦æ³]©w¨Ï¥ÎªÌ¿é¤Jªº¸ê®Æ¦s©ñ³B¡A¦s©ó buffer ³oÓ¦ì§}©Ò«üªº¦a¤è¶}©l¡CSI «ü¦V³oÓ¦ì§}¡A¥H«á¨C·í¨Ï¥ÎªÌ¿é¤J¤@Ó¦r¤¸¡A´N·|¦s©ó SI ©Ò«ü¦ì§}³B¡AµM«á¦A¨Ï SI ¼W¥[¤@¡A¨Ï¤U¤@Ó¿é¤Jªº¦r¯à¦s©ó¥¿½T¦ì§}¡A¤£·|Âл\«e±ªº¸ê®Æ¡C¦Ó buffer ³oÓ¦ì§}¦b²Ä¤Q¤G¦æ¤w¸g¥ý©w¸q¤F¡A
buffer db 200 dup (?)
³oÓ©w¸q¥X²{¤F dup «ü¥O¡A¥¦ªº¥Îªk¬O¡G
ÅܼƦW db n dup (value)
ªí¥Ü¦b¡yÅܼƦW¡z©Ò«üªº¦ì§}³]©w¤@Óªø n Ӧ줸²Õªº°Ï°ì¡A¦b³oӰϰ줺ªº¨CӦ줸²ÕªºÈ³£¬O value¡C°²¦p¤£·Q³]©w³o¶ô°Ï°ìªº°_©lÈ¡A¥i¥H¥Î¡y?¡z¥N´À value¡C¦]¬°µ{¦¡³]p®v¤£¾å±o¨Ï¥ÎªÌ·|¿é¤J¦h¤ÖÓ¦r¡A¬G¥ý°²³]¤@Óªø200 Ӧ줸²Õªº°Ï°ìµ¹¨Ï¥ÎªÌ¿é¤J¡A¦]¦¹³o®É dup «ê¦n²Å¦X©Ò»Ý¡C
±µ¤U¨Ó¬OÁä½L¿é¤J¦r¤¸¡A¤ÎÀˬd¨Ï¥ÎªÌ¬O§_«ö¤U Esc Áä¡A¦pªG¤£¬O«ö¤U Esc Áä¡A«h±N¸Ó ASCII ¦r¤¸¦s©ó buffer ©Ò«üªº¨º¶ô°Ï°ì(²Ä25¦æ)¡A¨Ã¦L¥X¨Ó(²Ä26¨ì28¦æ)¡C
¦pªG¨Ï¥ÎªÌ«ö¤U Enter Áä®É¡A³o®ÉÀ³¸Ó±N´å¼Ð²¾¨ì¿Ã¹õ¤U¤@¦æªº³Ì¥ªÃä¡A¦ý¬O¤£©¯ªº¬O¡A¦b IBM PC ¸Ì«ö¤U Enter Áä¥u¯à²£¥Í ASCII ½Xªº 0dh¡A¥¦¥u¯à¨Ï´å¼Ð²¾¨ì³Ì¥ªÃä¡A¤£¯à²¾¨ì¤U¤@¦æ¡A¬Gµ{¦¡±o¦Û¦æ²£¥Í¡y´«¦æ¡z®ÄªG¡C²¾¨ì¤U¤@¦æ(´«¦æ)ªº ASCII ½X±±¨î²Å¸¹¬O 0ah (°Ñ¦Òªþ¿ý¥|)¡A©Ò¥H¦b²Ä31¦æ¥[¤J¤@Ó´«¦æ²Å¸¹¡A¨Ã¦s©ó buffer ©Ò«üªº¨º¤@¶ô°Ï°ì¡A¦P®É¨Ï SI «ü¦V¤U¤@Ó¦ì§}¡A¥H«K¦s¤J¤U¤@Ó¿é¤Jªº¦r¤¸¡C
²Ä37¦æ«h¬OÀˬd buffer ©Ò«üªº¦ì§}¬O§_¤w¸g¶ñº¡¤F¡AY¶ñº¡©Î¬O¨Ï¥ÎªÌ´£«e«ö¤U Esc Áä«h¦sÀÉ(39¨ì45¦æ)¡BÃö³¬ÀÉ®×(48¨ì50¦æ)¨Ãªð¦^ DOS (54¨ì55¦æ)¡C¨ä¤¤ÁÙ°ÑÂøµÛÀˬd¬O§_¦³¿ù»~ªºÀˬdµ{¦¡¤ù¬q¤Î¦L¥X°T®§ªºµ{¦¡¤ù¬q¡C
½Ð°Ñ¦Òªþ¿ý¤
AH=42H/INT 21H²¾°ÊÀɮ׫ü¼Ð³oÓªA°È±`¦¡¥u¯à¥Ñ°Ñ¦ÒÂI¦V«á²¾¡A¤£¯à¦V«e²¾¡A©Ò¯à¨Ï¥Îªº°Ñ¦ÒÂI¦³¤T¡GÀɮ׶}©l³B¡BÀÉ®×¥½ºÝ¤Î³Q²¾°Ê«á©Ò«üªºÀɮ׫ü¼Ð³B¡C¬°¤F¤è«K¡A¼g¤J©ÎŪ¨úÀɮ׮ɡA¤]·|¦V«á§ó°ÊÀɮ׫ü¼Ð¡C·íÀɮ׳Q¶}±Ò©Î«Ø¥ß®É¡AÀɮ׫ü¼Ð¬°¹s¡A¤]´N¬O¦bÀÉ®×°_©l¦ì¸m¡C¦pªGŪ¨ú©Î¼g¤J©Î²¾°ÊÀɮ׫ü¼Ð 1000 Ӧ줸²Õ¡AÀɮ׫ü¼Ð«K²¾¨ìÂ÷Àɮ׶}©l³B 1000 Ӧ줸²Õªº¦a¤è¡A¦pªG¦AŪ¨ú©Î¼g¤J©Î²¾°ÊÀɮ׫ü¼Ð 500 Ӧ줸²Õ¡A¨ºÀɮ׫ü¼Ð´N·|¦b©¹«á²¾ 500 Ӧ줸²Õ¡A¤]´N¬OÀɮ׶}©l³B«á 1500 Ӧ줸²Õªº¦a¤è¡A³o®É¥H²Ä 1000 Ӧ줸²Õ¬°°Ñ¦ÒÂI¦V«á²¾ 500 Ӧ줸²Õ¡C
¦n¡A²{¦b²Ä¤@Ó°ÝÃD¨Ó¤F¡A°²¦p²{¦bÀɮ׫ü¼Ð¤w¸g¦bÀɮ׶}©l«á 1500 Ӧ줸²Õªº¦a¤è¤F¡A¦ý§Ú·QŪ¨úÀɮ׶}©lªº²Ä 1024 ¦ì¤¸²Õ¥H«áªº 100 Ӧ줸²Õ¡A¸Ó«ç»ò¿ì©O¡H³o®É´N±o¥Î AH=42H/INT 21H ³oÓªA°Èµ{¦¡¤F¡Aº¥ý±o²¾°ÊÀɮ׫ü¼Ð¡A¥ÑÀɮ׶}©l³B¦V«á²¾ 1024 Ӧ줸²Õ¡A¦AŪ¨ú 100 Ӧ줸²Õ¡C
©³¤Uªºµ{¦¡¤ù¬q¡A´N¬O¥ý±NÀɮ׫ü¼Ð²¾¨ì±qÀɮ׶}©l³Bºâ(AL=0)ªº²Ä 1024 ¦ì¤¸²Õ(CX:DX=0000:0400H)¡A¦AŪ¨ú¡C
mov ah,42h mov al,0 ;§â°Ñ¦ÒÂI³]¬°Àɮ׶}©l³B mov bx,handle mov dx,1024 ;¦V«á²¾ 1024 Ӧ줸²Õ sub cx,cx int 21h mov ah,3fh ;¦AŪ¨ú 100 Ӧ줸²Õ mov bx,handle mov cx,100 mov dx,buffer int 21h
²Ä¤GÓ°ÝÃD¡A¦pªGÀɮ׫ü¼Ð¤w¸g¨ìÀÉ®×¥½ºÝ¡A¦A²¾°ÊÀɮ׫ü¼Ð·|µo¥Í¤°»ò¨Æ©O¡H®Ú¾Ú¤p¤ì°¸¦b MS¡ÐDOS 6.20 ª©¤W¹êÅçµ²ªG¡A³o®ÉÀɮ׫ü¼ÐÁÙ¬O·|Ä~Äò¦V«á²¾¦Ó¶W¹LÀɮתø«×¡A¥B¤£·|³ø¿ù¡A¤£¹L¡A¦¹®É¦pªG¦AŪ¨ú¡A¥u¯àŪ¨ì 0 ¦ì¤¸²Õ¡C
³Ì«á¡A¤£½×²¾°Ê¤è¦¡¬°¦ó¡A¶Ç¦^È DX:AX ©Ò¥Nªí¤§Àɮ׫ü¼Ð³£¬O¥ÑÀÉ®×°_©l³Bºâ°_¡C
¦¹¥~³oÓªA°Èµ{¦¡¤]¥i¥H¥Î¨Ó¨ú±oÀɮתø«×¡A¤èªk´N¬O·íÀɮ׫ü¼Ð¦b°_©l³B®É¡A¿é¤J AL=0¡BCX:DX=0¡A¦A©I¥s¦¹ªA°Èµ{¦¡¡A¦p¦¹¶Ç¦^ªº DX:AX ´N¬OÀɮתø«×¡C
¦b Win 9X/Me ùتº DOS ¼Ò¦¡¤¤¡A¥i¥H¥ÎªøÀɦW¶}±ÒÀɮסAº¥ý¤p¤ì°¸Â²³æ¤¶²ÐÀɦW¡C¦b Win 9X/Me §@·~¨t²Î¤U¡A°²¦pÀɦW²Å¦X DOS ¨t²Î¤¤ªº³W©w¡A¤]´N¬O¥DÀɦW 8 Ó^¤å¦r¡A°ÆÀɦW 3 Ó^¤å¦r³oºØ³W«hªºÀɦW¡AWin 9X/Me ¶È¥Î¤@Ó FDB ( ½Ð°Ñ¦Ò²Ä 18 ³¹ ) °O¿ý¡C°²¦pÀɦW¶W¹L¤Wz³W«h¡AWin 9X/Me ¥Î¨âөΨâÓ¥H¤Wªº FDB °O¿ýÀɦW¡A¨ä¤¤¤@Ó¬O Win 9X/Me §âì¨Ó¸ûªøªºÀɦW¿@ÁY«áªºµ²ªG¡Aºò±µµÛªº¼ÆÓ FDB ¥Î¨Ó¦s©ñ¯u¥¿ªºªøÀɦW¡C©Ò¥H±z¦b Win 9X/Me ªº DOS ¼Ò¦¡¤U¬Ý¨£ªºÀɦW¹³¤U¹Ï¡G
¥H¶}±ÒÀɮ׬°¨Ò¡A¦b Win 9X/Me ùإΠAX=716CH/INT 21H ªA°È±`¦¡´£¨Ñµ{¦¡³]p®v¨Ï¥Î¡Cn¶}±ÒªºÀɮצWºÙ¥Ñ DS:SI ©Ò«ü¦ì§}ªº ASCIIZ ¦r¦êªí¥Ü¡A§Y¦¹¦r¦ê¥²¶·¬OÀɦW«á¦A¥[¤W¤@Ó 0¡CBX ¨M©w¶}±Ò«áªº¦s¨ú¼Ò¦¡¡B¦@¨É¼Ò¦¡¡BÄ~©Ó¼Ò¦¡µ¥¡C©³¤U»¡©ú BX ¦U¦ì¤¸ªº·N¸q¡G
¦ì¤¸ | ·N¡@¡@¸q |
0¡ã3 | ªí¥Ü¦s¨ú¼Ò¦¡¡G ¡@¡@¡@0000¡G°ßŪ¡A¥u¯àŪ¨ú¤£¥i¼g¤J ¡@¡@¡@0001¡G°ß¼g¡A¥u¥i¼g¤J¤£¥iŪ¨ú ¡@¡@¡@0010¡G¥iŪ¥i¼g ¡@¡@¡@0100¡G°ßŪ¡A¥B¤£§ïÅÜÀɮ׳̫á¦s¨ú®É¶¡ |
4¡ã6 | ªí¥Ü¦@¨É¼Ò¦¡¡A¥u¦³¦b SHARE.EXE ±`¾n®É¤~»Ýn¥Î¨ì³o¤TӦ줸¡A©³¤U¬O¥¦Ìªº»¡©ú¡G ¡@¡@¡@000¡G¥i³Q¨ä¥Lµ{¦¡¦A¶}±Ò ¡@¡@¡@001¡G¸T¤î³Q¨ä¥Lµ{¦¡¦A¶}±Ò ¡@¡@¡@010¡G¥i³Q¨ä¥Lµ{¦¡¶}±Ò¡A¦ý¶È¥iŪ¨ú¡A¸T¤î¼g¤J ¡@¡@¡@011¡G¥i³Q¨ä¥Lµ{¦¡¶}±Ò¡A¦ý¶È¥i¼g¤J¡A¤£¥iŪ¨ú ¡@¡@¡@100¡G¥i³Q¨ä¥Lµ{¦¡¶}±Ò¡A¥iŪ¥i¼g ¡@¡@¡@111¡G¥i¦bºô¸ô¤¤³Q¨ä¥L¾÷¾¹¨Ï¥Î¡C |
7 | ªí¥ÜÄ~©Ó¼Ò¦¡¡A¦¹¦ì¤¸³]¬° 1¡Aªí¥Ü¤l¦æµ{¤£¯àÄ~©Ó¦¹ÀɮסA¦¹¦ì¤¸¬° 0 ªí¥Ü¤l¦æµ{¥iÄ~©Ó¦¹ÀɮסC |
8 | ¦¹¦ì¤¸³]¬°¤@®É¡A¤£¨Ï¥Î½w½Ä°Ï¸ê®Æª½±µ¨ìºÏºÐ¤W¦s¨ú¡F³]¬°¹s®É«h¨Ï¥Î½w½Ä°Ïªº¸ê®Æ¡AY½w½Ä°Ï¨S¦³¤~¨ìºÏºÐ¤W¦s¨ú¡C |
9 | ¦¹¦ì¤¸³]¬°¤@®Éªí¥Ü¦¹Àɮפ£¥ÎÀ£ÁY®æ¦¡¡A§Y¨Ï¸ÓÀɮשҦbºÏºÐ¾÷¬°À£ÁYµwºÐ¡F³]¬°¹s®É«h¨Ï¥ÎÀ£ÁY®æ¦¡¡A¦ý¬O¥u¦³¦b¸ÓÀɮשҦbµwºÐ¬°À£ÁYµwºÐ¤~¦³®Ä¡C |
A | ¡@ |
B¡ãC | ¨S¦³¨Ï¥Î¡C |
D | ¦¹¦ì¤¸³]¬°¤@®É¡Aµo¥ÍÄY«¿ù»~ ( ¨Ò¦p¶}±Ò³nºÐ¤ù¤WªºÀɮסA¦ý³nºÐ¤ù¨S©ñ¤JºÏºÐ¾÷¤¤ ) ®É¡A¤£°õ¦æ INT 24H¡F¤Ï¤§³]¬°¹s®É¡Aµo¥ÍÄY«¿ù»~«h°õ¦æ INT 24H¡C |
E | ¦¹¦ì¤¸³]¬°¤@®É¡A¸ê®Æª½±µ¼g¤JÀɮסF³]¬°¹s®Éµ¥½w½Ä°Ïº¡¤F¦A¼g¤JÀɮסC |
F | ¨S¦³¨Ï¥Î¡C |
CX ªí¥ÜÄÝ©Ê¡A¦U¦ì¤¸©Ò¥Nªíªº·N¸q¦p¤Uªí¡G
¦ì¤¸ | ·N¡@¡@¸q | ¦ì¤¸ | ·N¡@¡@¸q |
0 | ¦¹¦ì¤¸¬°¤@®É¡A¬°°ßŪÀÉ | 4 | «O¯dµL¥Î¡A¥²¶·¬°¹s |
1 | ¦¹¦ì¤¸¬°¤@®É¡A¬°ÁôÂÃÀÉ | 5 | ¦¹¦ì¤¸¬°¤@®É¡A¬°´¶³qÀÉ®× |
2 | ¦¹¦ì¤¸¬°¤@®É¡A¬°¨t²ÎÀÉ | 6 | «O¯dµL¥Î¡A¥²¶·¬°¹s |
3 | ¦¹¦ì¤¸¬°¤@®É¡A¬°ºÏºÐ¾÷¨÷¦W | 7 | ¦¹¦ì¤¸¬°¤@®É¡A¬° Novell NetWare ¦@¨É |
DX ¬O¨Ì¾ÚÀɮ׬O§_¦s¦b¨Ó¨M©w©Ò±Ä¨úªº°Ê§@¡A³o¨Ç°Ê§@¥]§t¶}±Ò¡B«·s²£¥Í©Î¥X¿ù¡A¨ä·N¸q¦p¤Uªí¡G
¼ÆÈ | °Ê§@¦WºÙ | ¦pªGÀɮפw¦s¦b | ¦pªGÀɮפ£¦s¦b |
0001H | OPEN | ¶}±Ò | ¥X¿ù |
0002H | TRUNC | «·s²£¥Í | ¥X¿ù |
0010H | CREATE | ¥X¿ù | «·s²£¥Í |
0011H | OPEN¡ÏCREATE | ¶}±Ò | «·s²£¥Í |
0012H | TRUNC¡ÏCREATE | «·s²£¥Í | «·s²£¥Í |