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

Assembly彙編 CMPS指令

CMPS指令比較兩個字符串。該指令比較兩個數據項的一個字節,字或雙字,指出由DS:SI和ES:DI寄存器並設置相應的標誌。也可以使用條件跳轉指令這個指令。

下麵的例子演示了如何使用CMPS指令比較兩個字符串:

section	.text
    global _start            ;must be declared for using gcc
_start:	;tell linker entry yiibai
   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!