永发信息网

请帮我看一下这个简单汇编程序哪错了

答案:1  悬赏:70  手机版
解决时间 2021-04-26 21:10
  • 提问者网友:我一贱你就笑
  • 2021-04-26 10:35

DATAS SEGMENT
STRING1 DB 'HELLOWORLD'
STRING2 DB 'HELLOWORLD'
STRING3 DB 'MATCH','$'
STRING4 DB 'NOT MATCH','$'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA SI,STRING1
LEA DI,STRING2
MOV CX,2
CLD
REPE CMPSB
JZ MMM
LEA DX,STRING4
MOV AH,09H
INT 21H
JMP STOP
MMM:
LEA DX,STRING3
MOV AH,09H
INT 21H
STOP:
MOV AH,4CH
INT 21H
CODES ENDS
END START

代码如上,运行结果是NOT MATCH

STRING1和STRING2比较后零标志位怎么始终为非零

请高手指点,谢谢

最佳答案
  • 五星知识达人网友:大漠
  • 2021-04-26 11:10
DATAS SEGMENT
STRING1 DB 'HELLOWORLD'
len1 equ $-STRING1
STRING2 DB 'HELLOWORLD'
len2 equ $-STRING2
STRING3 DB 'MATCH','$'
STRING4 DB 'NOT MATCH','$'
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
mov es, ax
LEA SI,STRING1
LEA DI,STRING2
MOV CX,0ffffh
CLD
REPE CMPSB
neg cx
dec cx
cmp cx, len1
jl unequal
cmp cx, len2
jl unequal

LEA DX,STRING3
MOV AH,09H
INT 21H
jmp STOP

unequal:
LEA DX,STRING4
MOV AH,09H
INT 21H
JMP STOP


STOP:
MOV AH,4CH
INT 21H
CODES ENDS
END START
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯