汇编语言-实验四 字符串的匹配与替换程序设计(5页).doc
-汇编语言-实验四 字符串的匹配与替换程序设计-第 5 页实验四 字符串的匹配与替换程序设计一、实验目的 1)掌握串操作指令的使用方法。2)掌握串处理程序的设计方法。 3)熟练使用各种程序结构。 二、实验内容1)编制两个字符串比较子程序。2)编制在一个字符串中查找给定字符串的程序。3)编写程序把从键盘输入的以回车为结束符的字符串中的空格去掉并按相反的顺序输出。4)编写程序在字符串STRING1中指定位置插入字符串STRING2。5)编写程序在字符串STRING1中指定位置删除子串。三、源程序EXAM41DATA SEGMENT STR1 DB 'MES' STR2 DB 'MESS' STR3 DB 'MATCH$' STR4 DB 'NOT MATCH$' DATA ENDS CODE SEGMENT ASSUME CS:CODE ,DS:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,4 MOV DI,OFFSET STR1 MOV SI,OFFSET STR2 REPZ CMPSB JZ LAB1 JNZ LAB2 LAB1: MOV DX,OFFSET STR3 MOV AH,09H INT 21H MOV AH,4CH INT 21H LAB2: MOV DX,OFFSET STR4 MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END STARTEXAM42DATA SEGMENTMESS1 DB 'ENTER KEYWORD:','$'MESS2 DB 'ENTER SENTENCE:','$'MESS3 DB 'NO MATCH!',13,10,'$'MESS4 DB 'MATCH AT LOCATION:','$'MESS5 DB 'H OF THE SENTENCE.',13,10,'$'CHANGE DB 13,10,'$' SEN1 LABEL BYTE MAX1 DB 14 ACT1 DB ? STOKN1 DB 14 DUP(?) SEN2 LABEL BYTE MAX2 DB 100 ACT2 DB ? STOKN2 DB 100 DUP(?) DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,MESS1 MOV AH,09H INT 21H LEA DX,SEN1 MOV AH,0AH INT 21H LEA DX,CHANGE MOV AH,09H INT 21H SUB CX,CXA10: LEA DX,MESS2 MOV AH,09H INT 21H LEA DX,SEN2 MOV AH,0AH INT 21H LEA DX,CHANGE MOV AH,09H INT 21H CMP ACT2,0 JE EXIT MOV BX,0A20: MOV CL,ACT1 LEA SI,STOKN1 LEA AX,STOKN2 ADD AL,BL MOV DI,AX CLD REP CMPSB JZ A30 INC BL CMP BL,ACT2 JE A40 JMP A20A30: LEA DX,MESS4 MOV AH,09H INT 21H MOV AH,02H ADD BL,1 MOV CL,4 MOV AL,BL ROL AL,CL MOV CL,2 JMP A50 A1: LEA DX,MESS5 MOV AH,09H INT 21H JMP A10A40: LEA DX,MESS3 MOV AH,09H INT 21H JMP A10A50: DEC CL AND AL,0FH CMP AL,10 JNB A60 ADD AL,'0'A2: MOV DL,AL MOV AH,02H INT 21H CMP CL,0 JE A1 MOV AL,BL JMP A50A60: SUB AL,10 ADD AL,'A' JMP A2EXIT: RETMAIN ENDPCODE ENDS END START