LuvyAI — Ücretsiz başla. 18+

🚀 BAŞTAN SONA x86 ASSEMBLY BÖLÜM-3: Mantıksal İşlemler, Karşılaştırma (`CMP`) ve Koşullu Dallanma (`JMP` / `Jcc`) 💻

Konu Özeti

x86 Assembly serisinin üçüncü bölümünde bitsel mantıksal işlemler (AND, OR, XOR, NOT), karşılaştırma (CMP) ve koşullu dallanma (JMP, Jcc) komutları ele alınıyor. AND, OR, XOR ve NOT komutlarının bit düzeyinde nasıl çalıştığı, XOR ile yazmaç sıfırlamanın MOV'a göre avantajları ve maskeleme örnekleri açıklanıyor. Ayrıca CMP ve TEST komutlarının EFLAGS bayraklarını nasıl etkilediği ve bu bayraklara göre program akışını yönlendiren koşullu atlama talimatları anlatılıyor.

🚀 BAŞTAN SONA x86 ASSEMBLY BÖLÜM-3: Mantıksal İşlemler, Karşılaştırma (`CMP`) ve Koşullu Dallanma (`JMP` / `Jcc`) 💻

Selamlar! Serimizin 3. bölümüne hoş geldiniz.

Önceki bölümde `MOV`, `XCHG` veri taşıma komutlarını, `ADD`, `SUB`, `INC`, `DEC` aritmetik işlemlerini, bellek adresleme modlarını ve `EFLAGS` mantığını incelemiştik. Bu bölümde ise bitsel **Mantıksal İşlemleri**, durum bayraklarını etkileyen **`CMP` ve `TEST` komutlarını** ve akış kontrolü sağlayan **Dallanma (Jump) Talimatlarını** öğreneceğiz.

---

🧠 1. Bitsel Mantıksal İşlemler (Bitwise Operations) ⚡

Aritmetik Mantık Birimi (ALU) üzerinde iki yazmaç veya bellek hücresi arasında bit bazında mantıksal sorgulamalar yürütür:

| Komut | Açıklama | Örnek Kullanım |
| :--- | :--- | :--- |
| **`AND`** | Bitsel VE işlemi | `AND EAX, EBX` (Aynı konumdaki iki bit de 1 ise 1 yapar) |
| **`OR`** | Bitsel VEYA işlemi | `OR EAX, 0x05` (Bitlerden biri 1 ise 1 yapar) |
| **`XOR`** | Bitsel ÖZEL VEYA (Exclusive OR) | `XOR EAX, EAX` (İki bit birbirinden farklıysa 1 yapar) |
| **`NOT`** | Bitsel DEĞİL (1'e Göre Tümleyen) | `NOT EAX` (Tüm 0'ları 1, 1'leri 0 yapar) |

> 💡 **Assembly Püf Noktası:** Bir yazmacı sıfırlamak için `MOV EAX, 0` yerine `XOR EAX, EAX` kullanılır. `XOR` komutu hem daha az bayt kaplar hem de CPU tarafında daha hızlı yürütülür.

```nasm
mov eax, 0x0F ; EAX = 00001111 (Binary)
and eax, 0x03 ; EAX = 00000011 (Maskeleme yapıldı)
xor ebx, ebx ; EBX = 0 (Yazmaç en hızlı şekilde sıfır
landı)

🔒 Bu içeriği görmek için giriş yapın

 
Yanıt yazmak için giriş yapmalısınız
Forum özelliklerini kullanmak ve Level 2 üyelik satın almak için hesabınıza giriş yapın.
136,881Threads
3,309,155Messages
328,729Members
nomercyyxdLatest member
Top Bottom