Temel Bilgisayar dediğimizde aklımıza en basit anlamda işlem yapma kabiliyetine sahip bir sistem gelmelidir. Buna dayanarak temel bilgisayarda 2 temel bileşen olduğunu söyleyebiliriz. Bunlar; İşlemci ve Bellektir. 

Von Neumann Mimarisinde kabul edilmiş 2 önerme vardır. 

1.Bilgisayar programlarının en temel parçası olan buyruklar bellekte bulunur. 

2.Bilgisayar buyrukları ile işlenen veriler bellekte tutulur. 

 

Peki bu Buyruk nedir? 

Buyruk kodu temelde kapasiteye ve belleğe göre belirlenmiş bir grup bitten oluşur. Bu 16 bit bilgisayara belli bir işi yapmasını söyler. Buyruk tiplerine göre bir kaç kısma ayrılır ve genelde 2 kısımdan oluşur. Bu parçalar yukarıdaki şekilde de görebileceğimiz gibi Adres ve İşlem Kodu parçalarıdır.

Buyruğun en önemli parçası hangi işlemin gerçekleşeceğini bize söyleyen İşlem Kodu kısmıdır. İşlem Kodu kısmında bitler toplama, çıkarma, çarpma, kaydırma ve tümleme gibi birtakım işlemler tanımlanır. Denetim birimi buyruğu bellekten alır ve işlem kodunun bitletini anlamlandırır. Bu anlamlandırmadan sonra ise bilgisayar yazaçlarında bazı mikro işlemleri başlatmak üzere bir dizi denetim sinyali verilmeye başlanır. 

Buyruktaki Adres kısmında ise buyruğun kendisine tanımlanan işi yapacağı verinin adresi tutulur. Buyruğun alanının büyük bir kısmı adresleme için ayrılmıştır.

Buyruklar belleğin bir kısmında tutulurken veriler başka bir kısmında tutulur. 12 bit adres uzunluğuna sahip olan bir buyruk kodu 4096 kelimelik (2^12= 4096) bir belleği çalıştırabilir. Böylelikle 16 bitlik bir buyruk kodundan geriye 4 bitlik işlem kodu yeri kalır. Denetim kısmı 16 bitten önce 12 biti okuyarak işlemin hedeflendiği veriyi bulur ve ardından 4 bitlik işlem kodunu okuyarak belirlenen işlemi yerine getirir. 

Ani Buyruk Nedir? 

Buyruk kodunun içerisindeki adres bitleri bazı durumlarda bir adres yerine gerçek veriyi barındırabilir. Eğer bir buyruğun adres kısmında bir veri varsa bu buyruk tipine Ani Buyruk denir. 

Doğrudan Adresleme-Dolaylı Adresleme Nedir?

Eğer buyruğun Adres parçasında bir verinin adresi varsa yani o adres direkt olarak veriye ulaşmamızı sağlıyorsa bu buyruk doğrudan adrese sahiptir denir.

Ancak Adres parçasındaki adres bizi başka bir adrese yönlendiriyorsa yani direkt olarak veriye ulaşamıyorsak bu buyrukta dolaylı adreslenmiş olur. 

Buyruk kodu içerisinde ayrılmış 1 bit ile bunu anlayabilmemiz mümkündür. İşlem Kodu'nun 14.bitinden 15.bitine kadar olan kısım eğer 0 ise Doğrudan Adresleme durumu söz konusudur. Ancak bu bitin değeri 1 olursa buyruk dolaylı adreslenmiştir diyebiliriz. 

Hangi adresin sonucunda veriye ulaşıyorsak o adrese Etkin Adres deriz. Dolaylı adresleme mantığı diğer dillerdeki Pointer mantığına benzerlik göstermektedir. 

Buyruk Biçimleri Nelerdir? 

Bazı buyrukların görevleri bellekteki verilerle ilgili olmaz. Bu durumda adres kısmında herhangi bir verinin adresini tutmak zorunda da kalmazlar. Böyle durumlarda Adres bitlerinden kalan boşluklara başka işlemler yerleştirilebilir. Böylelikle de farklı buyruk biçimleri oluşur. 

Buyrukların formatları ve biçimleri yukarıdaki resimde gösterilmiştir. Buyruk biçimleri özetle 3'e ayrılır. Bunlar; 1.Bellek Referanslı Buyruklar ki bu tip buyruklar bellekten gelen verilerle işlem yaparlar ve bir adres bölümleri vardır. 2.Yazaç Referanslı Buyruklar da veri kısmı olmadığı için daha çok işleme imkan sağlanmıştır. 3.Giriş-Çıkış Referanslı Buyruklar. 

Bellek Referanslı Buyruklar 

İlk olarak gördüğümüz tipteki buyruklardır. I biti olan adresleme biti, İşlem Kodu ve verinin gösterildiği Adres bölümünden oluşurlar. 

Bu kısımda 7 adet buyruk vardır. 

AND: Bellekteki veriyi AC ile And'ler ve sonucu AC yazacına aktarır. 

ADD: Bellekteki veriyi AC yazacındaki değerler toplar ve sonucu AC yazacına aktarır. 

LDA: Bellekteki veriyi AC yazacına aktarır. 

STA: AC yazacındaki değere belleğe aktarır. 

BUN: Şartsız dallanmadır. PC yazacı buyruğun adresini tutar ve buyruk sona erdiğinde değeri bir arttırılır. 

BSA: Dallanma gerçekleştikten sonra bir sonraki buyruğun adresi PC yazacından belleğe aktarılır ve saklanır. 

ISZ: Hedeflendiği yerdeki değeri 1 arttırır. Eğer değer 0'sa orada işlem yapmadan PC yazacı bir arttırılarak oradan atlanır. 

 

Yazaç Referanslı Buyruklar 

Bellektek veri üzerinde işlem yapılmayacağı için açıkta kalan bitler sayesinde daha çok işlem tanımlanabilir. Bu buyruklar 12 tanedir. İlk 7 yazaç referanslı buyruk sil, tümleme, dairesel kaydırma ve arttırma mikro işlemlerini gerçekleştirir. Sonraki 4 buyruk bir sonraki buyruğun atlanması olayını gerçekleştirir. Bunun için belirli bir şart lazımdır. 

Bu tip buyrukların HEX kodu 7 ile başlar. 

CLA: AC yazacının değerini temizle. (7800)

CLE: E flagının değerini temizle. (7400)

CMA: AC yazacının tümleyenini alır. (7200)

CME: E flagının tümleyenini alır. (7100)

CIR: AC yazacını ve E flagını dairesel olarak sağa kaydırır. (7080)

CIL: AC yazacını ve E flagını dairesel olarak sola kaydırır. (7040)

INC: AC yazacının değerini 1 arttırır. (7020)

SPA: AC yazacının değeri eğer pozitifse PC yazacını bir arttırır ve atlar. (7010)

SNA: AC yazacının değeri eğer negatifse PC yazacını bir arttırır ve atlar. (7008)

SZA: AC yazacının değeri eğer sıfırsa PC yazacını bir arttırır ve atlar. (7004)

SZE: E flagının değeri eğer sıfırsa PC yazacını bir arttırır ve atlar. (7002)

HLT: Başlangıç yaz-bozu olan S'yi sıfırlar ve PC'yi saydırmaz, durdurur. (7001)

 

Giriş-Çıkış Referanslı Buyruklar 

Bu tip buyruklar AC yazacının içine ve AC yazacından dışarıya bilginin aktarımı için gereklidir. Ayrıca bu buyruklarla bayran bitleride denetlenir. Kesmelerde de yine bu buyruklar görev oynar. 

Bu tip buyruklarda işlem kodu 1111'dir. Buyruğun kalan bitleri özel işlemler için ayrılmıştır. 

Bu tip buyrukların HEX kodu F ile başlar. Ve bu buyruklar 6 tanedir. 

INP: AC yazacına bilginin girmesini sağlar. (F800)

OUT: AC yazacından bilginin çıkmasını sağlar. (F400)

SKI: Giriş bayrağını atlar. (F200)

SKO: Çıkış bayrağını atlar. (F100)

ION: Kesmeyi aktif hale getirir. (F080)

IOF: Kesmeyi durdurur. (F040)

 

Buyrukları tanımaya ve diğer özelliklerini incelemeye ilerleyen yazılarımızda devam ediyor olacağız! Bizi takipte kal!