Bölüm 10 · Simülatör

Kaydırma ve Döndürme

← Bölüm 10

Kaydırma ve Döndürme

Amaç: 8086'nın kaydırma (SHL, SAL, SHR, SAR) ve döndürme (ROL, ROR, RCL, RCR) komutlarında her bitin nereye gittiğini, CF'ye hangi bitin düştüğünü ve bayrakların nasıl ayarlandığını görmek.

Nasıl kullanılır?

  1. Komutu, boyutu (AL ya da AX) ve değeri seçin; değer onaltılık (96h), ikili (10010110b) ya da onluk (-106) olabilir.
  2. Kaydırma sayısı 1 (SHL AL, 1) ya da CL (SHL AL, CL) olur; 8086'da başka bir sabit sayı yazılamaz. CL burada 0–31 arasında seçilebilir.
  3. Adım ▶ (ya da →) her seferinde bir bitlik kaydırma yapar: CF kutusuna düşen bit ve boşalan yere giren bit vurgulanır. Son adımda bayraklar açıklanır.
  4. Kendini dene: komut çalışmadan önce sonucu ve CF'yi tahmin edin.

Kurallar

  • SHL = SAL: sola kaydır, sağdan 0 girer, çıkan bit CF'ye. Taşma yoksa işaretsiz değer × 2.
  • SHR: sağa kaydır, soldan 0 girer (işaretsiz ÷ 2). SAR: işaret biti korunur (işaretli ÷ 2, −∞'a doğru yuvarlar).
  • ROL/ROR: çıkan bit hem öbür uca hem CF'ye gider. RCL/RCR: CF de halkanın parçasıdır (8 bitte 9, 16 bitte 17 bitlik halka).
  • CF: son çıkan bit. OF yalnızca sayı 1 iken tanımlıdır: SHL/SAL/ROL/RCL'de sonucun en anlamlı biti XOR CF; SHR'de işlenenin eski en anlamlı biti; SAR'da 0; ROR/RCR'de sonucun en üst iki bitinin XOR'u. Sayı 1'den büyükse OF tanımsızdır.
  • Kaydırmalar SF, ZF ve PF'yi sonuca göre ayarlar, AF tanımsızdır. Döndürmeler yalnızca CF ve OF'yi etkiler.
  • Sayı 0 ise hiçbir bayrak değişmez. 8086 sayıyı maskelemez; sonraki işlemciler CL'nin yalnızca alt 5 bitini kullanır.

Gösterilen sonuçlar bir 8086 yorumlayıcısıyla karşılaştırılarak sınanmıştır.

İlgili sunumlar: Bölüm 6 · Aritmetik ve Mantık Komutları, Bölüm 10 · Komut Kümesi (Kaydırma: SHL/SAL, SHR, SAR; Döndürme: ROL, ROR, RCL, RCR; Kaydırmayla Hızlı Çarpma ve Bölme).