CMP komutu iki sayıyı karşılaştırır. Sonucu kaydetmez, sadece bayrakları ayarlar.
cmp A, B
; A - B işlemini yapıp bayrakları ayarla (sonuç kaydedilmez)| Bayrak | Anlamı | Ne Zaman 1 olur |
|---|---|---|
| ZF | Zero Flag | A == B |
| SF | Sign Flag | A - B < 0 (negatif) |
| CF | Carry Flag | A < B (işaretsiz) |
| OF | Overflow Flag | İşaret taşması |
CMP'den sonra bu komutlar kullanılır:
cmp rax, rbx
je label ; Jump if Equal (A == B)
jne label ; Jump if Not Equal (A != B)
jg label ; Jump if Greater (A > B)
jl label ; Jump if Less (A < B)
jge label ; Jump if Greater or Equal (A >= B)
jle label ; Jump if Less or Equal (A <= B)cmp rcx, rdx
je numbers_equal ; RCX == RDX ise atla
; RCX != RDX ise burası çalışır
jmp end
numbers_equal:
; RCX == RDX ise burası çalışır
end:cmp rax, 100
jg greater_than_100 ; RAX > 100 ise atla
; RAX <= 100 ise burası çalışır
jmp end
greater_than_100:
; RAX > 100 ise burası çalışır
end:example_01.asm- CMP ve karşılaştırma fonksiyonları
// Assembly'de:
// cmp rax, 100
// jg greater_than
// C#'da:
if (rax > 100) {
// ...
}- İki sayıyı karşılaştır
- Sonuç döndür (1, 0, -1)
- if/else yapı kur