Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276630
  • 博文数量: 91
  • 博客积分: 2105
  • 博客等级: 大尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-14 19:30
文章分类
文章存档

2011年(11)

2010年(64)

2009年(16)

我的朋友

分类: 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

阅读(6128) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-01 15:14:13

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com