zengbowenzi 发表于 2013-9-6 17:26:39

从一个字符串中查找一个指定字符‘!’

代码如下:
DATA SEGMENT
STR1DB'HELLO,WORLD!'
LEN1EQU $-STR1
MSG1DB'NOTFIND$'
MSG2DB'FIND$'
DATA ENDS
;******************
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX,DATA
MOV DS,AX
;********************
MOV CX,LEN1
LEA DI,STR1
MOV AL,'!'
CLD
REPNZ SCASB
JZ FIND
LEA DX,MSG1
MOV AH,09H
INT 21H
JMP FINISH
FIND:
LEA DX,MSG2
MOV AH,09H
INT 21H
;********************
FINISH:
MOV AH,4CH
INT 21H
CODE ENDS
END START


运行之后结果总为"NOTFIND",可是一直查不出问题:mad:,求大神指教。。。

liangfei44 发表于 2013-9-6 23:59:39

在MOV DS,AX后面加一句mov es,ax就行了
REPNZ SCASB 对比的是es:的内存。

怡静 发表于 2013-9-7 10:33:46

liangfei44 发表于 2013-9-6 23:59 static/image/common/back.gif
在MOV DS,AX后面加一句mov es,ax就行了
REPNZ SCASB 对比的是es:的内存。

回答不错,谢谢。

zengbowenzi 发表于 2013-9-7 12:36:44

liangfei44 发表于 2013-9-6 23:59 static/image/common/back.gif
在MOV DS,AX后面加一句mov es,ax就行了
REPNZ SCASB 对比的是es:的内存。

果然是这个问题,非常感谢,初学汇编,还有许多不懂的地方,请多多指教
页: [1]
查看完整版本: 从一个字符串中查找一个指定字符‘!’