SCASB
汇编指令SCASB:在汇编语言中REPNE SCASB是不相等则重复查找的字符串搜索指令,如果找到,ZF=1则退出指令的执行;如果没找到,已全部找遍则退出。因每执行一次SCASB指令后,DI内容增1,而找到字符在字符串缓冲区中的地址,应该是增1以前的DI中的内容,所以要执行DEC DI指令,回到字符串中的“$”字符所在地址;没找到,执行JZ指令的下一条指令。按照题意,要使DI=0,所以先使DI=1,再继续执行下一条指令后,使DI=0。
示例代码:
mov cx, 10 ;字符串长度 (如果长度为10)
mov al,0x8b ;要查找的字符
mov di,bx ;字符串首地址
Scanloop_1:
repne scasb
jnz Scan_Done