第一题:DATA SEGMENTBUF1 DB 20DB ?DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL COUNTCALL REVERTCALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPCOUNT PROCMOV CX,0FFFFHLEA SI,BUF1+2AGAIN: CMP BYTE PTR [SI],0DHJZ TOINC SILOOP AGAINTO: NOT CXRETCOUNT ENDP REVERT PROCDEC CXLEA SI,BUF1+2ADD SI,CXLEA DI,BUF2INC CXAGAIN1:STDLODSBCLDSTOSBLOOP AGAIN1MOV BYTE PTR [DI],'$'RETREVERT ENDPOUTPUT PROCLEA DX,BUF3MOV AH,9INT 21HRETOUTPUT ENDPCODE ENDSEND MAIN第二题:DATA SEGMENTBUF1 DB 20DB ?DB 20 DUP(?)NUM1 DB ?NUM2 DB ?BUF3 DB 13,10BUF2 DB 'NUM1=',0,0,13,10,'NUM2=',0,0,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL COUNTCALL FINDCALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,BUF3MOV AH,9INT 21HRETOUTPUT ENDPCOUNT PROCMOV CX,0FFFFHLEA SI,BUF1+2 AGAIN2: CMP BYTE PTR [SI],0DHJZ TOINC SILOOP AGAIN2TO: NOT CXRETCOUNT ENDPFIND PROCPUSH CXLEA SI,BUF1+2AGAIN: CMP BYTE PTR [SI],' ' JNZ T1INC NUM1T1: INC SILOOP AGAINPOP CXLEA SI,BUF1+2AGAIN1: CMP BYTE PTR [SI],'A' JNZ TINC NUM2T: INC SILOOP AGAIN1MOV DL,10MOV AL,NUM1MOV AH,0DIV DLOR AX,3030HMOV WORD PTR BUF3+7,AXMOV AL,NUM2MOV AH,0DIV DLOR AX,3030HMOV WORD PTR BUF3+16,AX RETFIND ENDPCODE ENDSEND MAIN第三题:DATA SEGMENTBUF1 DB 20DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL LOCATECALL PREPARECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPLOCATE PROCLEA BX,BUF1+2DEC BXAGAIN2:INC BXCMP BYTE PTR [BX],' 'JNZ TO5CALL DELETETO5: CMP BYTE PTR [BX],0DHJNZ AGAIN2RETLOCATE ENDPOUTPUT PROCLEA DX,BUF1MOV AH,9INT 21HRETOUTPUT ENDPDELETE PROCPUSH BXAGAIN3:CMP BYTE PTR [BX],0DHJZ TO2MOV AL, BYTE PTR [BX+1]MOV BYTE PTR [BX],ALINC BXJMP AGAIN3TO2: POP BXDEC BXRET PREPARE PROCCALL COUNTLENLEA SI,BUF4ADD SI,CXMOV BYTE PTR [SI],'$'LEA SI,BUF1MOV [SI],0D0AHRETPREPARE ENDPCOUNTLEN PROCMOV CX,0FFFFHLEA SI,BUF1+2AGAIN5: CMP BYTE PTR [SI],0DHJZ TO3INC SILOOP AGAIN5TO3: NOT CXRETCOUNTLEN ENDPCODE ENDSEND MAIN第四题:DATA SEGMENTBUF1 DB 20DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL LOCATECALL PREPARECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPLOCATE PROCLEA BX,BUF1+2DEC BXAGAIN2:INC BXCMP BYTE PTR [BX],'A'JNZ TO5CALL ADDTIONTO5: CMP BYTE PTR [BX],0DHJNZ AGAIN2RETLOCATE ENDPOUTPUT PROCLEA DX,BUF1MOV AH,9INT 21HRETOUTPUT ENDPADDTION PROCPUSH BXAGAIN3:INC BXINC COUNCMP BYTE PTR [BX],0DHJNZ AGAIN3AGAIN4:MOV AL, BYTE PTR [BX]MOV BYTE PTR [BX+1],ALDEC BXDEC COUNJNZ AGAIN4POP BXMOV [BX],'CC'RETADDTION ENDPPREPARE PROCCALL COUNTLENLEA SI,BUF4ADD SI,CXMOV BYTE PTR [SI],'$'LEA SI,BUF1MOV [SI],0D0AHRETPREPARE ENDPCOUNTLEN PROCMOV CX,0FFFFHLEA SI,BUF1+2AGAIN5: CMP BYTE PTR [SI],0DHJZ TO3INC SILOOP AGAIN5TO3: NOT CXRETCOUNTLEN ENDPCODE ENDSEND MAIN第五题:DATA SEGMENTBUF1 DB 20DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL LOCATECALL PREPARECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPLOCATE PROCLEA BX,BUF1+2DEC BXAGAIN2:INC BXCMP BYTE PTR [BX],'A'JB TO5CMP BYTE PTR [BX],'Z'JAE TO5CALL CHANGETO5: CMP BYTE PTR [BX],0DHJNZ AGAIN2RETLOCATE ENDPOUTPUT PROCLEA DX,BUF1MOV AH,9INT 21HRETOUTPUT ENDPCHANGE PROCADD BYTE PTR [BX],20HRETCHANGE ENDP PREPARE PROCCALL COUNTLENLEA SI,BUF4ADD SI,CXMOV BYTE PTR [SI],'$'LEA SI,BUF1MOV [SI],0D0AHRETPREPARE ENDPCOUNTLEN PROCMOV CX,0FFFFHLEA SI,BUF1+2AGAIN5: CMP BYTE PTR [SI],0DHJZ TO3INC SILOOP AGAIN5TO3: NOT CXRETCOUNTLEN ENDPCODE ENDSEND MAIN第六题:DATA SEGMENTBUF1 DB 20DB ?BUF4 DB 20 DUP(?)BUF3 DB 13,10BUF2 DB 20 DUP(?)COUN DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE ,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL LOCATECALL PREPARECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF1MOV AH,0AHINT 21HRETINPUT ENDPLOCATE PROCLEA BX,BUF1+2DEC BXAGAIN2:INC BXCMP BYTE PTR [BX],'A'JB TO5CMP BYTE PTR [BX],'z'JA TO5CMP BYTE PTR [BX],'a'JAE TO6CMP BYTE PTR [BX],'Z'JBE TO6JMP TO5TO6: CALL DELETETO5: CMP BYTE PTR [BX],0DHJNZ AGAIN2RETLOCATE ENDPOUTPUT PROCLEA DX,BUF1MOV AH,9INT 21HRETOUTPUT ENDPDELETE PROCPUSH BX AGAIN3:CMP BYTE PTR [BX],0DHJZ TO2MOV AL, BYTE PTR [BX+1]MOV BYTE PTR [BX],ALINC BXJMP AGAIN3TO2: POP BXDEC BXRETPREPARE PROCCALL COUNTLENLEA SI,BUF4ADD SI,CXMOV BYTE PTR [SI],'$'LEA SI,BUF1MOV [SI],0D0AHRETPREPARE ENDPCOUNTLEN PROCMOV CX,0FFFFHLEA SI,BUF1+2AGAIN5: CMP BYTE PTR [SI],0DHJZ TO3INC SILOOP AGAIN5TO3: NOT CXRETCOUNTLEN ENDPCODE ENDSEND MAIN第七题:DATA SEGMENTOUT1 DB 13,10BUF1 DB 'data name time file code path user exit quit text$'BUF2 DB 5DB ?BUF DB 5 DUP(?)BUF0 DB 'disk'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL FINDCALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV DX,OFFSET BUF2MOV AH,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,OUT1MOV AH,9INT 21HRETOUTPUT ENDPFIND PROCLEA BX,BUF1MOV CX,10 AGAIN: MOV SI,BXLEA DI,BUFPUSH CXMOV CX,4REPZ CMPSBJZ TOJMP TP2TO: CALL CHANGETP2 : POP CXADD BX,5LOOP AGAINRETFIND ENDPCHANGE PROCMOV AX,WORD PTR buf0MOV WORD PTR [BX],AXMOV AX,WORD PTR buf0+2MOV WORD PTR [BX+2],AXRETCHANGE ENDPCODE ENDSEND MAIN第八题:DATA SEGMENTBUF1 DB 'ram yes red the get for and key not may $'MIN DB 4DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL INORDERCALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPOUTPUT PROCLEA DX,BUF1MOV AH,09HINT 21HRETOUTPUT ENDPINORDER PROCMOV SI,0MOV CX,10AGAIN: MOV BX,SIMOV DI,SIADD DI,4PUSH CXMOV CX,10MOV AX,DIDIV MINSUB CX,AXAGAIN2: MOV AL,BUF1[BX]SUB AL,BUF1[DI]JB TOJE TO3JMP TO2TO3 : MOV AL,BUF1[BX+1]SUB AL,BUF1[DI+1]JB TOJMP TO2TO: MOV BX,DITO2: ADD DI,4LOOP AGAIN2PUSH WORD PTR BUF1[BX]PUSH WORD PTR BUF1[BX+2]PUSH WORD PTR BUF1[SI]PUSH WORD PTR BUF1[SI+2]POP WORD PTR BUF1[BX+2]POP WORD PTR BUF1[BX]POP WORD PTR BUF1[SI+2] POP WORD PTR BUF1[SI]POP CXADD SI,4dec cxCMP CX ,1JNZ AGAINRETINORDER ENDPCODE ENDSEND MAIN第九题:DATA SEGMENTBUF4 DB 10,13BUF1 DB 'data name time file code path user exit quit text $$'BUF2 DB 5DB ?DB 5 DUP(0)BUF3 DB 13,10,'NO FOUND$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXCALL INPUTCALL FINDMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCLEA DX,BUF2MOV AH,0AHINT 21HRETINPUT ENDPOUTPUT1 PROCLEA DX,BUF3MOV AH,09HINT 21HMOV AX,4C00HINT 21HOUTPUT1 ENDPOUTPUT2 PROCLEA DX,BUF4MOV AH,09HINT 21HRETOUTPUT2 ENDPFIND PROCLEA BX,BUF1MOV CX,10 AGAIN: PUSH CXMOV SI,BXLEA DI,BUF2+2MOV CX,4REPZ CMPSBJZ TOJMP TO2TO: CALL DELETEJMP TO3TO2: POP CXADD BX,5LOOP AGAINCALL OUTPUT1TO3: pop cxRETFIND ENDPDELETE PROCCLDMOV SI ,BXADD SI,5MOV DI, BXAGAIN1: MOVSBCMP BYTE PTR [BX],'$'JZ TO1INC BXJMP AGAIN1TO1: call output2RETDELETE ENDPCODE ENDSEND MAIN 第十题:DATA SEGMENTBUF1 DB 'data name time file code path user exit quit text $'MIN DB 5BUF2 DB 5DB ?DB 5 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL INPUTCALL INORDERCALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCLEA DX, BUF2MOV AH,0AHINT 21HMOV CX ,4LEA SI ,BUF2+2LEA DI,BUF1+50REP MOVSBRETINPUT ENDPOUTPUT PROCLEA DX,BUF1MOV AH,09HINT 21HRETOUTPUT ENDPINORDER PROCMOV SI,0MOV CX,11AGAIN: MOV BX,SIMOV DI,SIADD DI,5PUSH CXMOV CX,11MOV AX,DIDIV MINSUB CX,AXAGAIN2: MOV AL,BUF1[BX]SUB AL,BUF1[DI]Ja TOJE TO3JMP TO2TO3 : MOV AL,BUF1[BX+1]SUB AL,BUF1[DI+1]Ja TOJMP TO2TO: MOV BX,DITO2: ADD DI,5LOOP AGAIN2PUSH WORD PTR BUF1[BX]PUSH WORD PTR BUF1[BX+2]PUSH WORD PTR BUF1[SI]PUSH WORD PTR BUF1[SI+2]POP WORD PTR BUF1[BX+2]POP WORD PTR BUF1[BX]POP WORD PTR BUF1[SI+2] POP WORD PTR BUF1[SI]POP CXADD SI,5dec cxCMP CX ,1JNZ AGAINRETINORDER ENDPCODE ENDSEND MAIN 第十一题:DATA SEGMENTBUF DB 6DB ?DB 6 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 0,0,0,0,10,13,'$'EROR DB 13,10,'INPUT ERROR!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCMOV CL ,BUF+1LEA BX,BUF +2LEA SI,STOREAGAIN: MOV AL ,[BX]AND AL,0FHMOV [SI],ALINC BXINC SIDEC CLJNZ AGAINLEA SI,STOREMOV CL ,BUF+1DEC CLMOV DL,[SI]MOV DH,0PUSH DXINC SIAGAIN2: POP AXMUL MINUSMOV BL,[SI]MOV BH,0ADD BX,AXPUSH BXINC SIDEC CLJNZ AGAIN2POP AXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HCALL CHECKRETINPUT ENDPOUTPUT PROCMOV DX,AXMOV AL,AHAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOONADD AH,7GOON: CMP AL ,39HJBE GOON1ADD AL,7GOON1: XCHG AL,AHMOV WORD PTR STORE2,AX MOV AX,DXMOV AH,ALAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOON2ADD AH,7GOON2: CMP AL ,39HJBE GOON3ADD AL,7GOON3: XCHG AL,AHMOV WORD PTR STORE2+2,AXLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],30HJB TOCMP BYTE PTR [BX],39HJA TOINC BXDEC CLJNZ AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十二题:DATA SEGMENTBUF DB 6DB ?DB 6 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 16 DUP(0),10,13,'$'MINUS2 DW 2EROR DB 13,10,'INPUT ERROR!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCMOV CL ,BUF+1LEA BX,BUF +2LEA SI,STOREAGAIN: MOV AL ,[BX]AND AL,0FHMOV [SI],ALINC BXINC SIDEC CLJNZ AGAINLEA SI,STOREMOV CL ,BUF+1DEC CLMOV DL,[SI]MOV DH,0PUSH DXINC SIAGAIN2: POP AXMUL MINUSMOV BL,[SI]MOV BH,0ADD BX,AXPUSH BXINC SIDEC CLJNZ AGAIN2POP AXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HCALL CHECKRETINPUT ENDPOUTPUT PROCMOV CX,16LEA BX,STORE2+15 AGAIN4: DIV MINUS2MOV [BX],DLOR BYTE PTR [BX],30HDEC BXLOOP AGAIN4LEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],30HJB TOCMP BYTE PTR [BX],39HJA TOINC BXDEC CLJNZ AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十三题:DATA SEGMENTBUF DB 17DB ?DB 17 DUP(?)MINUS DW 2STORE DB 6 DUP(0)PRINT DB 10,13 STORE2 DB 0,0,0,0,10,13,'$'EROR DB 13,10,'INPUT ERROR!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCLEA SI,BUF +2MOV CX,15AND BYTE PTR [SI],0FHMOV BL,[SI]MOV BH,0INC SIPUSH BXAGAIN2: POP AXMUL MINUSAND BYTE PTR [SI],0FHMOV BL,[SI]MOV BH,0ADD BX,AXPUSH BXINC SILOOP AGAIN2POP AXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HCALL CHECKRETINPUT ENDPOUTPUT PROCMOV DX,AXMOV AL,AHAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOONADD AH,7GOON: CMP AL ,39HJBE GOON1ADD AL,7GOON1: XCHG AL,AHMOV WORD PTR STORE2,AX MOV AX,DXMOV AH,ALAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOON2ADD AH,7GOON2: CMP AL ,39HJBE GOON3ADD AL,7GOON3: XCHG AL,AHMOV WORD PTR STORE2+2,AXLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDP ERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CX,16LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],30HJB TOCMP BYTE PTR [BX],31HJA TOINC BXLOOP AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十四题:DATA SEGMENTBUF DB 17DB ?DB 17 DUP(?)MINUS DW 2STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 5 DUP(0),10,13,'$' MINUS2 DW 10EROR DB 13,10,'INPUT ERROR!$' DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCLEA SI,BUF +2MOV CX,15AND BYTE PTR [SI],0FHMOV BL,[SI]MOV BH,0INC SIPUSH BXAGAIN2: POP AXMUL MINUSAND BYTE PTR [SI],0FHMOV BL,[SI]MOV BH,0ADD BX,AXPUSH BXINC SILOOP AGAIN2POP AXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HCALL CHECKRETINPUT ENDP OUTPUT PROCMOV CX,5LEA BX,STORE2+4 AGAIN4: MOV DX,0DIV MINUS2MOV [BX],DLOR BYTE PTR [BX],30HDEC BXLOOP AGAIN4LEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],30HJB TOCMP BYTE PTR [BX],39HJA TOINC BXDEC CLJNZ AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十五题:DATA SEGMENTBUF DB 5DB ?DB 5 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 5 DUP(0),10,13,'$'MINUS2 DW 2EROR DB 13,10,'INPUT ERROR!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCMOV AX,WORD PTR BUF+2XCHG AL,AHCMP AH,39HJBE TO5SUB AH,37HJMP TPTO5: SUB AH,30HTP: CMP AL,39HJBE TO1SUB AL,37HJMP TP1TO1: SUB AL,30HTP1: MOV CL,4SHL AH,CLOR AH,ALMOV AL,0PUSH AXMOV AX,WORD PTR BUF+4XCHG AL,AHCMP AH,39HJBE TO3SUB AH,37HJMP TP3TO3 : SUB AH,30HTP3: CMP AL,39HJBE TO4SUB AL,37HJMP TP4TO4: SUB AL,30HTP4: MOV CL,4SHL AH,CLOR AL,AHMOV AH,0POP DXOR AX,DXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21H;CALL CHECKRETINPUT ENDPOUTPUT PROCMOV CX,5LEA BX,STORE2+4 AGAIN4: MOV DX,0DIV MINUSMOV [BX],DLOR BYTE PTR [BX],30HDEC BXLOOP AGAIN4LEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],41HJB TOCMP BYTE PTR [BX],46HJA TOINC BXDEC CLJNZ AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十六题:DATA SEGMENTBUF DB 5DB ?DB 5 DUP(?)MINUS DW 10STORE DB 6 DUP(0)PRINT DB 10,13STORE2 DB 16 DUP(0),10,13,'$'MINUS2 DW 2EROR DB 13,10,'INPUT ERROR!$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXR: CALL INPUTCALL CHANGECALL OUTPUTJMP RMOV AX,4C00HINT 21HMAIN ENDPCHANGE PROCMOV AX,WORD PTR BUF+2XCHG AL,AHCMP AH,39HJBE TO5SUB AH,37HJMP TPTO5: SUB AH,30HTP: CMP AL,39HJBE TO1SUB AL,37HJMP TP1TO1: SUB AL,30HTP1: MOV CL,4SHL AH,CLOR AH,ALMOV AL,0PUSH AXMOV AX,WORD PTR BUF+4XCHG AL,AHCMP AH,39HJBE TO3SUB AH,37HJMP TP3TO3 : SUB AH,30HTP3: CMP AL,39HJBE TO4SUB AL,37HJMP TP4TO4: SUB AL,30HTP4: MOV CL,4SHL AH,CLOR AL,AHMOV AH,0POP DXOR AX,DXRETCHANGE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21H;CALL CHECKRETINPUT ENDPOUTPUT PROCMOV CX,16LEA BX,STORE2+15 AGAIN4:MOV DX,0DIV MINUS2MOV [BX],DLOR BYTE PTR [BX],30HDEC BXLOOP AGAIN4LEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPERROR PROCLEA DX,ERORMOV AH,9INT 21HMOV AX,4C00HINT 21HERROR ENDPCHECK PROCMOV CL ,BUF+1LEA BX,BUF+2AGAIN3: CMP BYTE PTR [BX],41HJB TOCMP BYTE PTR [BX],46HJA TOINC BXDEC CLJNZ AGAIN3JMP TO2TO: CALL ERRORTO2: RETCHECK ENDPCODE ENDSEND MAIN第十七题:DATA SEGMENTBUF DB 38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H, 0F5HCOUNT DB 0SUM DW 0MINUS DB 100,10PRINT DB 'NUM=',0,10,13,'SUM=-',0,0,0,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL OPERATECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPOPERATE PROCMOV CX,10LEA BX,BUFAGAIN: CMP BYTE PTR [BX],0JGE TOINC COUNTNEG BYTE PTR [BX]MOV AL,[BX]CBWADD SUM ,AXTO: INC BXLOOP AGAINRETOPERATE ENDPOUTPUT PROCMOV AH,COUNTOR AH,30HMOV PRINT+4,AHLEA SI,PRINT+12MOV CX,2MOV AX,SUMLEA DI,MINUSAGAIN1: DIV BYTE PTR [DI]OR AL,30HMOV [SI],ALMOV AL,AHMOV AH,0INC SIINC DILOOP AGAIN1OR AL,30HMOV [SI],ALLEA DX, PRINTMOV AH,9INT 21HRETOUTPUT ENDPCODE ENDSEND MAIN第十八题:DATA SEGMENTBUF DB 61DB ?DB 61 DUP(?)C1 DB 30HC2 DB 30HC3 DB 30HPRINT DB 10,13OUTP DB ' 0- 9:',30H,0,10,13DB '10-99:',30H,0,10,13DB ' >100:',30H,0,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATA,ES:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL INPUTCALL COUNTCALL PREPARECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPCOUNT PROCLEA BX,BUF+2MOV CX,10AGAIN: MOV AX,WORD PTR [BX] XCHG AL,AHCMP AX,3030HJA TO1000MOV AX,WORD PTR [BX+2] XCHG AL,AHCMP AX,3030HJE TO10CMP AX,3130HJAE TO1000INC C2JMP ENDDTO1000: INC C3JMP ENDDTO10: INC C1ENDD: ADD BX,6LOOP AGAINRETCOUNT ENDPPREPARE PROCLEA BX,OUTPCMP C1,3AHJE TO1MOV AL,C1MOV [BX+7],ALJMP CON1TO1: MOV BYTE PTR [BX+6],31HMOV BYTE PTR [BX+7],30HCON1: CMP C2,3AHJE TO2MOV AL,C2MOV BYTE PTR [BX+17],AL JMP CON2TO2: MOV BYTE PTR [BX+16],31H MOV BYTE PTR [BX+17],30HCON2: CMP C3,3AHJE TO3MOV AL,C3MOV [BX+27],ALJMP CON3TO3: MOV BYTE PTR [BX+26],31H MOV BYTE PTR [BX+27],30H CON3: RETPREPARE ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPCODE ENDSEND MAIN第十九题:DATA SEGMENTBUF1 DB 7DB ?DB 7 DUP(?)BUF2 DB 7DB ?DB 7 DUP(?)PRINT DB 10 ,13BUF DB '$',6 DUP(0),'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUF1CALL INPUTCALL OUTPUTLEA DX,BUF2CALL INPUTCALL OPERATECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV AH ,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HOUTPUT ENDPOPERATE PROCLEA SI,BUF1+7LEA DI,BUF2+7LEA BX,BUF+6MOV CX,6CLCAGAIN: MOV AL,[SI]ADC AL,[DI]AAAMOV [BX],ALDEC SIDEC DIDEC BXLOOP AGAINMOV BYTE PTR [BX],0ADC BYTE PTR [BX],0MOV CX,7LEA BX,BUFAGAIN1: OR BYTE PTR [BX],30HADD BX,1LOOP AGAIN1RETOPERATE ENDPCODE ENDSEND MAIN第二十题:DATA SEGMENTBUF1 DB 9DB ?DB 9 DUP(?)BUF2 DB 9DB ?DB 9 DUP(?)PRINT DB 10 ,13BUF DB '$',8 DUP(0),'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATAMAIN PROC FARMOV AX,DATAMOV DS,AXMOV ES,AXLEA DX,BUF1CALL INPUTCALL OUTPUTLEA DX,BUF2CALL INPUTCALL OPERATECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCMOV AH ,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HOUTPUT ENDPOPERATE PROCLEA SI,BUF1+9LEA DI,BUF2+9LEA BX,BUF+8MOV CX,8CLCAGAIN: MOV AL,[SI]ADC AL,[DI]AAAMOV [BX],ALDEC SIDEC DIDEC BXLOOP AGAINMOV BYTE PTR [BX],0ADC BYTE PTR [BX],0MOV CX,9LEA BX,BUFAGAIN1: OR BYTE PTR [BX],30HADD BX,1LOOP AGAIN1RETOPERATE ENDPCODE ENDSEND MAIN第二十一题:DATA SEGMENTBUF1 DB 19DB ?DB 19 DUP(?)SUM DW 0PRINT DB 10,13STORE2 DB 0,0,0,0,10,13,'$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATAMAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL INPUTCALL OPERATECALL CHANGECALL OUTPUTMOV AX,4C00HINT 21HMAIN ENDPINPUT PROCLEA DX,BUF1MOV AH,0AHINT 21HRETINPUT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPOPERATE PROCMOV CH,6LEA BX,BUF1+2 AGAIN: MOV AX,WORD PTR [BX]XCHG AL,AHCMP AL,'9'JA TOSUB AL,30HJMP TPTO : SUB AL,37HTP: CMP AH,'9'JA TO1SUB AH,30HJMP TP1TO1: SUB AH,37HTP1: MOV CL,4SHL AH,CLOR AL,AHMOV AH,0ADD SUM,AXADD BX,3DEC CHJNZ AGAINMOV AX,SUMRETOPERATE ENDPCHANGE PROCMOV DX,AXMOV AL,AHAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOONADD AH,7GOON: CMP AL ,39HJBE GOON1ADD AL,7 GOON1: XCHG AL,AHMOV WORD PTR STORE2,AXMOV AX,DXMOV AH,ALAND AX,0F00FHMOV CL ,4SHR AH,CLADD AX,3030HCMP AH,39HJBE GOON2ADD AH,7GOON2: CMP AL ,39HJBE GOON3ADD AL,7GOON3: XCHG AL,AHMOV WORD PTR STORE2+2,AXRETCHANGE ENDPCODE ENDSEND MAIN第二十二题:DATA SEGMENTBUF DB 20HDB ?BUF1 DB 20H DUP(?)C1 DB 0C2 DB 0C3 DB 0PRINT DB 13,10OU DB 'LETTER=',0,0,13,10DB 'NUMBER=',0,0,13,10DB 'SPACE =',0,0,'$'MINUS DB 10DATA ENDSCODE SEGMENTASSUME CS:CODE,ES:DATA,DS:DATA MAIN PROC FARMOV AX,DATAMOV ES,AXMOV DS,AXCALL INPUTCALL COUNTCALL PREPARECALL OUTPUTMOV AX,4C00HINT 21H MAIN ENDPINPUT PROCLEA DX,BUFMOV AH,0AHINT 21HRETINPUT ENDPPREPARE PROCLEA BX,OUMOV AL,C1MOV AH,0DIV MINUSXCHG AL,AHOR AX,3030HMOV [BX+7],AHMOV [BX+8],ALMOV AL,C2MOV AH,0DIV MINUSXCHG AL,AHOR AX,3030HMOV [BX+18],AHMOV [BX+19],ALMOV AL,C3MOV AH,0DIV MINUSXCHG AL,AHOR AX,3030HMOV [BX+29],AHMOV [BX+30],ALRETPREPARE ENDPCOUNT PROCMOV CL,BUF+1MOV CH,0LEA BX ,BUF1AGAIN: CMP BYTE PTR [BX],' 'JE TO1CMP BYTE PTR [BX],'1'JB ENCMP BYTE PTR [BX],'9'JBE TO2CMP BYTE PTR [BX],'A'JB ENCMP BYTE PTR [BX],'z'JA ENCMP BYTE PTR [BX],'Z'JBE TO3CMP BYTE PTR [BX],'a'JAE TO3JMP ENTO3: INC C1JMP ENTO1: INC C3JMP ENTO2: INC C2EN: INC BXLOOP AGAINRETCOUNT ENDPOUTPUT PROCLEA DX,PRINTMOV AH,9INT 21HRETOUTPUT ENDPCODE ENDSEND MAIN。