1.传传送指令MOVS
;功能:将字符串STR1中的字符串用MOVS指令转移给STR2 ;时间:2012.11.18 .386 DATA SEGMENT USE16 STR1 DB 'I LOVE YOU !' N=$-STR1 STR2 DB N DUP(0) DB '$' DATA ENDS STACK SEGMENT USE16 DB 200 DUP(0) STACK ENDS CODE SEGMENT USE16 ASSUME DS:DATA,ES:DATA,CS:CODE,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX ; 当前数据段 MOV ES,AX ; 附加数据段 LEA SI,STR1 LEA DI,STR2 MOV CX,N CLD ; 使DF=0 ,DI,SI自增 STD时自减 REP MOVSB LEA DX,STR2 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END BEGIN2.串比较指令CMPS
;功能:CMPS指令的操作,比较输入字符串与指定字符串是否相等 ;时间;2012.11.18 DATA SEGMENT USE16 STR1 DB 80 DB ? DB 80 DUP(0) STR2 DB 'HELLO!' COUNT=$-STR2 RES DB 0AH,0DH,'输入的字符串与我们设定的相同',0AH,0DH,'$' RES1 DB 0AH,0DH,'对不起您输入的不是我们设定的',0AH,0DH,'$' MES DB '请输入一串字符(空格退出):',0AH,0DH,'$' DATA ENDS STACK SEGMENT USE16 DB 200 DUP(0) STACK ENDS CODE SEGMENT USE16 ASSUME DS:DATA,ES:DATA,CS:CODE,SS:STACK BEGIN: MOV AX,DATA MOV DS,AX MOV ES,AX ; 想str1中输入字符串 LOP: ;输出提示信息 LEA DX,MES MOV AH,9 INT 21H ;像缓冲区输入字符串 LEA DX,STR1 MOV AH,10 INT 21H ;与空格比较 CMP STR1+2,20H JE EXIT ;若是空格则退出程序 MOV AL,STR1+1 CMP AL,COUNT JNE NEQU ;判断输入的字符串与所设定的字符串长度是否相同,不同直接输出不同信息 LEA SI,STR2 LEA DI,STR1+2 MOV CX,COUNT REPZ CMPSB ;这是CMPS的相关参数设定 JNE NEQU LEA DX,RES JMP OUT NEQU: LEA DX,RES1 OUT: MOV AH,9 INT 21H JMP BEGIN EXIT: MOV AH,4CH INT 21H CODE ENDS END BEGIN