Visual Studio'daki Yazmaçlar Penceresi Hakkında (C#, C++, Visual Basic, F#)

Yazmaçlar penceresi yalnızca Seçenekler iletişim kutusundaki Hata Ayıklama düğümünde adres düzeyinde hata ayıklama etkinleştirildiğinde kullanılabilir.

Yazmaçlar, işlemcinin etkin olarak üzerinde çalıştığı küçük veri parçalarını depolamak için kullanılan özel bir işlemci (CPU) konumlarıdır. Kaynak kodu derlemek veya yorumlamak, verileri bellekten yazmaçlara ve gerektiğinde yeniden geri taşıma yönergeleri oluşturur. Yazmaçlardaki verilere erişmek, bellekteki verilere erişmekle karşılaştırıldığında çok hızlıdır, bu nedenle işlemcinin verileri bir yazmaçta tutmasına ve bunlara tekrar tekrar erişmesine izin veren kod, işlemcinin yazmaçları sürekli yüklemesini ve kaldırmasını gerektiren koddan daha hızlı yürütme eğilimindedir. Derleyicinin verileri kayıtlarda tutmasını ve diğer iyileştirmeleri gerçekleştirmesini kolaylaştırmak için genel değişkenleri kullanmaktan kaçınmanız ve yerel değişkenleri mümkün olduğunca kullanmanız gerekir. Bu şekilde yazılan kodun iyi bir referans konumuna sahip olduğu söylenir. C/C++ gibi bazı dillerde programcı bir yazmaç değişkeni bildirebilir ve derleyiciye değişkeni her zaman bir kayıtta tutmak için en iyi şekilde denemesini söyler. Daha fazla bilgi için bkz . Yazma Anahtar Sözcüğü.

Yazmaçlar iki türe ayrılabilir: genel amaçlı ve özel amaçlı. Genel amaçlı yazmaçlar, birbirine iki sayı ekleme veya dizideki bir öğeye başvurma gibi genel işlemler için verileri tutar. Özel amaçlı yazmaçların belirli amaçları ve özel anlamı vardır. İşlemcinin programın çağrı yığınını izlemek için kullandığı yığın işaretçisi yazmaç iyi bir örnektir. Programcı olarak, büyük olasılıkla yığın işaretçisini doğrudan işlemezsiniz. Ancak, yığın işaretçisi olmadan işlemci bir işlev çağrısının sonunda nereye döneceğini bilmediğinden, programınızın düzgün çalışması için önemlidir.

Genel amaçlı yazmaçların çoğu yalnızca tek bir veri öğesini barındırıyor. Örneğin, bir dizinin tek bir tamsayı, kayan noktalı sayı veya öğesi. Bazı yeni işlemciler, küçük bir veri dizisini barındırabilen vektör yazmaçları olarak adlandırılan daha büyük yazmaçlara sahiptir. Çok fazla veri barındırdıkları için vektör yazmaçları dizileri içeren işlemlerin çok hızlı bir şekilde gerçekleştirilebilmesine izin verir. Vektör yazmaçları ilk olarak pahalı, yüksek performanslı süper bilgisayarlarda kullanılıyordu, ancak şimdi yoğun grafik işlemlerinde büyük avantaj sağlamak için kullanılan mikro işlemcilerde kullanılabilir hale geliyor.

Bir işlemci genellikle biri kayan nokta işlemleri için, diğeri tamsayı işlemleri için iyileştirilmiş iki genel amaçlı yazmaç kümesine sahiptir. Şaşırtıcı olmayan bir şekilde, bunlar kayan nokta ve tamsayı yazmaçları olarak adlandırılır.

Yönetilen kod, mikro işlemcinin fiziksel yazmaçlarına erişen yerel koda çalışma zamanında derlenir. Yazmaçlar penceresinde ortak dil çalışma zamanı veya yerel kod için bu fiziksel yazmaçlar görüntülenir. Yazmaçlar penceresi, betik ve SQL yazmaç kavramını desteklemeyen diller olduğundan, betik veya SQL uygulaması için yazmaç bilgilerini görüntülemez.

Yazmaçlar penceresini görüntüleme hakkında daha fazla bilgi için bkz. Yazmaçlar Penceresini Kullanma.

Yazmaçlar penceresine baktığınızda gibi EAX = 003110D8girdiler görürsünüz.

İşaretin = solundaki simge, EAXbu örnekte yazmaç adıdır. İşaretin sağındaki = sayı, yazmaç içeriğini temsil eder.

Yazmaçlar penceresi, bir yazmaç içeriğini görüntülemekten fazlasını yapmanıza olanak tanır. Yerel kodda kesme modundayken, bir yazmaç içeriğine tıklayabilir ve değeri düzenleyebilirsiniz. Bu rastgele yapmanız gereken bir şey değildir. Düzenlediğiniz kaydı ve içerdiği verileri anlamadığınız sürece dikkatsiz düzenlemenin sonucu büyük olasılıkla bir program kilitlenmesi veya başka bir istenmeyen sonuç olabilir. Ne yazık ki, çeşitli Intel ve Intel uyumlu işlemcilerin yazmaç kümelerinin ayrıntılı bir açıklaması bu kısa tanıtımın kapsamının çok ötesine geçmektedir.

Grupları kaydetme

Dağınıklığı azaltmak için, Yazmaçlar penceresi kayıtları gruplar halinde düzenler. Yazmaçlar penceresine sağ tıklarsanız, grupların listesini içeren ve uygun gördüğünüz şekilde görüntüleyebileceğiniz veya gizleyebileceğiniz bir kısayol menüsü görürsünüz.

Bayrakları kaydetme

Intel x86 işlemciler için, Yazmaçlar penceresinde aşağıdaki bayrakları görebilirsiniz. Hata ayıklama oturumu sırasında bu bayrakları da düzenleyebilirsiniz.

Bayrak Değeri ayarla
Taşma OV = 1
Yön UP = 1
Kesme EI = 1
Oturum aç PL = 1
Sıfır ZR = 1
Yardımcı taşıma AC = 1
Eşlik PE = 1
Sonraki basamağa geçirme CY = 1