Bölüm 7 · SimülatörKoşullu Atlamalar? ← Bölüm 7 ◀ Adım ▶ Oynat Sona git Sıfırla KapatKoşullu AtlamalarAmaç: CMP a, b komutunun ayarladığı bayraklardan her koşullu atlamanın nasıl karar verdiğini ve işaretli (G/L) ile işaretsiz (A/B) ailelerin aynı bitler için neden farklı sonuç verebildiğini görmek; küçük döngülerde CX'in ve bayrakların değişimini izlemek.Nasıl kullanılır?CMP + Jcc: a ve b'yi onaltılık (0FBh), ikili (1010b) ya da onluk (-5) yazın. Adım ▶ (ya da →) önce bayrakları, sonra atlamaları tek tek açar; satırdaki koşul, bakılan bayraklarla birlikte gösterilir.Döngü: bir program seçin, başlangıç değerini ayarlayıp komutları adım adım çalıştırın. Sağda yazmaçlar ve bayraklar, altta son adımlar görünür.Kendini dene: her atlama için önce “atlar” ya da “atlamaz” tahmini istenir.KurallarCMP a, b, a − b'yi hesaplar, sonucu saklamaz; yalnızca CF, ZF, SF, OF, PF, AF'yi ayarlar.İşaretsiz: JA (CF = 0 ve ZF = 0), JAE = JNB = JNC (CF = 0), JB = JNAE = JC (CF = 1), JBE (CF = 1 ya da ZF = 1).İşaretli: JG (ZF = 0 ve SF = OF), JGE (SF = OF), JL (SF ≠ OF), JLE (ZF = 1 ya da SF ≠ OF). Taşma olunca SF'nin işareti ters çıkar; bu yüzden SF ile OF birlikte değerlendirilir.LOOP önce CX'i 1 azaltır, CX ≠ 0 ise atlar ve bayrakları değiştirmez. DEC CX + JNZ aynı işi yapar ama ZF, SF, OF, PF, AF'yi değiştirir (CF korunur). CX = 0 iken LOOP'a girilirse CX FFFFh olur ve gövde 65.536 kez çalışır.8086'da koşullu atlamalar 2 bayttır ve yalnızca −128…+127 bayt uzağa gidebilir.Bayrak ve atlama sonuçları ile döngü izleri bir 8086 yorumlayıcısıyla karşılaştırılarak sınanmıştır.İlgili sunum: Bölüm 7 · Program Akış Kontrolü (Tek Bir Bayrağı Test Eden Atlamalar, CMP Komutu, İşaretli ve İşaretsiz Sayılar İçin Atlamalar, Neden SF = OF?, Döngü Komutları).