;********************************************
;ÎļþÃû£ºARSE.ASM
;¹¦ÄÜ£º¶ÁÓ²ÅÌ£°Ã棰ͷ£±ÉÈÇøÊý¾Ý²¢½¨Á¢´æ´¢Îļþ
;********************************************
data segment ;1.¶¨ÒåÊý¾Ý¶Î
ostr db 'Enter file name:','$' ;2.ÆÁÄ»Ìáʾ
filename db 15 ;3.ÊäÈëµÄÎļþÃû
db ? ;4.
db 15 dup(0) ;5.
buffer db 512 dup(0) ;6.ÉÈÇøÊý¾Ý
tmp db 15 dup(0) ;7.ת´æµÄÎļþÃû
data ends ;8.
code segment ;9.¶¨Òå´úÂë¶Î
assume cs:code,ds:data ;10.
start: ;11.³ÌÐò¿ªÊ¼
mov ax,data ;12.³õʼ»¯Êý¾Ý¶Î
mov ds,ax ;13.
;14.
mov ax,seg buffer ;15.ÓÃbuffer³õʼ»¯¸½¼Ó¶Îes
mov es,ax ;16.
mov bx,offset buffer ;17.È¡Ö·
mov ax,0201h ;18.³ÌÐòÈë¿Ú²ÎÊý
mov cx,0001h ;19.
mov dx,0080h ;20.
int 13h ;21.µ÷ÓÃÖжÏ
mov dx,offset ostr ;22.
mov ah,09h ;23.Êä³ö×Ö·û´®
int 21h ;24.
;25.
mov dx,offset filename ;26.
mov ah,0ah ;27.½ÓÊÕ×Ö·û´®
int 21h ;28.
mov si,offset filename ;29.
mov di,offset tmp ;30.
lstr: mov dl,[si+2] ;31.È¡×Ö·û
mov [di],dl ;32.´æ×Ö·û
inc si ;33.µØÖ·µÝÔö
inc di ;34.
cmp dl,0dh ;35.ÅжÏÊÇ·ñΪ»Ø³µ·û
jne lstr ;36.²»µÈת
;37.
mov bl,0 ;38.²¹0
mov [di-1],bl ;39.
mov dx,offset tmp ;40.È¡ÎļþÃû
mov cx,0 ;41.
mov ah,3ch ;42.½¨Á¢Îļþ
int 21h ;43.
mov dx,offset buffer ;44.È¡»º³åÇøÊý¾ÝµØÖ·
mov cx,512 ;45.
mov bx,ax ;46.
mov ah,40h ;47.дÎļþ
int 21h ;48.
mov ah,3eh ;49.¹Ø±ÕÎļþ
int 21h ;50.
mov ah,4ch ;51.·µ»Øϵͳ
int 21h ;52.
code ends ;53.
end start ;54.³ÌÐò½áÊø
Ô´³ÌÐò½âÊÍ
ÔÚ¶Ô»ã±àÔ´³ÌÐò½øÐнâÊ͵Äʱºò£¬ÓÐЩÊôÓÚ»ã±à³ÌÐòµÄ»ù±¾¸ñʽºÍ»ù±¾Óï·¨£¬¾Í²»ÔÙ½éÉÜÁË¡£´ó¼Ò¿ÉÒÔ¿´¿´»ã±àÓïÑԵĻù´¡½Ì³Ì£¬ÕâÒ»ÀàµÄÊéÊǺܶàµÄ¡£
µÚ2Ðж¨ÒåÁË»º³åÇøÄÚµÄÒ»¸ö×Ö·û´®£¬¸Ã×Ö·û´®ÊÇ×÷ΪÌáʾÐÐÊä³öµ½ÆÁÄ»µÄ¡£ÒòΪÊä³ö×Ö·û´®ÊÇÓÉINT21HÖжÏÀïµÄ09HºÅDOS¹¦Äܵ÷ÓÃÍê³ÉµÄ£¬ËùÒÔ×Ö·û´®±ØÐëÒÔ¡°$¡±×÷Ϊ½áÊø·û¡£
µÚ3-5ÐÐÔÚÄÚ´æÖпª±ÙÒ»¿é»º³åÇø£¬ÓÃÀ´´æ´¢ÓɼüÅÌÊäÈëµÄÎļþÃû¡£
µÚ6ÐÐÔÚÄÚ´æÖпª±ÙÒ»¿é»º³åÇø£¬ÓÃÀ´´æ´¢512×Ö½ÚÉÈÇøÊý¾Ý¡£
µÚ7ÐÐÔÚÄÚ´æÖпª±ÙÒ»¿é»º³åÇø£¬×¼±¸×ª´æ¼üÅÌÊäÈëµÄÎļþÃû¡£Ç°ÃæÒѾ½«ÎļþÃû´æÈ뻺³åÇøÀïÁË£¬ÎªÊ²Ã´»¹Òª×ª´æÄØ£¿
ÒòΪÓɼüÅÌÊäÈëµÄ±íʾÎļþÃûµÄ×Ö·û´®£¬ÊÇÓÉ0aHºÅDOS¹¦Äܵ÷ÓýÓÊÕÍê³ÉµÄ¡£¸Ã¹¦Äܵ÷ÓÃÏò»º³åÇø´æÈë×Ö·û´®Ê±£¬´ÓµÚÈý¸ö×Ö½Ú¿ªÊ¼´æ·Å×Ö·û´®µÄÊ××Ö½Ú¡£»º³åÇøµÄµÚÒ»¸ö×Ö½ÚÉèÖÃΪ»º³åÇøµÄ×î´óÈÝÁ¿£¬ÊôÓÚ¹¦Äܵ÷ÓõÄÈë¿Ú²ÎÊý¡£»º³åÇøµÄµÚ¶þ¸ö×Ö½Ú´æ·Åʵ¼Ê¶ÁÈëµÄ×Ö·ûÊý£¨»Ø³µ·û³ýÍ⣩£¬ÊôÓÚ¹¦Äܵ÷Óõijö¿Ú²ÎÊý£¬ÊÇÔÚ¼üÅÌÊäÈë½áÊøºó£¬ÓÉϵͳдÈëµÄ¡£
¼üÅÌÊäÈëµÄ×Ö·û´®¾ÍÊÇÏÂÒ»²½Òª½¨Á¢µÄ´æ´¢ÉÈÇøÊý¾ÝµÄÎļþÃû¡£½¨Á¢ÎļþÊÇÓÉ3cHºÅDOS¹¦Äܵ÷ÓÃÍê³ÉµÄ£¬¸Ã¹¦Äܵ÷ÓöԻº³åÇøµÄ´æ´¢ÒªÇóÓë0aHºÅDOS¹¦Äܵ÷Óò»Ò»Ñù£¬Òò´Ë±ØÐë½øÐÐÉÏÊöת´æ¹¤×÷¡£
µÚ15-16ÐÐÈ¡±äÁ¿bufferµÄ¶ÎÖ·£¬ÓøöÎÖ·³õʼ»¯¸½¼Ó¶ÎES¡£ÕâÊÇÓÉ»ù±¾INT13HÖжϵÄÈë¿Ú²ÎÊýËùÒªÇóµÄ£¬ÆäÊý¾Ý»º³åÇøµØÖ·£½ES:BX¡£
µÚ17-21ÐÐÉèÖø÷ÏîÈë¿Ú²ÎÊý£¬È»ºóÖ´ÐÐ13HÖжϡ£ÏÂÃæ˳Ðò½éÉܸ÷ÏÄÜ£º½«±äÁ¿bufferµÄµØÖ·È¡µ½BX¼Ä´æÆ÷ÖУ»AH£½02H£¬Ö´ÐжÁ¹¦ÄÜ£»AL£½01H£¬¶ÁÒ»¸öÉÈÇø£»CH£½00H£¬´ÅµÀºÅ£¨Ò²¾ÍÊÇÖùÃæºÅ£©Îª£°£»CL£½01H£¬ÉÈÇøºÅΪ£±£»DH£½00H£¬´ÅÍ·ºÅΪ£°£»DL£½80H£¬Çý¶¯Æ÷ºÅΪµÚÒ»Ó²ÅÌ£¨Èç¹û¶ÁÈ¡µÚ¶þÓ²Å̵ÄÉÈÇø£¬ÉèÖÃDL£½81H£©¡£
µÚ22-24ÐÐÔÚÆÁÄ»ÉÏÊä³öÌáʾ×Ö·û´®¡£
µÚ26-28ÐнÓÊÕ¼üÅÌÊäÈëµÄ×Ö·û´®¡£
µÚ29-36ÐÐÊÇ×Ö·û´®×ª´æ£¬Ã¿´Îת´æÒ»¸ö×Ö·û¡£ÒòΪ¼üÅÌÊäÈëµÄ×Ö·û´®ÒԻسµ×÷Ϊ½áÊø·û£¬»Ø³µµÄASCIIÂëÖµÊÇ0dH£¬ËùÒÔµÚ35ÐÐÉèÖÃÒ»ÅжÏÓï¾ä£¬ÈôÈ¡µÄ×Ö·ûÓë»Ø³µÏàµÈ£¬Ôò½áÊøÑ»·¡£µÚ31Ðн«µØÖ·Ìø¹ý2¸ö×Ö½Ú£¬´ÓµÚ3¸ö×Ö½Ú¿ªÊ¼È¡×Ö·û¡£
µÚ38-39ÐÐÔÚת´æ×Ö·û´®ºóÃæ²¹0£¬×÷Ϊ×Ö·û´®µÄ½áÊø·û¡£
µÚ40-50Ðн¨Á¢Îļþ¡¢Ïò½¨Á¢µÄÎļþÖÐдÈëÉÈÇøÊý¾Ý¡¢×îºó¹Ø±ÕÎļþ¡£Õ⼸²½¶¼Êdz£¹æµÄ¼òµ¥²Ù×÷£¬¾Í²»ÓÃÏêϸ½âÊÍÁË¡£
µÚ51-54Ðзµ»ØDOSϵͳ¡¢½áÊø³ÌÐò¡£
³ÌÐò±àÒëºÍÔËÐÐ
»ã±àÔ´³ÌÐòµÄ±àÒëºÍÁ¬½Ó£¬ÊÇÓÃÃüÁîÐз½Ê½£¬Ê¹ÓÃBorland C++ 3.1×Ô´øµÄÁ½¸ö³ÌÐòÍê³ÉµÄ¡£TASM.EXE¿É½«Ô´³ÌÐò±àÒë³ÉOBJ¶þ½øÖÆÎļþ£¬TLINK.EXE¿É½«¶þ½øÖÆÎļþÁ¬½Ó³ÉEXE¿ÉÖ´ÐÐÎļþ¡£
Èç¹ûÔÚ°²×°Borland C++ 3.1±àÒëÈí¼þÒÔºó£¬Ã»ÓÐÔÚ×Ô¶¯Åú´¦ÀíÎļþAUTOEXEC.BATÀïÃæÉèÖÃÏà¹Ø·¾¶£¬¾ÍÐèÒªÏȽøÈëBorland C++ 3.1µÄ°²×°Ä¿Â¼£¬È»ºó²ÅÄÜÔËÐÐÓйسÌÐò¡£
×îºÃµÄ·½·¨ÊÇÐÞ¸ÄAUTOEXEC.BATÎļþ£¬ÔÚÀïÃæÉèÖú÷¾¶¡£µ±Ó²ÅÌÆô¶¯Ê±¾ÍÄÜ×Ô¶¯¼ÓÔØ£¬²»ÂÛÔÚÄÄÒ»¸öĿ¼Ï£¬¶¼¿ÉÒÔÔËÐгÌÐòÁË¡£
ÒÔÎÒÓõÄÓ²ÅÌΪÀý£¬½«Borland C++ 3.1°²×°ÔÚ£ÅÅ̵ÄBCĿ¼ÖУ¬ÓÃÎı¾±à¼Èí¼þ´ò¿ª£ÃÅ̸ùĿ¼ÏµÄAUTOEXEC.BATÎļþ£¬ÔÚÆäÖмÓÉÏÒ»ÐУº
SET PATH=%PATH%;E:\BC\BIN
±àÒëʱÏÈÖ´ÐÐÃüÁîTASM ARSE£¬Éú³ÉARSE.OBJÎļþ£¬ÔÙÖ´ÐÐÃüÁîTLINK ARSE£¬¿ÉÉú³ÉARSE.EXEÎļþ¡£Èç¹ûÔ´³ÌÐòÓÐÂß¼´íÎó»òÓï·¨´íÎó£¬ÆÁÄ»ÉÏ»áÓгö´íÌáʾ»ò¾¯¸æÌáʾ£¬²¢Ö¸³ö·¢ÉúÔÚÄÄÒ»ÐС£
¿ÉÒÔ½«ÉÏÃæÖ´ÐÐÁ½´ÎµÄÃüÁîºÏ³ÉÒ»²½À´Íê³É£¬·½·¨ÊÇÓÃÎı¾±à¼Èí¼þ½¨Ò»¸öÅú´¦ÀíÎļþ¡£ÎļþÃû¿É¶¨ÎªTASMLINK.BAT£¬ÆäÄÚÈÝÊÇ£º
TASM %1
TLINK %1
½«TASMLINK.BAT·ÅÔÚE:\BC\BINĿ¼ÖУ¬±àÒëʱִÐÐTASMLINK ARSE¡£
ÔËÐгÌÐòʱִÐÐÃüÁîARSE£¬ÆÁÄ»ÉÏÌáʾ¡°Enter file name:¡±£¬ÊäÈëÎļþÃûºó»Ø³µ£¬ÔÚµ±Ç°Ä¿Â¼ÏÂÉú³ÉÒ»¸ö512×Ö½ÚµÄÉÈÇøÊý¾ÝÎļþ¡£
Éú³ÉµÄÉÈÇøÊý¾ÝÎļþ²»ÊÇÎı¾·½Ê½µÄ£¬²»ÄÜÖ±½ÓÓÃÎı¾±à¼Èí¼þ²é¿´¡£
ÿһ¸öÏë´ÓÊÂÊý¾Ý»Ö¸´¹¤×÷µÄÈË£¬¶¼±ØÐëÄÜд×Ô¼ºµÄ¹¤¾ß³ÌÐò£¬²ÅÄÜÔÚÊý¾Ý»Ö¸´ÖеÃÐÄÓ¦ÊÖ¡£ÒòΪÏֳɵÄÓ¦ÓÃÈí¼þ˶¼»áÓã¬ÈκÎÈ˶¼Ã»Óм¼ÊõÉϵÄÓÅÊÆ£¬ÓеÄÖ»ÊÇʱ¼äÉϵÄÓÅÊÆ£¬Ò²¾ÍÊDZȱðÈËÔçÓÃÁ˼¸Ìì¶øÒÑ¡£
Ö»ÓÐÐγÉ×Ô¼ºµÄÓÐÌØÉ«µÄ·ÖÎö·½·¨£¬ÅäºÏ×Ô¼ºµÄ¹¤¾ß³ÌÐò£¬²ÅÄÜÓÐÁìÏÈÓÚ±ðÈ˵ÄÓÅÊÆ¡£Í¬Ê±ÔÚ±àд×Ô¼ºµÄ¹¤¾ß³ÌÐòµÄ¹ý³ÌÖУ¬¶ÔÎļþϵͳµÄ´æ´¢ÔÀí£¬¶Ô´ÅÅÌÉÈÇøµÄ´æ´¢¹æÂÉ£¬¾Í»áÓбȱðÈ˸üÉî¿ÌµÄÈÏʶ¡£
|