问题描述
我是汇编编程的新手。这是我的 2 个代码:
1st - 从互联网上搜索
.DATA
BLOCK DB 'You & Me'
COUNT DW 13
SEARCH DB '&'
FOUND DB 'String Found$'
NOTFOUND DB 'String NOT Found$'
.CODE
.STARTUP
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
MOV CX,COUNT
MOV DI,OFFSET BLOCK
MOV AL,SEARCH
REPNE SCASB
JZ YES
MOV DX,OFFSET NOTFOUND
MOV AH,09
INT 21H
JMP OVER
YES:
MOV DX,OFFSET FOUND
MOV AH,09
INT 21H
OVER:
MOV AH,4CH
INT 21H
.EXIT
END
第二 - 从我的书中
.DATA
BLOCK DB 'You & Me'
.CODE
.STARTUP
MOV DI,OFFSET BLOCK
MOV CX,13
MOV AL,'&'
REPNE SCASB
.EXIT
END
我知道如果找到字符串,SCAS
指令会将 ZF 更改为 1,如果未找到,则将 ZF 更改为 0。我也知道在 REPNE SCASB
的末尾,DI
将在第一次找到字符串时包含字符串的地址。我的问题是,为什么我的第二个代码不起作用?是不是因为第一个代码中的 MOV AX,@DATA . . .
使我的第一个代码起作用但我的第二个代码不起作用?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)