位置:首頁 > 高級語言 > Assembly彙編 > Assembly彙編 SCAS指令

Assembly彙編 SCAS指令

SCAS指令用於搜索一個特定的字符或字符串中的字符集。要搜索的數據項應該是在AL,AX(SCASW)或EAX寄存器(SCASD)的(SCASB)。被搜索的字符串應該是在內存中,並指出由ES:DI(或EDI)寄存器。

看看下麵的程序的概念來理解:

section .text
    global _start         ;must be declared for using gcc
_start:	;tell linker entry yiibai

   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!