Taşma bayrağı - Overflow flag

Bilgisayar işlemcilerinde, taşma bayrağı (bazen V bayrağı olarak da adlandırılır ), genellikle bir işlemde aritmetik bir taşma meydana geldiğini belirtmek için kullanılan bir sistem durumu kaydındaki tek bir bittir ve imzalı ikinin tamamlayıcı sonucunun buna uymayacağını belirtir . sonuç için kullanılan bit sayısı. Bazı mimariler, taşmaya neden olan bir işlemde otomatik olarak bir istisna oluşturacak şekilde yapılandırılabilir.

Bir örnek, 8 bitlik kayıtlar kullanarak 127 ve 127 eklediğimizi varsayalım. 127 + 127, 254'tür, ancak 8-bit aritmetik kullanıldığında sonuç , negatif bir sayı olan −2'nin ikisinin tamamlayıcı kodlaması olan 1111 1110 ikili olacaktır . Pozitif işlenenlerin negatif toplamı (veya tersi) bir taşmadır. Taşma bayrağı daha sonra programın sorunun farkına varması ve bunu hafifletmesi veya bir hata sinyali vermesi için ayarlanacaktır. Taşma bayrağı böylelikle en anlamlı bit (burada işaret biti olarak kabul edilir) aynı işarete sahip iki sayı eklenerek (veya karşıt işaretli iki sayının çıkarılmasıyla) değiştirildiğinde ayarlanır. İki toplama işleneninin işareti farklı olduğunda (veya iki çıkarma işleneninin işareti aynı olduğunda) taşma gerçekleşemez.

İkili değerler işaretsiz sayılar olarak yorumlandığında , taşma bayrağı anlamsızdır ve normalde yok sayılır. İkinin tümleyici aritmetiğinin avantajlarından biri, toplama ve çıkarma işlemlerinin işaretli ve işaretsiz işlenenler arasında ayrım yapmasına gerek olmamasıdır. Bu nedenle, bilgisayar komut setlerinin çoğu işaretli ve işaretsiz işlenenler arasında ayrım yapmaz, her işlemde hem (işaretli) taşma hem de (işaretsiz) taşıma bayrakları oluşturur ve hangisinin ilgilendiğine dikkat etmesi için talimatları izlemeye bırakır.

Dahili olarak, taşma bayrağı genellikle bir dışlayıcı veya işaret bitinin içine ve dışına dahili taşıma tarafından oluşturulur .

Bitsel işlemler (ve veya, xor, not, rotate) işaretli taşma kavramına sahip değildir, bu nedenle tanımlanan değer farklı işlemci mimarilerine göre değişir; Bazıları biti koşulsuz olarak temizler, diğerleri onu değiştirmeden bırakır ve yine de onu tanımlanmamış bir değere ayarlar . Kaymalar ve çarpmalar iyi tanımlanmış bir değere izin verir, ancak tutarlı bir şekilde uygulanmaz. Örneğin, x86 komut kümesi yalnızca çarpmalar ve 1 bitlik kaydırmalar için taşma bayrağını tanımlar; çok bitli kaymalar onu tanımsız bırakır.

Referanslar