汇编CMPS比较两字符串是否相等

mqloong 2012-11-26 10:59:31
DATE SEGMENT
INF1 DB 0DH,0AH,'INPUT FIRST STRING:$'
INF2 DB 0DH,0AH,'INPUT SECOND STRING:$'
INF3 DB 0DH,0AH,'MATCH!$'
INF4 DB 0DH,0AH,'NO MATCH!$'
STR1 DB 81
DB ?
DB 80 DUP(0)
STR2 DB 81
DB ?
DB 80 DUP(0)
DATE ENDS
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATE, SS:STACK, CS:CODE, ES:DATE
START:
MOV AX,DATE
MOV DS,AX
MOV ES,AX

LEA DX,INF1
MOV AH,09H
INT 21H

LEA DX,STR1
MOV AH,0AH
INT 21H

LEA DX,INF2
MOV AH,09H
INT 21H

LEA DX,STR2
MOV AH,0AH
INT 21H

MOV AL,[STR1+1]
CMP AL,[STR2+1]
JNZ J2
MOV CL,[STR1+1]
MOV CH,00H
LEA SI,STR1+2
LEA DI,STR2+2
CLD

REPZ CMPSB
JZ J2
LEA DX,INF4
JMP J3
J2:LEA DX,INF3
J3:MOV AH,09H
INT 21H

MOV AH,4CH
INT 21H
CODE ENDS
END START

总是显示MATCH!
...全文
328 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mqloong 2012-11-26
  • 打赏
  • 举报
回复
哦!尴尬了!
zara 2012-11-26
  • 打赏
  • 举报
回复
     MOV AL,[STR1+1]
CMP AL,[STR2+1]
JNZ J2 ; 这里转错地方了八
子善旬 2012-11-26
  • 打赏
  • 举报
回复
可能str1 str2的串不是你输入的串 MOV AL,[STR1+1] 之前把str1 str2打印出来,看看是你输入的吗

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧