彙編 - CMPS 指令
CMPS 指令比較兩個字串。該指令比較 DS:SI 和 ES:DI 暫存器指向的一個位元組、字或雙字的資料項,並設定相應的標誌。你還可以將條件跳轉指令與該指令一起使用。
以下示例演示使用 CMPS 指令比較兩個字串:
section .text global _start ;must be declared for using gcc _start: ;tell linker entry point mov esi, s1 mov edi, s2 mov ecx, lens2 cld repe cmpsb jecxz equal ;jump when ecx is zero ;If not equal then the following code mov eax, 4 mov ebx, 1 mov ecx, msg_neq mov edx, len_neq int 80h jmp exit equal: mov eax, 4 mov ebx, 1 mov ecx, msg_eq mov edx, len_eq int 80h exit: mov eax, 1 mov ebx, 0 int 80h section .data s1 db 'Hello, world!',0 ;our first string lens1 equ $-s1 s2 db 'Hello, there!', 0 ;our second string lens2 equ $-s2 msg_eq db 'Strings are equal!', 0xa len_eq equ $-msg_eq msg_neq db 'Strings are not equal!' len_neq equ $-msg_neq
編譯並執行上述程式碼時,將產生以下結果:
Strings are not equal!
assembly_strings.htm
廣告