【交流】【汇编】编程比较两字符串,完全相同输出match,否则输出no match.

自己编的,但编译不能通过,不知为何:;4-9试编写一程序,比较两个字符串STRING1和STRING2所含的字符是否完全相同,若相同则显;示"match",若不同则显示“... 自己编的,但编译不能通过,不知为何:

;4-9 试编写一程序,比较两个字符串STRING1和STRING2所含的字符是否完全相同,若相同则显
;示"match",若不同则显示“No match"。
DATA SEGMENT
STRING1 DB 'abcdefg','$'
STRING2 DB 'abcdefgh','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX ;初始化DS
MOV BX,0 ;BX指向数组首地址
LOOP1: CMP STRING1[BX],STRING2[BX]
JNE NM ;转向输出程序
CMP STRING1[BX],'$'
JNE NEXT1 ;转向下一步判断程序
CMP STRING2[BX],'$'
JNE NM
JMP M
NEXT1: CMP STRING2[BX],'$'
JE NM
INC BX
JMP LOOP1
NM: MOV DX,OFFSET 'No match','$'
JMP END1
M: MOV DX,OFFSET 'match','$'
END1: MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
/////三条错误信息:1, LOOP1: CMP STRING1[BX],STRING2[BX];;;;illegal memory reference
2, NM: MOV DX,OFFSET 'No match','$';;;;;value out of range
展开
 我来答
做而论道
高能答主

2013-05-17 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3.1万
采纳率:82%
帮助的人:8448万
追问
初学汇编,很多知识不足,新学了您的
MOV CX, 6
REPE CMPSB ;字符串比较
但我的这段程序,如何修改,错在哪了,还是不清楚,不知您能否详细讲解下,多谢了
嘿嘿,悬赏分增加了
追答
已经改好:

DATA SEGMENT
STRING1 DB 'abcdefg', '$'
STRING2 DB 'abcdefgh', '$'

MSG1 DB 'No match', '$'
MSG2 DB 'match', '$'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX ;初始化DS

MOV BX, 0 ;BX指向数组首地址
LOOP1:
MOV AL, STRING1[BX]
CMP AL, STRING2[BX]

JNE NM ;转向输出程序
CMP STRING1[BX], '$'
JNE NEXT1 ;转向下一步判断程序
CMP STRING2[BX], '$'
JNE NM
JMP M
NEXT1:
CMP STRING2[BX], '$'
JE NM
INC BX
JMP LOOP1
NM:
MOV DX, OFFSET MSG1
JMP END1
M:
MOV DX, OFFSET MSG2
END1:
MOV AH, 9
INT 21H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式