求微机原理汇编语言程序,希望有程序截图和必要的说明,谢谢高手指导!!!就20 财富值了,希望高手帮忙~
要求:提示输入字符串1;
输入字符串1,Enter 键结束输入并换行;
提示输入字符串2;
输入字符串2,Enter 键结束输入并换行;
显示判断结果 展开
程序如下:
DATA SEGMENT
STR1 DB 100
LEN1 DB ?
DB 100 DUP(?)
STR2 DB 100
LEN2 DB ?
DB 100 DUP(?)
INFO1 DB 0AH,0DH,'input string1:','$'
INFO2 DB 0AH,0DH,'input string2:','$'
INFO3 DB 0AH,0DH,'string1=string2:'
JUDG DB 20H,20H,20H,'$'
DATA ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
;***输入字符串****
LEA DX,INFO1
MOV AH,09H
INT 21H
LEA DX,STR1
MOV AH,0AH ;输入字符串1
INT 21H
LEA DX,INFO2
MOV AH,09H
INT 21H
LEA DX,STR2
MOV AH,0AH ;输入字符串2
INT 21H
;***判断字符串***
MOV AL,LEN1 ;字符串1的长度
MOV AH,LEN2 ;字符串2的长度
CMP AH,AL
JNZ NO
MOV CH,0
MOV CL,AL
MOV SI,0
MOV DI,0
NEXT: INC SI
INC DI
MOV AH,LEN1[SI]
CMP AH,LEN2[DI]
JNZ NO
LOOP NEXT
MOV JUDG,'Y'
MOV JUDG+1,'E'
MOV JUDG+2,'S'
JMP FINI
NO: MOV JUDG,'N'
MOV JUDG+1,'O'
;***输出判断结果***
FINI: LEA DX,INFO3
MOV AH,09H
INT 21H ;输出判断结果
;***程序结束***
MOV AH,4CH ;程序结束
INT 21H
CODE ENDS
END START
程序运行结果:
高手你好~~~你的程序我见识了~~真厉害,也能运行成功~~就是有点不明白~~~希望在帮忙解释一下~~谢谢哈~~JUDG DB 20H,20H,20H,'$'和
MOV CH,0
MOV CL,AL
MOV SI,0
MOV DI,0 是什么意思啊·~ 谢谢~~~
这一段代码主要是要通过循环逐个比较两个字符串的每个字符,在循环之前,把循环次数传送给CX,就是这两句
MOV CH,0
MOV CL,AL
同时还要设立两个指针SI、DI,分别指向两个字符串,为比较两个字符串做准备
MOV SI,0
MOV DI,0