两个字符串比较

本文最后更新于:2022年5月29日 上午

汇编语言实现两个字符串的比较。

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
DATA SEGMENT
STRING1 DB 'Move the cursor backword'
YES DB 'Match',0AH,0DH,'$'
NO DB 'No match',0AH,0DH,'$'
COUNT EQU 24 ;串长度
DATA ENDS

EXTRA SEGMENT
STRING2 DB 'Move the cursor backword'
EXTRA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE,ES:EXTRA
START:
MOV AX,DATA
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX

LEA SI,STRING1 ;源串指针
LEA DI,STRING2 ;目的串指针
MOV CX,COUNT ;串长度
;CLD ;地址增量
REPZ CMPSB ;CX不等于0且串相等时重复比较
JNE FAULT ;若不相等,跳转到FAULT执行
OK: ;若相等,往下执行
LEA DX,YES
MOV AH,09H
INT 21H
JMP EXIT ;无条件跳转
FAULT:
LEA DX,NO
MOV AH,09H
INT 21H
EXIT:
MOV AH,4CH
INT 21H
CODE ENDS
END START

两个字符串比较
https://kevinloongc.github.io/posts/37363.html
作者
Kevin Loongc
发布于
2017年11月9日
许可协议