Keşfedin, Öğrenin ve Paylaşın
Evrim Ağacı'nda Aradığın Her Şeye Ulaşabilirsin!
Paylaşım Yap
Tüm Reklamları Kapat

Assembly Registers

Registerlar Nedir?

4 dakika
131
Assembly Registers
  • Blog Yazısı
Blog Yazısı
Tüm Reklamları Kapat

Registerlar işlemci'nin çalıştığı esnada kullanılan değişkenlerdir. Registerlar işlemci çekirdeğindedir ve bu yüzden istenen işlemi hızlı bir şekilde işleme alabilmektedirler. Sınırlı sayıda bulunurlar. Registerler genel amaçlı kullanılabilecekleri gibi özel görevler içinde kullanılabilir.(İlk baştada dediğim gibi kısaca değişkenler denebilir.)

32 Bit Registers

EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI,EIP,EFLAGS

16 Bit Registers

AX,BX,CX,DX,BP,SP,SI,DI,CS,DS,SS,ES,FS,GS

Tüm Reklamları Kapat

8 Bit Registers

AH,AL,BH,BL,CH,CL,DH,DL

Registerlerin Sınıflandırılmış Halleri:

Data Registers = EAX,EBX,ECX,EDX,AX,BX,CX,DX,AH,AL,BH,BL,CH,CL,DH,DL

Pointer Registers = EBP,ESP,BP,SP

Index Registers = ESI,EDI,SI,DI

Tüm Reklamları Kapat

Segment Registers = CS,DS,SS,ES,FS,GS

x86 İşlemcisi 8 bitlik bir işlemcidir. Bu nedenle EAX şeklindeki bir register 32 bittir, fakat bu registerin ilk 16 bitlik bölümü AX ile ifade edilir. Bu AX şeklindeki 16 bitlik bölüm ise kendi içinde ilk 8 bitlik bölüm AL, sonraki 8 bitlik bölüm AH olmak üzere alt bölümleri bulunur. Ben 4 bytelık bir veri depolamak istersem EAX,EBX gibi 32 bitlik; 2 byte bilgi depolamak istersem AX,BX gibi 16 bit; eger 1 byte bilgi depolamak istersem AH,AL,BH,BL registerlerini kullanabilirim. AX,AH,AL registerleri EAX registerinin alt bölümleridir. AX,AL,AH bir bütün olarak EAX'dir. Sadece byteları aynı değildir.

AX : Accumulator Register, Dört işlemlerde kullanılır.

BX : Base Register, Memory lokasyonlarında adres göstericisi olarak kullanılır, yani index registeri gibi kullanılabilir.

Evrim Ağacı'ndan Mesaj

Evrim Ağacı'nın çalışmalarına Kreosus, Patreon veya YouTube üzerinden maddi destekte bulunarak hem Türkiye'de bilim anlatıcılığının gelişmesine katkı sağlayabilirsiniz, hem de site ve uygulamamızı reklamsız olarak deneyimleyebilirsiniz. Reklamsız deneyim, sitemizin/uygulamamızın çeşitli kısımlarda gösterilen Google reklamlarını ve destek çağrılarını görmediğiniz, %100 reklamsız ve çok daha temiz bir site deneyimi sunmaktadır.

Kreosus

Kreosus'ta her 50₺'lik destek, 1 aylık reklamsız deneyime karşılık geliyor. Bu sayede, tek seferlik destekçilerimiz de, aylık destekçilerimiz de toplam destekleriyle doğru orantılı bir süre boyunca reklamsız deneyim elde edebiliyorlar.

Kreosus destekçilerimizin reklamsız deneyimi, destek olmaya başladıkları anda devreye girmektedir ve ek bir işleme gerek yoktur.

Patreon

Patreon destekçilerimiz, destek miktarından bağımsız olarak, Evrim Ağacı'na destek oldukları süre boyunca reklamsız deneyime erişmeyi sürdürebiliyorlar.

Patreon destekçilerimizin Patreon ile ilişkili e-posta hesapları, Evrim Ağacı'ndaki üyelik e-postaları ile birebir aynı olmalıdır. Patreon destekçilerimizin reklamsız deneyiminin devreye girmesi 24 saat alabilmektedir.

YouTube

YouTube destekçilerimizin hepsi otomatik olarak reklamsız deneyime şimdilik erişemiyorlar ve şu anda, YouTube üzerinden her destek seviyesine reklamsız deneyim ayrıcalığını sunamamaktayız. YouTube Destek Sistemi üzerinde sunulan farklı seviyelerin açıklamalarını okuyarak, hangi ayrıcalıklara erişebileceğinizi öğrenebilirsiniz.

Eğer seçtiğiniz seviye reklamsız deneyim ayrıcalığı sunuyorsa, destek olduktan sonra YouTube tarafından gösterilecek olan bağlantıdaki formu doldurarak reklamsız deneyime erişebilirsiniz. YouTube destekçilerimizin reklamsız deneyiminin devreye girmesi, formu doldurduktan sonra 24-72 saat alabilmektedir.

Diğer Platformlar

Bu 3 platform haricinde destek olan destekçilerimize ne yazık ki reklamsız deneyim ayrıcalığını sunamamaktayız. Destekleriniz sayesinde sistemlerimizi geliştirmeyi sürdürüyoruz ve umuyoruz bu ayrıcalıkları zamanla genişletebileceğiz.

Giriş yapmayı unutmayın!

Reklamsız deneyim için, maddi desteğiniz ile ilişkilendirilmiş olan Evrim Ağacı hesabınıza yapmanız gerekmektedir. Giriş yapmadığınız takdirde reklamları görmeye devam edeceksinizdir.

CX : Counter Register, Loop işlemlerinde sayaç olarak kullanılır, döngü kaç defa daha dönecek bunun sayısını tutar.

DX : Data Register, Donanım ile yapılan giriş çıkış işlemlerinde kullanılır.

CS : Code Segment Register, Segmentler bellekte bir alt bölümü işaret ederler. En önemli segment kod segmentdir. İçinde yazdığımız programın komutları yer alır. Hem programcı hemde kullanılan işletim sistemi kod segmentteki komutlar üzerine başka dataların yazılmayacağının garantisini almalıdır. Aksi taktirde programımız garip hatalar verir ve kitlenir. Programların sağlıklı çalışmaları için Code Segment içeriği en önemli noktadır.

DS : Data Segment Register, Programımızı yazarken kullandığımız değişkenler, arraylar ayrıca çalışma anında oluşturulan değişken tiplerinin tamamı bu segment altında tutulur.

SS : Stack Segment Register, Stack özel bir data segment tipidir. Alt programlardan, Fonksiyonlardan kodlar yürütülmeden önce gerekli değişkenler bu segmente sadece bu amaçla kullanılan bir Assembly komutu ile alınırlar. Daha sonra çağırma (CALL) işlemi yapılır. Önemli olan çalışma prensibini anlamaktır. Data segmentlerde olduğu gibi istenilen adresden veri çekebilmektedir. Farkı ise stack'e yollanan son verinin çağırılma esnasında ilk olarak geri dönmesidir. Son giren-ilk çıkar mantığı. Veriler stackin sonundan başına doğru alınırlar.(Bir kutuya 10 tane kitap koyduğunuzu düşünün. bu kitaplardan hangisini ilk koyarsanız en son onu çıkartacaksınız fakat hangisini en son koyarsanız ilk onu çıkartacaksınız). Stack'e son yollanan veri "SP" isimli Stack Pointerla işaret edilir.

ES : Extra Data Segment Register, Data segment ile aynı özelliklere sahiptir. Özel olarak bu segmenti kullanan birkaç komut bulunmaktadır.

Tüm Reklamları Kapat

FS,GS : Bu segment registerleri ihtiyaç olduğu zaman kullanılmaktadır. Aslında ek olarak kullanılan Data Segment Registerleridir.

BP : Base Pointer, Stack segmentin başlangıç noktasını gösterir. Yani genelde içeriği sıfırdır.

SP : Stack Pointer, Stack segment içine gönderilmiş olan son değerin adresini gösterir. Stack içine veriler yollandıkça değeri azalır çünkü veri segmentin sonundan başına doğru alınır. Veriler stackdan çekildikçe değeri artar, böylece eski verileri gösterir.

Tüm Reklamları Kapat

Not: BP ve SP aslında SI ve DI gibi segmentler içindeki verinin adresini gösterirler. Stack Segmentin özel bir çalışma şekli olduğu için bu Pointer registerleri özel olarak sadece Stack Segmentin sağlıklı çalışması için görev yapmaktadır.

SI : Source Index, Data segment ve/veya istenirse başına küçük bir tanımlama eklenerek diğer data segmentlerdeki verileri de göstermek için kullanılan bir index (işaretçi) registerdir.

DI : Destination Index, SI ile tamamen aynı özelliklere sahiptir. Fakat SI ve DI bazı string komutları tarafından kaynak ve hedef işaretçisi olarak da kullanılır.

IP : Bir pointer registerdir. Çok özel bir pointer'dır. Code Segment içinde işlenecek bir sonraki komutun yerini işaret eder. Yaptığınız işten emin olmadan üzerinde oynama yapmamalısınız.

Tüm Reklamları Kapat

FLAGS : 32 bitlik yine çok özel bir işlevi olan registerdir. Bu registerin içerisindeki bitler çok önemlidir. Bazı bitler anlamsızdır, diğerleri ise daha önce işlenen komutların sonuçları ile ilgili bilgiler verir. Örneğin CMP komutu ile iki sayı karşılaştırılır ise sayıların eşit olma veya birinin diğerine göre büyük olması bu register içindeki bazı bitleri 1 (set) veya 0 (reset) durumuna getirecektir. Daha sonra kullanılacak bir dallanma komutu ile bu flaglar kontrol edilerek sonuca göre belirli adreslere dallanmalar yapılır. Bazı komutlar işleyişleri sırasında bu registeri gizli olarak kullanır.

Aşağıda hangi Segmentlerin hangi pointer registerlar ile kullanılabilecekleri gösterilmiştir:

  • CS:IP
  • DS:SI
  • DS:DI
  • SS:BP
  • SS:SP
Okundu Olarak İşaretle
1
0
  • Paylaş
  • Alıntıla
  • Alıntıları Göster
Paylaş
Sonra Oku
Notlarım
Yazdır / PDF Olarak Kaydet
Raporla
Mantık Hatası Bildir
Yukarı Zıpla
Bu Blog Yazısı Sana Ne Hissettirdi?
  • Umut Verici! 1
  • Mmm... Çok sapyoseksüel! 1
  • Merak Uyandırıcı! 1
  • Muhteşem! 0
  • Tebrikler! 0
  • Bilim Budur! 0
  • Güldürdü 0
  • İnanılmaz 0
  • Üzücü! 0
  • Grrr... *@$# 0
  • İğrenç! 0
  • Korkutucu! 0
Tüm Reklamları Kapat

Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?

Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:

kreosus.com/evrimagaci | patreon.com/evrimagaci

Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 24/04/2025 09:50:43 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/11873

İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.

Aklımdan Geçen
Komünite Seç
Aklımdan Geçen
Fark Ettim ki...
Bugün Öğrendim ki...
İşe Yarar İpucu
Bilim Haberleri
Hikaye Fikri
Video Konu Önerisi
Başlık
Bugün bilimseverlerle ne paylaşmak istersin?
Gündem
Bağlantı
Ekle
Soru Sor
Stiller
Kurallar
Komünite Kuralları
Bu komünite, aklınızdan geçen düşünceleri Evrim Ağacı ailesiyle paylaşabilmeniz içindir. Yapacağınız paylaşımlar Evrim Ağacı'nın kurallarına tabidir. Ayrıca bu komünitenin ek kurallarına da uymanız gerekmektedir.
1
Bilim kimliğinizi önceleyin.
Evrim Ağacı bir bilim platformudur. Dolayısıyla aklınızdan geçen her şeyden ziyade, bilim veya yaşamla ilgili olabilecek düşüncelerinizle ilgileniyoruz.
2
Propaganda ve baskı amaçlı kullanmayın.
Herkesin aklından her şey geçebilir; fakat bu platformun amacı, insanların belli ideolojiler için propaganda yapmaları veya başkaları üzerinde baskı kurma amacıyla geliştirilmemiştir. Paylaştığınız fikirlerin değer kattığından emin olun.
3
Gerilim yaratmayın.
Gerilim, tersleme, tahrik, taciz, alay, dedikodu, trollük, vurdumduymazlık, duyarsızlık, ırkçılık, bağnazlık, nefret söylemi, azınlıklara saldırı, fanatizm, holiganlık, sloganlar yasaktır.
4
Değer katın; hassas konulardan ve öznel yoruma açık alanlardan uzak durun.
Bu komünitenin amacı okurlara hayatla ilgili keyifli farkındalıklar yaşatabilmektir. Din, politika, spor, aktüel konular gibi anlık tepkilere neden olabilecek konulardaki tespitlerden kaçının. Ayrıca aklınızdan geçenlerin Türkiye’deki bilim komünitesine değer katması beklenmektedir.
5
Cevap hakkı doğurmayın.
Aklınızdan geçenlerin bu platformda bulunmuyor olabilecek kişilere cevap hakkı doğurmadığından emin olun.
Size Özel
Makaleler
Daha Fazla İçerik Göster
Popüler Yazılar
30 gün
90 gün
1 yıl
Evrim Ağacı'na Destek Ol

Evrim Ağacı'nın %100 okur destekli bir bilim platformu olduğunu biliyor muydunuz? Evrim Ağacı'nın maddi destekçileri arasına katılarak Türkiye'de bilimin yayılmasına güç katın.

Evrim Ağacı'nı Takip Et!
Yazı Geçmişi
Okuma Geçmişi
Notlarım
İlerleme Durumunu Güncelle
Okudum
Sonra Oku
Not Ekle
Kaldığım Yeri İşaretle
Göz Attım

Evrim Ağacı tarafından otomatik olarak takip edilen işlemleri istediğin zaman durdurabilirsin.
[Site ayalarına git...]

Filtrele
Listele
Bu yazıdaki hareketlerin
Devamını Göster
Filtrele
Listele
Tüm Okuma Geçmişin
Devamını Göster
0/10000

Bize Ulaşın

ve seni takip ediyor

Göster

Şifremi unuttum Üyelik Aktivasyonu

Göster

Şifrenizi mi unuttunuz? Lütfen e-posta adresinizi giriniz. E-posta adresinize şifrenizi sıfırlamak için bir bağlantı gönderilecektir.

Geri dön

Eğer aktivasyon kodunu almadıysanız lütfen e-posta adresinizi giriniz. Üyeliğinizi aktive etmek için e-posta adresinize bir bağlantı gönderilecektir.

Geri dön

Close