Kayıtlar

Assembly Alt Rutin ve Kaydırma Örnekleri

  1. Örnek --Assembly kodu ORG 100   / Programın başlangıcı 100 belirtilmiştir LDA x    / x'i AC'ye yükle BSA KAYDIR   /   KAYDIR alt rutinine dallan STA x  / x'i sakla LDA z  / z'yi AC'ye yükle BSA KAYDIR  / KAYDIR alt rutinine dallan STA z  / z'yi sakla HLT  / Bilgisayarı durdur x, HEX ABCD  / Onaltılı operand x y, HEX DBDB  / İkili operand y KAYDIR, HEX 0  / Dönüş adresini buraya saklar CIL  / Dairesel sola 1 kez kaydır AND MSK  / AC (16) yı 0 yap BUN KAYDIR  / Ana programa dönüş MSK, HEX FFFE  / Mask operandı: en sol biti 0 yapar END  / Program sonu Assembly kodu-- Bu kodların her biri, işlemcinin çeşitli işlemleri gerçekleştirmesi için talimatlar veriyor. Aşağıda her satırı tek tek açıklıyorum: 1. ORG 100:    - Anlamı: Programın bellekte başlayacağı adresi belirtir. Bu durumda programın başlangıç adresi 100 olarak belirlenmiştir. 2. LDA x:    - Anlamı: x adresindeki ve...

Assembler ile Aritmatik Kaydırma

Negatif sayıların gösterimine bağlı olarak temel bilgisayarda 2'li komplement gösterimi kullanılır. En soldaki işaret birinin aynı kalmalıdır. Aritmatik Sağ Kaydırma - Bu durumda, E FF'sine işaret biti ile aynı değer verilir. CLE              / E=0 SPA              / Eğer AC>0 (pozitif ise) atla, E=0 CME              / AC<0 (negatif ise) E=1 CIR              / E ve AC'yi dairesel olarak kaydır Aritmatik Sola Kaydırma - En az değerli bit'in olduğu yerden 0 eklenmeli. - Bu E=0 tanımlanarak yapılabilir. - İşaret bit'i kaydırma sırasında değişmemelidir. - İşlem sonrasında E bit'i ve işaret bit'i karşılaştırılmalıdır. - Eğer iki değer aynı ise işlem doğru olarak tanımlanmıştır. - Fakat iki işlem farklıysa taşma(overflow) olmuş demektir. - Kaydırma yapılmadan önceki sayı değeri çok büyük olduğundan, kaydırma sonucu akümülatör AC kapasitesi yetersiz ...

Üç Bitlik Alanların Sembol ve Kodları

Resim
Bu yazımda, F1, F2 ve F3 alanlarının sembol ve ikili kodlarının tanımlandığı üç tablo bulunuyor. Her bir tablo, mikroişlemlerle ilgili bilgileri içeriyor. F1 Alanı Mikroişlemleri - NOP (No operation) : İşlem yapılmaz. - ADD : AC ( Accumulator ) register'ına DR ( Data Register ) register'ındaki değer eklenir. - CLRAC : AC register'ı sıfırlanır. - NCAC : AC register'ı 1 artırılır. - DRTAC : DR register'ındaki değer AC register'ına aktarılır. - DRTAR : DR register'ındaki 0-10 bitler AR ( Address Register ) register'ına aktarılır. - PCTAR : PC ( Program Counter Program) register'ındaki değer AR register'ına aktarılır. - WRITE : M[AR] ( Memory Address Register ) adresindeki bellek hücresine DR register'ındaki değer yazılır. F2 Alanı Mikroişlemleri - NOP (No Operation) : İşlem yapılmaz. - SUB : AC register'ından DR register'ındaki değer çıkarılır. - OR : AC register'ı ile DR register'ı arasında bit düzeyinde OR i...

64 Bit İşlemcilerin 32 Bit İşlemcilere Göre Avantajları

Resim
64 bit işlemciler, 32 bit işlemcilere göre çeşitli avantajlar sunar. Bu avantajlar, performans, bellek adresleme, güvenlik ve uygulama destekleri gibi birçok alanda kendini gösterir. İşte 64 bit işlemcilerin 32 bit işlemcilere göre başlıca avantajları: 1. Daha Büyük Bellek Adresleme Kapasitesi - 32 bit İşlemci : En fazla 4 GB RAM adresleyebilir. (2^32 = 4,294,967,296 byte) - 64 bit İşlemci : Teorik olarak 16 exabyte (2^64 = 18,446,744,073,709,551,616 byte) RAM adresleyebilir. Pratikte bu limit, donanım ve işletim sistemi sınırlamaları nedeniyle daha düşüktür ama genellikle onlarca terabyte olabilir. 2. Daha Hızlı İşlem ve Performans - Geniş Veri Yolları : 64 bit işlemciler, her işlemde 64 bitlik veri işleyebilir, bu da büyük veri işlemlerinde ve yoğun hesaplamalarda performans artışı sağlar. - Daha Geniş Kayıtlar : 64 bit işlemciler, daha geniş ve daha fazla sayıda genel amaçlı kayıtlar sunar, bu da daha karmaşık ve optimize edilmiş algoritmaların daha verimli çalışmasına olanak tanır....

Turing Makineleri

Resim
Turing makinesi, bilgisayar bilimlerinde ve teorik hesaplama teorisinde önemli bir kavramdır. Alan Turing tarafından 1936 yılında tanıtılmıştır. Turing makinesi, teorik hesaplama modelidir ve modern bilgisayarların temelini oluşturan hesaplama kavramlarının bir soyutlamasıdır. Turing makinesi, bir teyp üzerinde sınırsız bir bellek şeridi ve bir kontrol birimiyle tanımlanır. Bellek şeridi, hücrelerden oluşur ve her hücre bir sembol alabilir. Kontrol birimi, bir dizi kurala dayalı olarak belirli işlemleri gerçekleştirir. Turing makinesinin temel özellikleri şunlardır: 1. Bellek Şeridi (Tape) : Turing makinesinin belleği, sınırsız uzunluktaki bir teyp üzerinde temsil edilir. Her bir hücre bir sembol alabilir. Bu bellek, giriş verilerini, ara sonuçları ve sonuçları saklamak için kullanılır. 2. Okuma ve Yazma Kafası (Head) : Okuma ve yazma kafası, bellek şeridinin üzerinde hareket eden ve semboller okuyan veya yazan bir araçtır. Her adımda, kafanın konumu değişebilir ve kafanın altındaki se...

Modern Donanım Bileşenleri

Resim
Modern Donanım Bileşenleri: Bilgisayar Teknolojisinin Temel Taşları Bilgisayarlar, günümüzde hayatımızın her alanında önemli bir rol oynamaktadır. Bu cihazlar, karmaşık bir sistem içinde bir araya getirilmiş çeşitli donanım bileşenleri tarafından desteklenir. Modern bilgisayar teknolojisinin kalbi, bu bileşenlerin etkileşimiyle atar. Gömülü yazılım bileşenlerini (Rom/BİOS vs.) saymazsak bir şey yapamazlar. Fakat işletim sistemi ve üzerindeki programların gerektiği gibi çalışmasını etkileyen birimlerdir. İşte bu bileşenlerin bazıları ve işlevleri: 1. Merkezi İşlem Birimi (CPU - Central Processor Unit) Bilgisayarın "beyni" olarak düşünülebilir. CPU, bilgisayarın tüm hesaplama ve işleme görevlerini yerine getiren, komutları yürüten ve verileri işleyen bir mikroişlemcidir. CPU, birçok işlemi sıralı olarak gerçekleştirir. İşlemcinin temel görevleri arasında aritmetik işlemler yapma, mantıksal kararlar alma, bellekten veri okuma ve yazma, giriş/çıkış işlemlerini yönetme gibi işleml...

C++ Programlama Dilinde Dizilerin Kullanımı

C++ programlama dilinde diziler, aynı türdeki verilerin bir koleksiyonunu saklamak için kullanılan temel veri yapılarından biridir. Bir dizi, sabit boyutlu bir veri koleksiyonunu temsil eder. Her öğe, bir indis (index) kullanılarak erişilebilir. Bu makalede, C++ dilinde dizilerin nasıl tanımlandığını, kullanıldığını ve temel operasyonlarını inceleyeceğiz. Dizi Tanımı C++ dilinde bir dizi tanımlamak için, öncelikle dizinin elemanlarının türünü ve boyutunu belirtmelisiniz. Örneğin, bir tam sayı dizisi tanımlamak için şu şekilde bir kod kullanabilirsiniz: cpp kodu int numbers[5]; // 5 elemanlı bir tam sayı dizisi tanımlandı Yukarıdaki kodda, `numbers` adında bir dizi tanımlanmıştır ve boyutu 5 olarak belirtilmiştir. Bu dizi, 0'dan 4'e kadar indislenmiştir. Dizi Elemanlarına Erişim Dizi elemanlarına erişmek için, dizi adını ve ardından indis numarasını kullanırız. İndisler 0'dan başlar. Örneğin, `numbers` dizisinin 3. elemanına erişmek için şu kodu kullanabiliriz: cpp kodu int...