- 汇编教程
- 汇编 - 首页
- 汇编 - 简介
- 汇编 - 环境设置
- 汇编 - 基本语法
- 汇编 - 内存片段
- 汇编 - 寄存器
- 汇编 - 系统调用
- 汇编 - 定址模式
- 汇编 - 变量
- 汇编 - 常量
- 汇编 - 算术指令
- 汇编 - 逻辑指令
- 汇编 - 条件
- 汇编 - 循环
- 汇编 - 数字
- 汇编 - 字符串
- 汇编 - 数组
- 汇编 - 过程
- 汇编 - 递归
- 汇编 - 宏
- 汇编 - 文件管理
- 汇编 - 内存管理
- 汇编有用的资源
- 汇编 - 快速指南
- 汇编 - 有用的资源
- 汇编 - 讨论
汇编 - SCAS 指令
SCAS 指令用于在字符串中搜索特定字符或一组字符。要搜索的数据项应位于 AL(对于 SCASB)、AX(对于 SCASW)或 EAX(对于 SCASD)寄存器中。要搜索的字符串应位于内存中,并由 ES:DI(或 EDI)寄存器指向。
请查看以下程序以理解这一概念 −
section .text global _start ;must be declared for using gcc _start: ;tell linker entry point mov ecx,len mov edi,my_string mov al , 'e' cld repne scasb je found ; when found ; If not not then the following code mov eax,4 mov ebx,1 mov ecx,msg_notfound mov edx,len_notfound int 80h jmp exit found: mov eax,4 mov ebx,1 mov ecx,msg_found mov edx,len_found int 80h exit: mov eax,1 mov ebx,0 int 80h section .data my_string db 'hello world', 0 len equ $-my_string msg_found db 'found!', 0xa len_found equ $-msg_found msg_notfound db 'not found!' len_notfound equ $-msg_notfound
编译并执行上述代码后,将产生以下结果 −
found!
assembly_strings.htm
广告