分类: LINUX
2010-11-30 22:11:38
在汇编语言中REPNE SCASB是不相等则重复查找的字符串搜索指令,如果找到,ZF=1则退出指令的执行;如果没找到,已全部找遍则退出。因每执行一次SCASB指令后,DI内容增1,而找到字符在字符串缓冲区中的地址,应该是增1以前的DI中的内容,所以要执行DEC ID指令,回到字符串中的“$”字符所在地址;没找到,执行JZ指令的下一条指令。按照题意,要使DI=0,所以先使DI=1,再继续执行下一条指令后,使DI=0。如代码:
mov cl,al ;字符串长度
mov al,0x8b ;要查找的字符
mov di,bx ;字符串首地址
Scanloop_1:
repne scasb
jnz Scan_Done
chinaunix网友2010-12-01 15:14:13
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com