-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path8.ASM
87 lines (74 loc) · 1.13 KB
/
8.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
;504 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示MATCH,若不相同则显示NO MATCH
S1 SEGMENT
STRING1 DB 60H DUP(24H)
STRING2 DB 60H DUP(24H)
MATCH DB "MATCH",24H
NO DB "NO MATCH",24H
S1 ENDS
S2 SEGMENT STACK
DW 30H DUP(?)
TOS LABEL WORD
S2 ENDS
S3 SEGMENT
ASSUME DS:S1,CS:S3,SS:S2
MAIN PROC FAR
MOV AX,S2
MOV SS,AX
LEA SP,TOS
MOV AX,S1
MOV DS,AX
XOR SI,SI
XOR DI,DI
L1: MOV AH,01H;输入第一个字符串
INT 21H
CMP AL,0DH
JE CRLF1
MOV STRING1[SI],AL
INC SI
JMP L1
CRLF1: MOV AH,02H;回车换行
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
L2: MOV AH,01H;输入第二个字符串
INT 21H
CMP AL,0DH
JE CRLF2
MOV STRING2[DI],AL
INC DI
JMP L2
CRLF2: MOV AH,02H;回车换行
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
MOV BX,SI;如果长度不同提前结束
MOV DX,DI
CMP BX,DX
JNE NO1
XOR SI,SI
XOR DI,DI
BIJIAO: MOV BL,STRING1[SI];开始比较
CMP BL,24H
JE MAH
MOV DL,STRING2[DI]
CMP BL,DL
JNE NO1
INC SI
INC DI
JMP BIJIAO
MAH:LEA DX,MATCH;显示MATCH
MOV AH,9
INT 21H
JMP EXIT
NO1: LEA DX,NO;显示NO MATCH
MOV AH,9
INT 21H
EXIT: MOV AH,4CH
INT 21H
MAIN ENDP
S3 ENDS
END MAIN