编写一个微机原理的程序,比较两个字符串是否相等

2025-03-03 05:19:03
推荐回答(2个)
回答1:

给你个代码
DATAS SEGMENT
buf1 db 90,91 dup(0)
buf2 db 90 dup(0)
;此处输入数据段代码
DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
lea dx,[buf1]
mov ah,10
int 21h
lea si,[buf1+2]
mov cl,[buf1+1]
lea di,[buf2]
NEXT:
cmp byte ptr[si],20h
jz lab1
jnz lab2
lab2:
mov al,[si]
mov [di],al
inc di
lab1:
inc si
loop NEXT
mov byte ptr[di],'$'
mov ah,2
mov dl,10
int 21h
mov ah,9
lea dx,[buf2]
int 21h
MOV AH,4CH
INT 21H
CODES ENDS
END START

回答2:

DATA
SEGMENT
LEN
DB
10
(字符个数)
STR1
DB
'0123456789'
(字符1,单引号中可改,相应的LEN也要变化的)
STR2
DB
'0123456789'
RESULT
DB
0FFH
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA
START:
MOV
AX,DATA
MOV
DS,AX
MOV
ES,AX
MOV
CL,LEN
MOV
CH,0
MOV
SI,OFFSET
STR1
MOV
DI,OFFSET
STR2
CLD
REPE
CMPSB
JNZ
LP_NO
MOV
RESULT,56H
JMP
LP_END
LP_NO:
MOV
RESULT,4EH
LP_END:
MOV
AH,4CH
INT
21H
CODE
ENDS
END
START