80×86 Assembly Dersleri 4 – Flags (Bayraklar)

Flags (Bayraklar)

Bu yazmaç PSW (Program Status Word), üzerinde bayrak (flag) olarak adlandırılan birer bit’lik özel değerleri tutar.
Bayraklar, bazı işlemlerin sonucunda değerleri yansıtırlar. Bir bit ile ifade edildiklerinden 0 veya 1 değerinden başka değer alamazlar.

  • Set (Birleme) – Bayrağın değerinin 1 olması durumu
  • Clear (Silme) – Bayrağın değerinin 0 olması durumu
  • Reset (Sıfırlama) – Bayrağın değerini ilk değerine döndürür.
8086 Program Status Word
8086 Program Status Word

CF – Carry Flag

8’li ve 16’lı işlemlerde oluşan elde/ödünç durumunu kullanıcıya belirtmek için CF bayrağının değeri 1 yapılır.

PF – Parity Flag

İşlem sonucunda çift eşlik (even parity) var ise -yani 1 lerin sayısı çift ise- durumu kullanıcıya belirtmek için PF bayrağının değeri 1 yapılır. Eğer bit dizilişindeki 1 lerin sayısı tek ise (odd parity) PF bayrağının değeri 0 yapılır.

AF – Auxilary Carry Flag

8’li işlemlerde düşük anlamlı 4’lüden (nibble) yüksek anlamlı 4’lüye elde/ödünç, 16’lı işlemlerde düşük anlamlı 8’liden yüksek anlamlı 8’liye elde/ödünç aktarılması durumunu kullanıcıya belirtmek için AF değeri 1 yapılır.

ZF – Zero Flag

İşlem sonucunun 0 çıkması (eşitlik olmaması) durumu için ZF değeri 1 yapılır.

SF – Sign Flag

İşlem sonucunda sayı negatifse (en anlamlı bit 1 ise) SF değeri 1 yapılır.

TF – Trap Flag

Adım bayrağı olarak adlandırılabilir. TF bayrağının değeri 1 alaması durumunda her komut yürütüldükten sonra bir kesme üretilerek durumun kullanıcı tarfından izlenmesine imkan sağlar. (single-step mode)

IF – Interrup Flag

IF, maskelenebilir kesme (maskable interrupt) isteklerinin izinli olup olmadığını belirlemek üzere kullanılır. IF bayrağının değeri 1 ise kesmelere izin verir. Tersi durumda ise INT komutuyla kullanılan tüm kesmeler devre dışı kalır.

DF – Direction Flag

String işlemlerinde işlemin yüksek adresli bellek gözünden başlayarak düşük adresli bellek gözüne doğru yürütülebilmesi için DF bayrağının değeri 1 olması gerekir. DF bayrağının değeri 0 olduğunda, tam tersi durum yani düşük adresten başlayarak büyük adrese doğru gerçekleşecektir.

OF – Overflow Flag

Aritmetik taşıma olduğunda OF bayrağının değeri 1 olur.

Aritmetik taşma: İşaretli sayılar (+/- ya da en anlamlı biti 1 veya 0 olan) ile yapılan işlemlerde elde edilen işaretli sonucun tanımlı alana sığmaması (taşması) durumunu belirtir.

 

En anlamlı bit – Most Significant Digit – (MSD)

İkilik sayı sisteminde yazılan bir sayının en solundaki bittir ve en yüksek değeri katar. Bazı kaynaklarda en yüksek anlamlı bit şeklinde de geçmektedir.

En anlamsız bit – Least Significant Digit – (LSD)

İkilik sayı sisteminde yazılan bir sayının en sağındaki bittir ve en düşük değeri katar. Bazı kaynaklarda en düşük anlamlı bit şeklinde de geçmektedir.

Örneğin;

0111 0001 Sayısı için

En anlamlı bit değeri (MSD): 0
En anlamsız bit değeri (LSD): 1

Leave a Reply

Your email address will not be published. Required fields are marked *