5.2 Komut Biçimleri Komut Setleri İçin Tasarım Kararları

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "5.2 Komut Biçimleri. 5.2.1 Komut Setleri İçin Tasarım Kararları"

Transkript

1 5.2 Komut Biçimleri Makine komutunun bir işlem kodu ile sıfır veya daha çok işleneni olduğunu biliyoruz. Mimariler, komut başına izin verilen bit sayısına (en yaygın olanları 16, 32 ve 64 tür), işlenen sayısına, komut türlerine ve her birinin işleyebileceği veri türlerine göre birbirinden ayrılır. Daha belirli bir biçimde, komut setleri aşağıdaki özelliklere göre ayrılır: İşlenenlerin CPU da saklanması (veri bir yığın yapısında veya yazmaçlarda saklanabilir) Komut başına açık işlenen sayısı (sıfır, bir, iki ve en yaygın olarak üç) İşlenenin yeri (komutları yazmaçtan yazmaça, yazmaçtan hafızaya ve hafızadan hafızaya olarak sınıflandırabiliriz: Komut başına izin verilen işlenen kombinasyonları) İşletimler (sadece işletim türlerini değil, aynı zamanda hangi komutların hafızaya ulaşabileceğini, hangilerinin ulaşamayacağını da kapsar) İşlenenlerin tür ve boyutları (işlenenler adresler, sayılar veya karakterler olabilir) Komut Setleri İçin Tasarım Kararları Bir bilgisayar mimarisi tasarım aşamasındayken komut seti biçimi verilecek diğer birçok karardan önce belirlenmelidir. Bu biçimi seçmek genellikle çok zordur. Çünkü komut seti mimari ile eşleşmek zorundadır ve eğer mimari iyi tasarlanmışsa yıllarca kullanılacaktır. Tasarım fazı esnasında verilen kararların uzun vadeli sonuçları vardır. Komut seti mimarileri (ISA) çok sayıda farklı faktör ile ölçülür: 1. Bir programın ihtiyaç duyduğu boş alan miktarı. 2. Bir komutu yürütmek için gerekli kod çözme miktarı olarak komut setinin karmaşıklığı ve komutlar tarafından gerçekleştirilen görevlerin karmaşıklığı. 3. Komutların uzunluğu. 4. Komutların toplam sayısı. Bir komut setini tasarlarken göz önünde tutulması gereken şeyler aşağıdaki gibidir: Kısa komutlar genellikle daha iyidir, çünkü hafızada daha az boş alana ihtiyaç duyarlar ve daha hızlı işlem görürler. Ancak bu komut sayısını sınırlar, çünkü istediğimiz sayıda komut belirtmek için komutta yeterli miktarda bit bulunmalıdır. Sabit uzunluktaki komutlar kod çözmek için daha kolaydır, ancak boşa alan harcar. Hafıza organizasyonu komut biçimini etkiler. Örneğin hafızada 16 veya 32-bit kelime varsa ve byte-adreslenebilir değilse, tek karaktere erişmek zor olur. Bundan dolayı 16, 32 veya 64 bit kelimelik makineler genellikle byte adreslenebilirdir, yani kelimeler 1 byte tan daha uzun olmasına rağmen her byte benzersiz birer adrese sahiptir. Sabit uzunluktaki bir komut sabit sayıdaki bir işleneni göstermek zorunda değildir. Sabit uzunluktaki komutları kullanarak bir komut seti mimarisi (ISA) tasarlayabiliriz, ancak işlenen alanındaki bit sayısının gerekli olduğunda değişmesine izin vermeliyiz. (Buna genişleyen işlem kodu expanding opcode denir ve Bölüm de detaylı olarak işlenmektedir.) Adresleme kiplerinin direk ve dolaylı gibi birçok türü bulunmaktadır. Ayrıca bu bölümde adresleme kiplerinin çok çeşitli olduklarını görüyoruz.

2 Eğer kelimeler çoklu byte lardan oluşuyorsa, bu byte lar byte-adreslenebilir bir makinede hangi sırada depolanabilir? En az anlamlı (least significant) byte en yüksek byte adresinde mi, yoksa en alçak byte adresinde mi tutulmalıdır? Sonraki bölümde küçük endiana karşı büyük endian konusundan bahsedecektir. Mimari ne kadar yazmaç (register) içermelidir ve bu yazmaçlar nasıl organize edilmelidir? İşlenenler CPU da nasıl depolanmalıdır? Küçük ve büyük endian tartışması, genişleyen işlem kodları ve CPU yazmaç organizasyonu ilerideki bölümlerde ele alınacaktır. Bu konuları tartışırken listelenen diğer tasarım konularına da değiniyoruz Küçük vs. Büyük Endian Endian terimi bir bilgisayar mimarisinin byte düzeni dir veya çoklu byte veri elemanının byte larını depolama şeklidir. Günümüzde hemen tüm bilgisayar mimarileri byteadreslenebilirdir ve birden daha fazla byte ihtiyacı olan bilgilerin depolanması için bir standarda sahip olmak zorundadır. Örneğin bazı makineler, bir 2-byte tamsayıyı en düşük adresteki en az anlamlı byte tan en anlamlı byte a doğru ilerleyerek depolar. Bu yüzden düşük adrestki bir byte düşük öneme sahiptir. Bu makinelere küçük endian makineleri denir. Diğer makineler bir 2-byte tamsayıyı en anlamlı byte tan en az anlamlı byte a doğru ilerleyerek depolar. Bu makinelere de büyük endian makineleri denir. Pek çok UNIX makinesi big endiandır, ancak pek çok PC de küçük endian makinesidir. Pek çok yeni RISC mimarileri de big endiandır. Bu iki terim, küçük ve büyük endian, Gulliver in Yolculuğu isimli kitaptan gelmektedir. Hikayede Lilliputians (küçük insanlar) iki kampa ayrılmıştır: yumurtayı büyük tarafını kırarak yiyenler (büyük endian) ve küçük tarafını kırarak yiyenler (küçük endian). CPU üreticileri de iki gruba ayrılmıştır. Örneğin Intel her zaman küçük endianı kullanırken, Motorola büyük endianı kullanmıştır. (Bazı CPU lar hem küçük hem de büyük endianla çalışabilmektedir.) Örneğin, 4 byte a ihtiyaç duyan bir tamsayıyı ele alalım: Bu sayı küçük endian makinesinin hafızasında aşağıdaki gibi düzenlenir: Base Address + 0 = Byte0 Base Address + 1 = Byte1 Base Address + 2 = Byte2 Base Address + 3 = Byte3 Büyük endian makinesinde uzun tamsayı aşağıdaki gibi depolanır: Base Address + 0 = Byte3 Base Address + 1 = Byte2 Base Address + 2 = Byte1 Base Address + 3 = Byte0

3 Byte adreslenebilir bir makinede 32-bit onaltılı değerinin 0 adresinde depolandığını varsayalım. Her bir rakam yarım byte a ihtiyaç duymaktadır, böylece bir byte iki rakam tutabilir. Bu onaltılı değer Şekil 5.1 de gösterildiği gibi hafızada depolanır (gölgeli hücreler hafızadanın güncel içeriğini göstermektedir.). Şekil 5.1: onaltılı değerinin küçük ve büyük endian biçimlerinde depolanması. Bir metod diğerinden daha iyi olmak zorunda olmadığı gibi her iki metodun da avantaj ve dezavantajları bulunmaktadır. Büyük endian pek çok insana daha doğal gelmektedir ve bu da onaltılı dökümleri okumayı kolaylaştırır. İlk olarak high-order byte lar getirilir, sayının pozitif veya negatif olduğu sıfır konumundaki byte a bakılarak her zaman test edilebilir. (Bunu küçük endianla karşılaştırırsak, küçük endianda sayının uzunluğunu bilmelisiniz ve sonra işaret bilgisini içereni bulmak için byte ları atlamalısınız) Big endian makineleri tamsayıları ve stringleri aynı düzende depolar ve bazı string işlemlerinde daha hızlıdır. Pek çok nokta esaslı grafik soldaki en anlamlı bit düzeniyle eşlenir, yani bir byte tan daha büyük grafik öğeleriyle çalışmak mimarinin kendisi tarafından yürütülür. Bu küçük endian bilgisayarları için bir performans sınırlamasıdır. Çünkü büyük grafik nesneleriyle çalışıldığında sürekli olarak byte düzenini tersine çevirmelidirler. Huffman ve LZW (Bölüm 7 de bahsedilmektedir.) gibi şemalarla şifrelenmiş olan sıkıştırılmış verinin şifresinin çözülmesi esnasında, o andaki kod kelimesi eğer big endianda depolanıyorsa arama tablosu içinde bir dizin olarak kullanılabilir (bu aynı zamanda şifreleme için de geçerlidir). Big endianın iki dezavantajı vardır. 32-bit tamsayı adresinden 16-bit tamsayı adresine çevrim yaparken gerekli toplama işlemini yapmak için big endian makinesine ihtiyaç vardır. Küçük endiandaki yüksek duyarlıklı aritmetik daha hızlı ve daha kolaydır. Büyük endian kullanan pek çok mimari kelimelerin kelime olmayan adres sınırlarına izin vermez. Örneğin bir kelime 2 veya 4 byte ise, daima çift sayılı bir byte adresinde başlaması gerekmektedir. Bu da boş alanların israf edilmesine yol açar. Intel gibi küçük endian mimarileri, bu makinelerde programlamayı kolaylaştıran tek adres okuma ve yazmaya izin verir. Eğer bir programcı yanlış bir kelime büyüklüğünün değerini okutmak için bir komut yazarsa, büyük endian makinesinde daima yanlış değer olarak okunur; küçük endian makinesinde ise bazen doğru değer olarak okunabilir. (Intel sonunda byte düzenini ters çeviren bir komutu yazmaçlarına ekledi.) Bilgisayar ağları büyük endiandır. Bu nedenle küçük endian makineleri ağ üzerinden tamsayılar gönderecek olurlarsa (örneğin ağ aygıtı adresleri), o sayıları ağın byte düzenine çevirmelidirler. Aynı şekilde eğer ağ üzerinden tamsayılar alacak olurlarsa da o sayıları kendi doğal düzenlerine çevirmelidirler. Küçük ve büyük endian arasındaki bahse pek aşina olmayabilirsiniz, ancak bu pek çok güncel yazılım uygulaması için önemli bir konudur. Bir dosyadan veri okuyan ya da yazan bir program söz konusu makinenin byte düzeni ile ilgili bilgiye sahip olması gerekir. Örneğin, Windows BMP grafik biçimi bir küçük endian makinesinde geliştirildi. Bundan dolayı BMP dosyalarını bir büyük endian makinesinde görüntüleyebilmek için uygulama öncelikle byte düzenini ters çevirmeliydi. Popüler yazılmların tasarımcıları bu byte düzeni konularıyla ilgili bilgi sahibidirler. Örneğin, Adobe Photoshop big endian kullanır, GIF küçük endiandır, JPEG

4 büyük endiandır, MacPaint büyük endiandır, PC Paintbrush küçük endiandır, Microsoft tarafından çıkarılan RTF küçük endiandır ve Sun raster (taramalı) dosyaları büyük endiandır. Bazı uygulamalar her iki biçimi de desteklemektedir: Microsoft WAV ve AVI dosyaları, TIFF dosyaları ve XWD (X windows Dump) her iki biçimi de destekler, genellikle dosyanın içine bir tanımlayıcı (identifier) şifreler CPU İçinde Dahili Depolama Yığınlar (Stacks) ve Yazmaçlar (Registers) Bir kez hafızadaki byte düzeni belirlendiğinde donanım tasarımcısı CPU nun veriyi nasıl depolayacağına dair bazı kararlar vermek zorundadır. Bu, en basit anlamda komut seti mimarisine (ISA) karar vermektir. Üç seçenek vardır: 1. Bir yığın mimarisi 2. Bir biriktirici (accumulator) mimarisi 3. Bir genel amaçlı yazmaç (GPR - general purpose register) mimarisi Yığın mimarisi komutları işletmek için bir yığın kullanır ve işlenenler yığının en üstünde bulunurlar. Yığın tabanlı makineler iyi bir kod yoğunluğuna ve ifadelerin değerlendirilmesi için basit bir modele sahip olmalarına rağmen, bir yığına rastgele erişilemez, bu da randımanlı kod oluşturulmasını zorlaştırır. Bir işleneni tamamıyla biriktiricinin içinde olan biriktirici mimarileri, makinenin dahili karmaşıklığını en aza indirir ve çok kısa komutlara izin verir. Ancak biriktiricinin sadece geçici depolama yapmasından dolayı hafıza trafiği oldukça yüksektir. Genel amaçlı yazmaç kümelerini kullanan genel amaçlı yazmaç mimarileri, günümüzün makine mimarileri için en çok kabul edilen modeldir. Bu yazmaç kümeleri hafızadan daha hızlıdır, derleyiciler için kullanması daha kolaydır, çok etkin ve çok verimli kullanılabilir. Ayrıca donanım fiyatları önemli ölçüde düştü ve bu sayede en az maliyetle yüksek sayıda yazmaç eklenebilir oldu. Eğer hafıza erişimi hızlıysa, yığın tabanlı tasarım iyi biri fikir olabilir. Eğer hafıza yavaşsa, yazmaçları kullanmak daha iyidir. Bu sebeple geçmiş 10 yılda çıkan pek çok bilgisayar genel-yazmaç tabanlıdır. Uzun komutlarda tüm işlenenler yazmaçların sonuçları kullanılarak isimlendirilmelidir, bu sebeple daha uzun getirme ve şifre çözme zamanları elde edilir. (Kısa komutlar ISA tasarımcıları için çok önemli bir hedeftir.) Bir ISA seçen tasarımcılar belirli bir ortamda en iyi hangisinin çalışacağına karar vermelidir ve vazgeçilecek şeyleri dikkatle tetkik etmelidir. Genel amaçlı mimari işlenenlerin yerlerine göre üç sınıfa ayrılabilir. Hafıza-hafıza (memorymemory) mimarilerde hafızada iki ya da üç işlenenen bulunur. Bu şekilde komutun bir yazmaçta herhangi bir işlenen olmasını gerektirmeden işlem yapmasına izin verir. Yazmaçhafıza (register-memory) mimarileri en az bir işlenenin yazmaçta, bir işlenenin de hafızada olmasını gerektiren bir karışıma ihtiyaç duyar. Yükle-depola (load-store) mimarileri veri üzerinde herhangi bir işlem yapılmadan önce verinin yazmaçlara gönderilmesini ister. Intel ve Motorola yazmaç-hafıza mimarilerine örnektir; Digital Equipment'in VAX mimarisi hafızahafıza işlemlerine izin verir; SPARC, MIPS, ALPHA ve PowerPC yükle-depola makineleridir. Günümüzde pek çok mimarinin GPR tabanlı olduğunu biliyoruz. Şimdi ise GPR mimarilerini ikiye bölen ana komut set karakteristiklerini inceleyeceğiz. Bu iki karakteristik işlenen

5 sayıları ve işlenenlerin adreslenme şeklidir. Bölüm te bir komutun sahip olabileceği uzunluğu ve işlenen sayısını inceliyoruz. (İki ya da üç işlenenli GPR mimarileri en yaygın olanlardır. Bunları sıfır ve bir işlenenli mimarilerle karşılaştırabiliriz.) Daha sonra komut türlerini araştırırız. Son olarak, Bölüm 5.4 te mevcut olan çeşitli adresleme kiplerini inceliyoruz İşlenen sayıları ve Komut Uzunluğu Bir bilgisayar mimarisini tanımlamak için geleneksel yöntem her bir komutta yer alan maksimum işlenen sayısını ya da adresini belirlemektir. Bu kendi başına komutun uzunluğuna direk etki etmektedir. Güncel mimarilerdeki komutlar iki şekilde biçimlendirilebilir: Sabit uzunluk- Alanı boşa harcar, ancak komut-seviyesi pipelining kullanıldığında hızlıdır ve daha iyi performansla sonuçlanır (Bölüm 5.5). Değişken uzunluk- Şifre çözmesi daha karmaşıktır ama depolama alanını iyi kullanır. Genellikle, gerçek hayatta uzlaşma, kolay görülebilen ve kod çözümü kolay olan bit kalıplarını sağlayan iki-üç komut uzunluğunu kullanmayı gerektirir. Komut uzunluğu makinedeki kelime uzunluğuyla da karşılaştırılmalıdır. Eğer komut uzunluğu kelime uzunluğuna eşitse, komutlar ana hafızada depolandıklarında mükemmel bir şekilde hizalanırlar. Komutlar, adresleme sebeplerinden dolayı daima hizalanmalıdır. Bundan dolayı, bir kelimenin yarısı, çeyreği, iki katı ya da üç katı büyüklüğündeki komutlar boşa alan harcayabilir. Değişken uzunluktaki komutlar şüphesiz aynı boyutta değildir ve hizalanmaları gerekir, bu da yine alan kaybına yol açar. En yaygın komut biçimleri sıfır, bir, iki ya da üç işlenene sahiptir. Aritmetik ve mantık işlemleri genellikle iki işlenene sahiptir, ancak eğer biriktirici (accumulator) varsa yalnızca bir işlenenle yürütülebilir. Bu fikri üç işlenene genişletirsek son hedef üçüncü işlenen şeklinde düşünülebilir. Ayrıca bir yığın kullanarak sıfır işlenenli komutlar oluşturulabilir. Aşağıdakiler en çok kullanılan komut biçimleridir: Yalnızca OPCODE (sıfır adres) OPCODE + 1 Adres (genellikle bir hafıza adresi) OPCODE + 2 Adres (genellikle iki yazmaç ya da bir yazmaç bir hafıza adresi) OPCODE + 3 Adres (genellikle üç yazmaç ya da yazmaç ve hafızaların bileşimi) Tüm mimariler komut başına izin verilen en fazla işlenen sayısında bir sınıra sahiptir. Sıfır, bir, iki ve üç işlenenli komutların çok yaygın olduğundan bahsetmiştik. Bir, iki ve hatta üç işlenenli komutları anlamak kolaydır, ancak sıfır işlenenli komutlar üzerine yapılmış bütün bir komut seti mimarisini (ISA) bir hayli karmaşıktır. Toplama gibi, mantık olarak bir ya da iki işlenene ihtiyaç duyan işlemlerin yapılabilmesi için işleneni olmayan makine komutları yığın kullanmak zorundadır (tüm ekleme ve çıkarma işlemlerinin en üstten yapıldığı LIFO, yani son-giren ilk-çıkar veri yapısından, Bölüm 4 te bahsedilmiştir ve Ek A da da detaylı olarak açıklanmıştır). Yığın tabanlı mimari genel amaçlı yazmaçları kullanmak yerine işlenenleri yığının en üstünde depolar ve en üstteki öğeye CPU nun ulaşmasını sağlar. (Makine mimarilerindeki en önemli veri yapılarından birinin yığın olduğuna dikkat ediniz. Bu yapı karmaşık hesaplamalar sırasında ara değerleri verimli bir şekilde depolar, yordam çağırılması (procedure call) sırasında verimli bir şekilde

6 parametrelerin geçişini sağlar, bununla birlikte yerel blok yapısının korunmasını da sağlar, değişkenlerin ve altyordamların (subroutine) kapsamlarını belirler.) Yığın tabanlı mimarilerde, pek çok komut yalnızca işlem kodlarından oluşur. Bununla birlikte sadece bir işleneni olan özel komutlar da vardır (yığına element ekleyen veya yığından element çıkaranlar). Yığın mimarileri, her biri bir işlenen kabul eden push ve pop komutlarına ihtiyaç duyar. Push X komutu, X hafıza yerindeki veri değerini yığının üstüne yerleştirir. Pop X komutu, yığının en üstteki elementini siler ve X hafıza yerine kaydeder. Hafızaya erişme izni sadece bazı komutlara verilir; diğer tüm komutlar yürütme esnasında herhangi bir işlenen için yığını kullanmak zorundadır. İki işlenene ihtiyaç duyan işlemler için, yığının en üstteki iki elementi kullanılır. Örneğin, bir Add komutu çalıştırırsak, CPU yığının en üstteki iki elementini toplar, ikisini de yığından atar ve yığının en üstüne toplama işleminin sonucunu yerleştirir. Çıkarma işlemi gibi değişmeli olmayan işlemler için, en üstteki element bir altındaki elementten çıkarılır, ikisi de yığından atılır ve yığının en üstüne çıkarma işleminin sonucu yerleştirilir. Bu yığın organizasyonu uzun aritmetik ifadeler için oldukça etkilidir (RPN). Postfix gösterimi olarak da bilinen bu gösterime göre işleç (operator) işlenenlerden sonra yer alır (infix gösteriminde işleç işlenenlerin arasında yer alır, prefix gösteriminde ise işleç işlenenlerden önce yer alır). Örnek olarak: X + Y infix gösterimindedir + X Y prefix gösterimindedir X Y + postfix gösterimindedir Tüm aritmetik ifadeler bu gösterimlerden birini kullanarak yazılabilir. Ancak, bir yazmaç (register) yığını ile birleştirilmiş postfix gösterimi, aritmetik ifadelerin hesaplanmasında en verimli yoldur. Aslında bazı elektronik hesap makineleri (Hewlett-Packard gibi) kullanıcının ifadeleri postfix gösteriminde girmesini ister. Bu hesap makinelerinde biraz alıştırma yapıldığında, içiçe birçok parantez içeren uzun ifadeleri, terimlerin nasıl gruplandığını bile düşünmeden, hızlı bir şekilde hesaplamak mümkündür. (X + Y) x (W - Z) + 2 İfadesi RPN de yazıldığında aşağıdaki gibi olur: XY + WZ - x2+ Dikkat ederseniz, RPN kullanılırken, öncelikleri korumak amacıyla kullanılan parantezlere ihtiyaç yoktur. Sıfır, bir, iki ve üç işlenen kavramlarıyla ilgili örnek verecek olursak: Her bir kavramı kullanarak, bir aritmetik ifadeyi hesaplayan basit bir program yazalım. Örnek 5.1: Aşağıdaki ifadeyi hesaplamak istersek:

7 Z = (X x Y) + (W x U) Genellikle, üç işlenene izin verildiğinde, en az bir işlenen yazmaç (register) olmak zorundadır ve ilk işlenen genellikle hedef olur. Üç adresli komutları kullanırken, Z nin hesaplanması için gereken kod aşağıdaki gibi yazılır: Add R1, X, Y R2, W, U Z, R2, R1 İki adresli komutlar kullandığında, bir adres genellikle bir yazmacı ifade eder (iki adresli komutlar iki işlenenin de hafıza adresi olmasına nadiren izin verir). Diğer işlenen, bir yazmaç ya da bir hafıza adresi olabilir. İki adresli komutlar kullanıldığında kodumuz aşağıdaki gibi olur: Load Load Add Store R1, X R1, Y R2, W R2, U R1, R2 Z, R1 İlk işlenenin kaynak mı yoka hedef mi olduğunu bilmek önemlidir, burada hedef olduğunu varsayıyoruz. (Bu noktada, Intel çevirici dili (assembly) ile Motorola çevirici dili arasında geçiş yapmak zorunda olan programcıların kafası karışabilir. Çünkü Intel çeviricisine göre ilk işlenen hedeftir, Motorola çeviricisine göre ise ilk işlenen kaynaktır.) Tek adresli komutlar kullanıldığında, bir yazmaç (genellikle biriktirici - accumulator) komutun sonucu için hedef olarak gösterilir. Z yi hesaplamak için kodumuz aşağıdaki gibi olur: Load Store Load Add Store X Y Temp W U Temp Z Komut başına izin verilen işlenen sayısı azaldı, ancak gerekli kodu çalıştırmak için ihtiyaç duyulan komut sayısı arttı. Bu, mimari tasarımında tipik bir space / time trade-off örneğidir: Daha kısa komutlar, ancak daha uzun programlar. Sıfır adresli komutlara sahip olan yığın tabanlı bir makinede bu program ne yapar? Yığın tabanlı mimariler Add, Subt, veya Divide komutları için işlenen kullanmazlar. Bir yığına ve bu yığında iki işleme ihtiyacımız var: Pop ve Push. Yığınla iletişim kuran işlemler, işlenenin yığına eklendiğini ya da yığından çıkarıldığını belirten bir adres alanına sahip olmalıdır (diğer tüm işlemler sıfır adreslidir). Push komutu işleneni yığının en üstüne yerleştirir. Pop komutu yığının en üstündeki elementi çıkarır ve işlenene yerleştirir. Bu mimari, eşitliğimizi hesaplayacak olan programın çok uzun olmasına yol açar. Aritmetik işlemlerin yığının en üstündeki iki işleneni kullandığını, onları yığından çıkardığını ve sonra işlemin sonucunu yığının en üstüne eklediğini varsayalım, kodumuz aşağıdaki gibi olur:

8 Push Push Push Push Add Store X Y W U Z Komut uzunluğu, işlem kodu uzunluğundan ve izin verilen işlenen sayısından etkilenir. Eğer işlem kodu uzunluğu sabit ise, çözme işlemi çok daha kolay olur. Ancak geriye dönük uyumluluk ve esneklik sağlayabilmek için, işlem kodu değişken bir uzunluğa sahip olabilir. Değişken uzunluktaki işlem kodlarında, değişken uzunluktaki komutlarda görülenlere benzer sorunlar söz konusudur. Birçok tasarımcı işlem kodlarını genişletmekte uzlaşmıştır İşlem Kodlarını Genişletme İşlem kodlarını genişletme, işlem kodlarının zengin bir kümesine olan ihtiyaç ile kısa işlem kodları, dolayısıyla kısa komutlar elde etme isteği doğrultusunda ortaya çıkmıştır. Amacı bazı işlem kodlarını kısaltmak, ancak ihtiyaç duyulduğunda uzun olanlarını da sağlamaktır. İşlem kodu kısa olduğunda, bitlerden birçoğu işlenenleri tutar (komut başına iki ya da üç işlenenimiz olabilirdi). İşlenenler için alana ihtiyaç duymadığınızda (Halt gibi bir işlem sırasında, ya da makine bir yığın kullandığında), tüm bitler işlem kodu için kullanılabilir, bu da birçok benzersiz (unique) komuta izin verir. Az işlenenli uzun işlem kodları olduğu gibi çok işlenenli kısa işlem kodları da vardır. 16-bit komutları ve 16 yazmacı olan bir makine olduğunu varsayalım. Bu kez basit bir biriktirici yerine bir yazmaç kümemiz var ve benzersiz bir yazmaç tanımlamak için 4 bit kullanıyoruz. Her biri 3 yazmaç işlenenine sahip olan ya da işlem kodu için 4bit, hafıza adresi için 12 bit kullanan (4K boyutunda bir hafıza olduğunu varsayalım) 16 komutu şifreleyebiliriz. Hafıza kaynağı 12 bite ihtiyaç duyar, diğer amaçlar için 4 bit kalır. Ancak, eğer hafızadaki tüm veri ilk olarak bu yazmaç kümesindeki bir yazmaca yüklenirse, komut sadece 4 bit kullanarak (16 yazmaç olduğunu varsayalım) gerekli veri elementini seçebilir. Bu iki seçim Şekil 5.2 de gösteriliyor: Şekil 5.2: 16-bit komut biçimi için iki olasılık

9 Aşağıdaki komutları şifrelemek istediğimizi varsayalım: 3 adresli 15 komut 2 adresli 14 komut 1 adresli 31 komut 0 adresli 16 komut Bu komut kümesini 16 bitte şifreleyebilir miyiz? İşlem kodlarını genişletmeyi kullandığımız sürece cevap evettir. Şifreleme aşağıdaki gibidir: Bu genişleyen işlem kodu yapısı, çözme işlemini daha karmaşık hale getirir. Basitçe bir bit kalıbına bakıp hangi komut olduğuna karar vermek yerine, komutu aşağıda görüldüğü şekilde çözmemiz gerekir: if (leftmost four bits!= 1111 ) { Execute appropriate three-address instruction} else if (leftmost seven bits!= ) { Execute appropriate two-address instruction} else if (leftmost twelve bits!= ) { Execute appropriate one-address instruction } else { Execute appropriate zero-address instruction } Her aşamada, daha fazla bite bakmamız gerektiğini belirten bir yedek kod vardır. Bu, donanım tasarımcılarının sürekli karşılaştıkları trade-off ların diğer bir örneğidir. Burada biz işlem kodu alanını işlenen alanıyla yer değiştiriyoruz. 5.3 Komut Türleri Birçok bilgisayar komutu veri üzerinde yürütülür, ancak yürütülmeyenler de vardır. Bilgisayar üreticileri komutları aşağıdaki kategorilere ayırır:

10 Veri hareketi Aritmetik Boolean Bit işleme (shift ve rotate) G/Ç Denetim aktarımı Özel amaç Veri hareket komutları en sık kullanılan komutlardır. Veri hafızadan yazmaçlara, yazmaçlardan yazmaçlara ve yazmaçlardan hafızaya taşınır, birçok makine kaynak ve hedefe bağlı olarak farklı komutlar sağlar. Örneğin, bir MOVER komutu her zaman iki yazmaçlı işlenene ihtiyaç duyabilir, oysa MOVE komutu bir yazmaç ve bir hafıza işlenine izin verir. RISC gibi bazı mimariler, işletimi hızlandırmak için hafızaya / hafızadan veri taşıyan komutları sınırlandırır. Birçok makine, farklı boyutlardaki veriyi işlemek için çeşitli load, store ve move komutlarına sahiptir.örneğin byte işlemek için bir LOADB komutu, word işlemek için de bir LOADW komutu. Aritmetik işlemler tam sayı ve kayan noktalı sayıları kullanan komutları içerir. Birçok komut kümesi çeşitli veri boyutları için farklı aritmetik komutlar sağlar. Veri hareket komutlarıyla, farklı adresleme kiplerinde yazmaç ve hafıza erişiminin çeşitli kombinasyonlarını sağlamaya yarayan farklı komutlar olabilir. Boolean mantık komutları Boolean işlemleri aynı aritmetik işlemlerinde olduğu gibi uygular. AND, NOT, OR ve XOR işlemlerini uygulamak için gerekli komutlar genellikle bulunabilir. Bit işleme komutları, verilen bir veri kelimesi (word) içindeki tekli bitleri (bazen de bit gruplarını) belirlemek (setting) ve yeniden (resetting) belirlemek için kullanılır. Bunlar, ikisi de sola ve sağa olmak üzere, hem aritmetik hem de mantıksal kaydırma ve döndürme komutlarını içerir. Mantıksal kaydırma komutları, bitleri belirtilen miktarda sola ya da sağa kaydırır. Genellikle ikiyle çarpma ya da ikiye bölme işlemleri için kullanılan aritmetik kaydırma komutları en soldaki biti kaydırmaz, çünkü bu bit sayının işaretini gösterir. Sağa doğru yapılan aritmetik kaydırmada, işaret biti sağındaki bit pozisyonuna kopyalanır. Sola doğru yapılan aritmetik kaydırmada değerler sola kaydırılır, sıfırlar içine kaydırılır, ancak işaret biti asla hareket ettirilmez. Döndürme komutları kaydırılan bitlere kaydırma yapan komutlardır. Örneğin, sola 1 bit döndürmede en soldaki bit dışarı kaydırılır ve en sağdaki bit haline getirmek için de döndürme yapılır. Giriş/Çıkış komutları (I/O) mimariden mimariye çok değişir. G/Ç ı kontrol etmek için gereken temel düzenler programlanmış G/Ç, kesinti sürümlü (interrupt-driven) G/Ç ve DMA aygıtlarıdır. Bunlar Bölüm 7 de daha detaylı olarak işlenecektir. Kontrol komutları dallanmaları, atlamaları ve yordam çağırmaları (procedure calls) içerir. Dallanmalar koşullu ya da koşulsuz olabilir. Atlama komutları temel olarak dallanma komutlarının adres içeren bir şeklidir. Atlama komutları farklı durumları belirtmek için genellikle adres alanının bitlerini kullanır, çünkü işlenene ihtiyaç duymaz. Yordam çağırmaları otomatik olarak dönüş adresini saklayan özel dallanma komutlarıdır. Bu adresi kaydetmek için farklı makineler birbirinden farklı metodlar kullanırlar. Bazıları adresi

11 hafızada belirli bir yere kaydeder, bazıları bir yazmaca kaydeder, bazıları da adresi yığına ekler. Yığınların farklı amaçlar için kullanılabildiğini daha önce de görmüştük. Özel amaçlı komutlar arasında string işleme, yüksek seviye dil desteği, koruma, bayrak kontrolü ve önbellek yönetimi de vardır. Birçok mimari string işleme için özel komutlara sahiptir. 5.4 Adresleme Bir komut tasarım sorunu olmasına rağmen adresleme komut biçiminin teknik bir parçasıdır. Adreslemeyi içeren çok sayıda sorun vardır, bu yüzden de kendi başına bir bölüm olarak incelenmelidir. Şimdi en önemli iki adresleme sorununu ele alalım: Adreslenebilen veri türleri ve çeşitli adresleme kipleri. Sadece temel adresleme kiplerini işleyeceğiz, daha özelleşmiş olan kipler bu bölümde işlenen temel kipler kullanılarak oluşturulur Veri Türleri Verinin nasıl adreslendiğine bakmadan önce bir komutun ulaşabileceği çeşitli veri türlerinden kısaca bahsedelim. Belirli bir veri türü eğer komut tarafından referans gösteriliyorsa, donanım desteğine ihtiyaç duyar. Bölüm 2 de sayı ve karakterleri de kapsayarak veri türlerini inceledik. Sayısal veri tam sayı ve kayan noktalı sayı değerlerinden oluşur. Tam sayılar işaretli veya işaretsiz olabilir ve çeşitli uzunluklarda tanımlanabilir. Örneğin, C++ da tam sayılar short (16 bit), int (verilen mimarinin word boyutu kadar) veya long (32 bit) olabilir. Kayan noktalı sayılar 32, 64 veya 128 bit uzunluğunda olabilir. Daha önce de gördüğümüz gibi, ISA lerin değişken uzunluktaki sayısal veriyle ilgili özel komutları pek yaygın değildir. Örneğin, 16 bit tam sayılar için bir MOVE komutu olabilir, 32 bit tam sayılar için yine farklı bir MOVE komutu olabilir. Sayısal olmayan veri türleri stringler, booleanlar ve göstericilerden oluşur. String komutları genellikle kopyalama, taşıma, arama veya değiştirme işlemlerini içerir. Boolean işlemleri AND, OR, XOR ve NOT komutlarını içerir. Göstericiler aslında hafızadaki adreslerdir. Gerçekte sayısal olmalarına rağmen göstericiler tam sayılardan ve kayan noktalı sayılardan farklı bir şekilde işlem görürler. Gösterici kullanan bir komutta, işlenen aslında bir adrestir ve bu şekilde işlem görmelidir Adres Kipleri Bölüm 4 te bir komutun işlenen alanındaki 12 bit iki farklı şekilde yorumlanır: 12 bit hem işlenenin hafıza adresini, hem de bir fiziksel hafıza adresini gösteren bir göstericiyi ifade eder. Bu 12 bit birçok farklı şekilde yorumlanabilir, böylece birçok farklı adresleme kipi sağlanabilir. Adresleme kipleri komut işlenenlerinin nerede yer alacağını belirtmemize izin verir. Bir adresleme kipi bir sabiti, bir yazmacı veya hafızadki bir yeri belirtebilir. Bazı kipler daha kısa adreslere izin verir, bazıları da dinamik olarak gerçek işlenenin yerini, yani işlenenin geçerli adresini, belirlememize izin verir. Şimdi en temel adresleme kiplerini incelemeye başlayalım.

12 Anında Adresleme Anında adreslemede referanslanacak değer doğrudan doğruya komuttaki işlem kodunu takip eder. Yani işlenecek olan veri komutun bir parçasıdır. Örneğin, işlenenin adresleme kipi anında adresleme olsun, komut ise Load 008 olsun, sayısal değer olarak 8 AC ye yüklenir. İşlenen alanının 12 biti bir adres belirtmez, komutun gerektirdiği gerçek işleneni belirtir. Anında adresleme çok hızlıdır, çünkü yüklenecek olan değer komutun içindedir. Ancak yüklenecek olan değerin derleme süresince sabit kalmasından dolayı çok da esnek değildir. Doğrudan Adresleme Doğrudan adreslemede referanslanacak değer, hafıza adresi doğrudan komut içinde belirtilerek elde edilir. Örneğin, işlenenin adresleme kipi doğrudan adresleme olsun, komut ise Load 008 olsun, 008 hafıza adresinde bulunan veri değeri AC ye yüklenir. Doğrudan adresleme genellikle hızlıdır, çünkü yüklenecek değer komutun içinde olmamasına rağmen kolayca erişilebilir haldedir. Ayrıca anında adresleme kipinden çok daha esnektir, çünkü yüklenecek değer verilen bir adreste bulunan herhangi bir şey olabilir, örneğin bir değişken. Yazmaç Adresleme Yazmaç adreslemede işleneni belirtmek için hafıza yerine bir yazmaç kullanılır. Bu yönüyle doğrudan adresleme kipine benzemektedir, ancak adres alanı hafıza adresi yerine bir yazmaç referansı içerir. Bu yazmacın içeriği işlenen olarak kullanılır. Dolaylı Adresleme Dolaylı adresleme olağanüstü esneklik sunan, oldukça güçlü bir adresleme kipidir. Bu kipte adres alanındaki bitler bir gösterici olarak kullanılmak üzere bir hafıza adresini belirtir. İşlenenin geçerli adresi bu hafıza adresine giderek bulunabilir. Örneğin işlenenin adresleme kipi dolaylı adresleme kipi olsun, komut ise Load 008 olsun, 008 hafıza adresinde bulunan veri değeri aslında istenen işlenenin geçerli adresidir. 008 hafıza alanında 2A0 değerinin saklandığını varsayalım. 2A0 istediğimiz gerçek adrestir. Bundan dolayı 2A0 adresinde bulunan değer AC ye yüklenir. Bu şeklin bir varyasyonunda, işlenen bitleri bir hafıza adresi yerine bir yazmaç belirtir. Bu kip yazmaç dolaylı adresleme olarak adlandırılır. Dolaylı adresleme kipi ile neredeyse aynı şekilde çalışır. Tek farkı veriyi göstermek için hafıza adresi yerine bir yazmaç kullanmasıdır. Örneğin, komut Load R1 olsun ve yazmaç dolaylı adresleme kipini kullanalım, R1 de istenen işlenenin geçerli adresini buluruz. İndekslenmiş ve Tabanlı Adresleme İndekslenmiş adresleme kipinde bir dizin yazmacı (dolaylı ya da doğrudan belirtilmiş olabilir) bir konumu (ya da uzaklığı) saklamak için kullanılır, işlenene eklenir ve böylece verinin geçerli adresi elde edilir. Örneğin, Load X komutunda işlenen X, indekslenmiş adresleme kipi kullanılarak adreslensin, R1 dizin yazmacı olarak 1 değerini saklasın, işlenenin geçerli adresi X+1 olarak bulunur. Tabanlı adresleme kipi de benzer bir şekilde çalışır, ancak bir dizin yazmacı yerine bir taban adres yazmacı kullanır. Teorik olarak bu iki kip arasındaki fark kullanım biçimleridir, işlenenlerin nasıl hesaplandığı değildir. Bir dizin yazmacı, komutun

13 adres alanında verilen adrese bağlı olarak, konum olarak kullanılmak üzere bir dizin depolar. Bir taban yazmacı taban adresini saklar, burada adres alanı bu tabandan uzaklığını gösterir. Bu iki adresleme kipi, stringlerin karakterlerine ve dizilerin elementlerine erişim için oldukça kullanışlıdır. Gerçekte birçok çevirici (assembly) dili, string işlemlerinin çoğunda özel dizin yazmaçları sağlar. Komut kümesi tasarımına bağlı olarak, bu kip için genel amaçlı yazmaçlar da kullanılabilir. Yığın Adresleme Eğer yığın adresleme kipi kullanılırsa, işlenenin yığının üzerinde olduğu varsayılır. Bölüm de bunun nasıl çalıştığını incelemiştik. İlave Adresleme Kipleri Yukarıdaki kiplerin birçok varyasyonları mevcuttur. Örneğin, bazı makineler dolaylı indekslenmiş adreslemeye sahiptir, burada dolaylı ve indekslenmiş adresleme aynı anda kullanılmaktadır. Ayrıca taban/konum adresleme vardır, bunda da belirli taban yazmacına konum eklenir, sonra da belirtilen işlenen eklenir, komutta kullanılacak olan gerçek işlenenin geçerli adresi elde edilir. Otomatik artan ve otomatik azalan kipleri de vardır. Bunlar otomatik olarak kullanılan yazmacı artırır ya da azaltır, böylece kod boyutunu küçültür, bu da gömülü sistemler gibi uygulamalar için oldukça büyük bir önem taşır. Many variations on the above schemes exist. For example, some machines have indirect indexed addressing, which uses both indirect and indexed addressing at the same time. There is also base/offset addressing, which adds an offset to a specific base register and then adds this to the specified operand, resulting in the effective address of the actual operand to be used in the instruction. There are also auto-increment and auto-decrement modes. These modes automatically increment or decrement the register used, thus reducing the code size, which can be extremely important in applications such as embedded systems. Kendine bağlı adresleme (Self-relative addressing) işlenenin adresini geçerli komuttan uzaklık olarak hesaplar. Bunlardan başka kipler de vardır. Ancak anında, doğrudan, yazmaç, dolaylı, indekslenmiş ve yığın adresleme kiplerini iyi anlarsanız, karşılaşabileceğiniz herhangi bir adresleme kipini anlamakta zorlanmayacaksınız. Şimdi bu kipleri açıklamak için bir örnek inceleyelim. Load 800 komutumuz olduğunu varsayalım, hafıza ve R1 yazmacı Şekil 5.3 deki gibi olsun. Şekil 5.3: Load 800 işletildiğinde hafızanın içeriği

14 Çeşitli adresleme kiplerini, 800 ü de içeren işlenen alanına uygulayalım ver1 in indekslenmiş adresleme kipinde olduğunu varsayalım, Tablo 5.1 de AC ye yüklenen değeri görebilirsiniz. Tablo 5.1: Şekil 5.2 deki Hafızada Çeşitli Adresleme Kiplerinin Kullanılmasının Sonuçları Kip Anında 800 Doğrudan 900 Dolaylı 1000 İndekslenmiş 700 AC ye Yüklenen Değer Load R1 komutu, yazmaç ve adresleme kipini kullanarak biriktiriciye bir 800 yükler ve yazmaç dolaylı adresleme kipini kullanarak biriktiriciye bir 900 yükler. Adresleme kiplerinin bir özetini Tablo 5.2 de bulabilirsiniz. Tablo 5.2: Tabanlı adresleme kiplerinin bir özeti. Adresleme Kipleri Anında Doğrudan Yazmaç Dolaylı Yazmaç Dolaylı İndekslenmiş Tabanlı Yığın veya İşleneni Bulmak İçin İşlenen değeri komutun içinde bulunur Adres alanındaki işlenenin geçerli adresi İşlenen değeri yazmaçta bulunur Adres alanı gerçek işlenenin adresini gösterir Yazmaç gerçek işlenenin adresini içerir İşlenenin gerçek adresi, bir yazmacın içeriğine adres alanındaki değerin eklenmesiyle elde edilir. İşlenen yığında bulunur Çeşitli adresleme kipleri, bir veya iki kiple sınırlı olduğumuzdan çok daha geniş aralıkta yerler belirtmemize izin verir. Yine her zaman için trade-off lar söz konusudur. Esneklik ve arttırılmış adres aralığı için adres hesaplamadaki kolaylığı feda ediyoruz ve hafıza referanslarını sınırlıyoruz.

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Adresleme modları Pentium ve PowerPC adresleme modları Komut formatları 1 Adresleme modları

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Processor organization Register organization Instruction cycle 2 Processor organization İşlemci

Detaylı

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Bilgisayar Bileşenleri Ve Programların Yürütülmesi Özer Çelik Matematik-Bilgisayar Bölümü Program Kavramı Bilgisayardan istenilen işlerin gerçekleştirilebilmesi için gereken işlem dizisi

Detaylı

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders09 1 SANAL BELLEK(Virtual Memory) Yıllar önce insanlar kullanılabilir olan belleğe sığmayan programlar ile

Detaylı

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü BİLGİSAYAR MİMARİSİ Komut Seti Mimarisi Özer Çelik Matematik-Bilgisayar Bölümü Komut Seti Mimarisi Bilgisayarın hesaplama karakteristiklerini belirler. Donanım sistemi mimarisi ise, MİB(Merkezi İşlem Birimi),

Detaylı

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN 2011 Bahar Dönemi Öğr.Gör. Vedat MARTTİN ADRESLEME YÖNTEMLERİ Komut yazımında en önemli konulardan biri, adresleme yöntemidir. Adresleme yöntemi, işlenenin nerede bulunacağını belirtmek için kullanılan

Detaylı

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar Adresleme Modları 1 Adresleme Modları İşlenenin nerede olacağını belirtmek için kullanılırlar. Kod çözme aşamasında adresleme yöntemi belirlenir ve işlenenin nerede bulunacağı hesaplanır. Mikroişlemcide

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu MİKROBİLGİSAYAR SİSTEMLERİ Teknik Bilimler Meslek Yüksekokulu Dersin Amacı Mikroişlemciler Mikrodenetleyiciler PIC Mikrodenetleyiciler Micro BASIC Programlama Kullanılacak Programlar MSDOS DEBUG PROTEUS

Detaylı

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR GÖMÜLÜ PROGRAMLAMA Selçuk Üniversitesi Bilgisayar Mühendisliği Bölümü 2012-2013 Bahar Dönemi Doç.Dr.Erkan ÜLKER 1 İçerik 1. Adresleme Modları 2. İskelet Program

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo Microsoft Excell Excel Nedir? Excel programı; veriler üzerinde hesap yapabilme, verileri tabloya dönüştürebilme, verileri karşılaştırıp sonuç üretebilme, grafik oluşturma, veri yönetimi yapabilir. http://mf.dpu.edu.tr/~eyup

Detaylı

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Mimari Esaslar Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır. Bu unsurların büyüklüğü, sayısı ve yapısı o işlemcinin yeteneklerini belirler. Mimari farlılıklarda; bu konularda

Detaylı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-1/ Merkezi İşlem Birimi (MİB): Bilgisayarın temel birimi

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)

Detaylı

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition Bölüm 8: Ana Bellek 8.1 Silberschatz, Galvin and Gagne 2009 Bölüm 8: Ana Bellek Arka Plan Bilgisi Yer Değiştirme (Swapping) Bitişik Bellek Yerleşimi (Contiguous Memory Allocation) Sayfalama (Paging) Sayfa

Detaylı

8. MİKROİŞLEMCİ MİMARİSİ

8. MİKROİŞLEMCİ MİMARİSİ 1 8. MİKROİŞLEMCİ MİMARİSİ Gelişen donanım ve yazılım teknolojilerine ve yonga üreticisine bağlı olarak mikroişlemcilerin farklı komut tipleri, çalışma hızı ve şekilleri vb. gibi donanım ve yazılım özellikleri

Detaylı

Bölüm Bazı Temel Konseptler

Bölüm Bazı Temel Konseptler Bölüm 7 Bu ve bundan sonraki bölümde, makine komutlarını işleten ve diğer birimlerin faaliyetlerini düzenleyen işlem birimi üzerine yoğunlaşacağız. Bu birim genellikle Komut Seti Mimarisi (Instruction

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 4 Stack (Yığın, Yığıt) Veri Yapısı Stack Çalışma

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

Cache-Hızlı Hafıza Birimi. Bilgisayar Sistemi Bilgisayarların Anakart Organizasyonu

Cache-Hızlı Hafıza Birimi. Bilgisayar Sistemi Bilgisayarların Anakart Organizasyonu Bilgisayarların Anakart Organizasyonu Pentium Đşlemci Đşlemci-hafıza BUS Adres Veri Cache Level 1 SDRAM Hazıfza DRAM PCI BUS USB USB CD-ROM Hard Disk PIIX 3 ISA BUS ISA Aygıtları PCI Aygıtları Adres/veri

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır.

Hem lw hem de sw komutlarının ofseti 16-bitlik işaretli tamsayıdır. DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #2 DİZİLERE ERİŞİMDE MIPS BELLEK TALİMATLARI Amaç: Veri bölütü kullanımını ve tek-modüllü dizi

Detaylı

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Bit, Byte ve Integer BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe Ders kitabına ait sunum dosyalarından adapte edilmiştir: http://csapp.cs.cmu.edu/ Adapted from slides

Detaylı

Bölüm 7. İfadeler ve atamalar ISBN

Bölüm 7. İfadeler ve atamalar ISBN Bölüm 7 İfadeler ve atamalar ISBN 0-321-49362-1 7. Bölüm konuları Giriş Aritmetik ifadeler Çok anlamlı (overloaded) operatörler Tip dönüşümleri (conversions) İlişkisel ve Boolean İfadeler Kısa-devre hesaplama

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Şekil. 64 Kelimelik Yığıtın Blok Şeması 1 YIĞIT (STACK) KURULUMU Çoğu bilgisayarın MİB de yığıt veya LIFO (Last In First Out) bulunur. Yığıt bir bellek parçasıdır ve son depolanan bilgi ilk geri dönen bilgi olur. Yığıta aktarılan son bilgi yığıtın

Detaylı

Bilgisayar Mimarisi ve Organizasyonu Giriş

Bilgisayar Mimarisi ve Organizasyonu Giriş + Bilgisayar Mimarisi ve Organizasyonu Giriş Bilgisayar Mimarisi Bilgisayar Organizasyonu Programcının görebileceği bir sistemin nitelikleri Bir programın mantıksal yürütülmesi üzerinde direk bir etkisi

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

Bilgisayarda Programlama. Temel Kavramlar

Bilgisayarda Programlama. Temel Kavramlar Bilgisayarda Programlama Temel Kavramlar KAVRAMLAR Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarın anlayabileceği bir biçime dönüştürülmesi / ifade edilmesidir. Bunu

Detaylı

Öğr. Gör. Ümit ATİLA

Öğr. Gör. Ümit ATİLA Öğr. Gör. Ümit ATİLA Internette her bilgisayarın bir IP (ınternet protokol) adresi vardır. Bir bilgisayarın IP adresi varsa internet üzerindeki tüm bilgisayarlar bu adresi kolayca bulabilir. Ancak bu rakamları

Detaylı

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü 1 BİLGİSAYAR MİMARİSİ Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü http:// http:// Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Komut çalıştırma özellikleri Büyük register file kullanımı Compiler tabanlı register

Detaylı

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1 Von Neumann Mimarisi Mikroişlemciler ve Mikrobilgisayarlar 1 Sayısal Bilgisayarın Tarihsel Gelişim Süreci Babage in analitik makinası (1833) Vakumlu lambanın bulunuşu (1910) İlk elektronik sayısal bilgisayar

Detaylı

Bilgisayarların Gelişimi

Bilgisayarların Gelişimi Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım

Detaylı

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri

VERİ KAYNAKLARI. Bilgi sisteminin öğelerinden biride veri VERİ KAYNAKLARI YÖNETİMİ İ İ 5. ÜNİTE GİRİŞ Bilgi sisteminin öğelerinden biride veri yönetimidir. Geleneksel yada çağdaş, birinci yada ikinci elden derlenen veriler amaca uygun veri formlarında tutulur.

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)

Detaylı

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar EM205 26/9/2014 Programlamaya giriş Algoritmalar Temel kavramlar Algoritmalar Amaçlar Algoritma kavramını öğrenmek, Algoritmaları ifade edebilmek, Temel matematiksel algoritmaları yazabilmek C programlama

Detaylı

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar x86 Ailesi 1 8085A,8088 ve 8086 2 Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği

Detaylı

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 2 PROGRAMLANABİLİR DENETLEYİCİLER NÜMERİK İŞLEME 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 3

Detaylı

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR Toplama (Addition) Toplama (ADD) belirtilen iki yazaç veya yazaç ile belleğin içeriğini toplar ve kullanılan adresleme moduna göre sonucu belirtilen yazaca

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN İkilik Sayı Sistemi İkilik sayı sisteminde 0 lar ve 1 ler bulunur. Bilgisayar sistemleri yalnızca ikilik sayı sistemini kullanır. ( d 4 d 3 d 2 d 1 d 0 ) 2 = ( d 0. 2 0 ) + (

Detaylı

Embedded(Gömülü)Sistem Nedir?

Embedded(Gömülü)Sistem Nedir? Embedded(Gömülü)Sistem Nedir? Embedded Computing System de amaç; elektronik cihaza bir işlevi sürekli tekrar ettirmektir. Sistem içindeki program buna göre hazırlanmıştır. PC lerde (Desktop veya Laptop)

Detaylı

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ Yrd. Doç. Dr. Şule Gündüz Öğüdücü Merkezi İşlem Birimi (MİB): Bilgisayarın temel birimi Hız Sözcük uzunluğu Buyruk kümesi Adresleme yeteneği Adresleme kapasitesi

Detaylı

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.

Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. İşaretli Tamsayı Gösterimi 1. İşaretli Büyüklük Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. Örnek

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları SABİTLER VE DEĞİŞKENLER Değişken, verilerin bellekte geçici olarak kaydedilmesini ve gerektiğinde kullanılmasını sağlayan değerdir. Nesne tabanlı programlama dilinde değişken kullanımı diğer programlama

Detaylı

Mikrobilgisayar Sistemleri ve Assembler

Mikrobilgisayar Sistemleri ve Assembler Mikrobilgisayar Sistemleri ve Assembler Bahar Dönemi Öğr.Gör. Vedat MARTTİN Konu Başlıkları Mikrobilgisayar sisteminin genel yapısı,mimariler,merkezi işlem Birimi RAM ve ROM bellek özellikleri ve Çeşitleri

Detaylı

Merkezi İşlem. Birimi

Merkezi İşlem. Birimi VERİ: Kullanıcı veya bilgisayar tarafından sağlanırlar. Sayılar, harfler, sözcükler, ses sinyalleri ve komutlardır.. Veriler bilgisayarın giriş birimleri tarafından toplanırlar. Giriş İşlem Çıkış Önbellek

Detaylı

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER BÖLÜM 2 INTEL AİLESİNİN 8 BİTLİK MİKROİŞLEMCİLERİ 2.1 8080 MİKROİŞLEMCİSİ Intel 8080, I4004, I4040 ve I8008 in ardından üretilmiştir ve 8 bitlik mikroişlemcilerin ilkidir ve 1974 te kullanıma sunulmuştur.

Detaylı

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama İçerik Java da İşleçler, Kontrol Akış ve Döngü Deyimleri Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu ders: Java da işleçler ( operators ) Java da kontrol-akış

Detaylı

Java da Program Denetimi ve Operatörler

Java da Program Denetimi ve Operatörler Java da Program Denetimi ve Operatörler 1 Atamalar int a ; a=4 ; // doğru bir atama 4=a ; // yanlış bir atama! 2 Temel (Primitive) Tiplerde Atama int a, b ; a=4 ; b=5 ; a=b ; Sonuç : a=5, b=5 3 Nesneler

Detaylı

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü Yığın İşlemleri Postfix, Prefix, Infix Yrd.Doç.Dr. M. Ali Akcayol 1 Yığındaki elemanlardan sadece en son eklenene erişim yapılır. Yığına ilk eklenen eleman en son elde edilir. FILO (First-in-Last-out)

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ Bilgisayar, kendine önceden yüklenmiş program gereğince

Detaylı

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı

Detaylı

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme

Giriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme Giriş MİKROİŞLEMCİ SİSTEMLERİ Bilgisayar teknolojisindeki gelişme Elektronik öncesi kuşak Elektronik kuşak Mikroişlemci kuşağı Yrd. Doç. Dr. Şule Gündüz Öğüdücü 1 Bilgisayar Tarihi Elektronik Öncesi Kuşak

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders08 1 Bellek Yönetimi Bellek önemli bir kaynaktır ve dikkatli yönetilmelidir. İşletim sistemlerinde bellek

Detaylı

Java da İşleçler, Ders #3 (4 Kasım 2009)

Java da İşleçler, Ders #3 (4 Kasım 2009) Java da İşleçler, Kontrol Akış ve Döngü Deyimleri BS-515 Nesneye Yönelik Programlama Ders #3 (4 Kasım 2009) İçerikç Geçen ders: Nesne ve Sınıf Kavramları Nesne ve Sınıf ın Java da gerçekleştirilmesi Bu

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Kullanıcıdan aldığı veri ya da bilgilerle kullanıcının isteği doğrultusunda işlem ve karşılaştırmalar yapabilen, veri ya da bilgileri sabit disk,

Detaylı

Bilgisayar Mimarisi Nedir?

Bilgisayar Mimarisi Nedir? BİLGİSAYAR MİMARİSİ Bilgisayar Mimarisi Nedir? Bilgisayar mimarisi, diğer mimariler gibi, bir yapı kullanıcısının ihtiyaçlarını belirleme ve bu ihtiyaçları ekonomik ve teknolojik kısıtlamalar dahilinde

Detaylı

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler. Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/0/blg-/ Getirme Çevrimi Yürütme Çevrimi Çözme İşlenen Yürütme

Detaylı

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER, C++ İÇİN UFAK HATIRLATMALAR Değişken adları bir harf ile başlamalıdır. (a-z, A-Z). Değişken adı numara içerebilir.

Detaylı

Bölüm 6. Veri Türleri ISBN

Bölüm 6. Veri Türleri ISBN Bölüm 6 Veri Türleri ISBN 0-321-49362-1 Bölüm 6 Konular Giriş İlkel Veri Türleri Karakter Dizisi Türleri Kullanıcı Tanımlı Sıra Türleri Dizi Türleri İlişkili Diziler Giriş Bir veri türü veri nesnelerinin

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken

Detaylı

Temel Excel Kullanım Bilgisi

Temel Excel Kullanım Bilgisi Temel Excel Kullanım Bilgisi Excel Fonksiyonları Başlangıç Microsoft Excel in en zevkli olan formül kısmı hakkında kısa kısa bilgileri ve bazı formüllerin nasıl yazıldığını burada bulacaksınız.

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka

Detaylı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme

MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme MMT 106 Teknik Fotoğrafçılık 3 Digital Görüntüleme 2010-2011 Bahar Yarıyılı Ar. Gör. Dr. Ersoy Erişir 1 Konvansiyonel Görüntüleme (Fotografi) 2 Görüntü Tasarımı 3 Digital Görüntüleme 3.1 Renkler 3.2.1

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı

Detaylı

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini

Detaylı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

MİKROİŞLEMCİ MİMARİLERİ

MİKROİŞLEMCİ MİMARİLERİ MİKROİŞLEMCİ MİMARİLERİ Mikroişlemcilerin yapısı tipik olarak 2 alt sınıfta incelenebilir: Mikroişlemci mimarisi (Komut seti mimarisi), Mikroişlemci organizasyonu (İşlemci mikromimarisi). CISC 1980 lerden

Detaylı

K uark projesi. Temel Özellikler :

K uark projesi. Temel Özellikler : K uark projesi Temel Özellikler : Kuark işlemcisi 16 bit kelime uzunluğuna sahip bir işlemcidir. Veri ve komut belleği aynıdır ve en fazla 4 Gigabyte bellek adresleyebilir. İşlemcimiz paralel çalışabilecek

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

C Dersi Bölüm 1. Bilgisayar Donanımı

C Dersi Bölüm 1. Bilgisayar Donanımı C Dersi Bölüm 1 M Bodur 1 Bilgisayar Donanımı Bilgisayarın yapısını ve çalışma prensiplerini bilmemiz Bir bilgisayar programından neler bekleyebileceğimizi anlamamızı sağlar. Bigisayar dört temel birimden

Detaylı

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009 1-) Instruction Cycle State Diagram ı çizip herbir state için gerçekleştirilen işlemleri detaylı bir şekilde açıklayınız. Instruction state cycle da üstteki kısımlar CPU dışında alttaki kısımlar CPU içinde

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-2 Değişken Kavramı ve Temel Operatörler BLM-111 PROGRAMLAMA DİLLERİ I Ders-2 Değişken Kavramı ve Temel Operatörler Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Nesne Bellekte yer kaplayan ve içeriklerine

Detaylı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı

BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1. Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı BULANIK MANTIK VE SİSTEMLERİ 2014 2015 BAHAR DÖNEMİ ÖDEV 1 Müslüm ÖZTÜRK 148164001004 Bilişim Teknolojileri Mühendisliği ABD Doktora Programı Mart 2015 0 SORU 1) Bulanık Küme nedir? Bulanık Kümenin (fuzzy

Detaylı

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6

DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6 DOĞU AKDENİZ ÜNİVERSİTESİ BAHAR 2012-2013 BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BLGM-324 BİLGİSAYAR MİMARİSİ DENEY #6 16 Bitlik R Tipi İçin ALTERA MAX-PLUS-II VHDL de Tam Tek Saat Veri Yolu Birimi Amaç: Tek-Saat

Detaylı

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı Öğr. Gör. Cansu AYVAZ GÜVEN NESNE TABANLI PROGRAMLAMA Java Değişkenler ve Veri Tipleri Operatörler JAVA Java Java SUN bilgisayar şirketince

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ AYRIK YAPILAR P r o f. D r. Ö m e r A k ı n v e Y r d. D o ç. D r. M u r a t Ö z b a y o ğ l u n u n Ç e v i r i E d i t ö r l ü ğ ü n ü ü s t l e n d i ğ i «A y r ı k M a t e m a t i k v e U y g u l a

Detaylı

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir: 8051 Ailesi 8051 MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur. 8051 çekirdeğinin temel özellikkleri aşağıda verilmiştir: 1. Kontrol uygulamaları için en uygun hale getirilmiş

Detaylı

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş Kaynak : Douglas E. Comer, Computer Networks and Internets With Internet Applications, 4. Baskı, 2004, Prentice Hall Hazırlayan : Tacettin

Detaylı

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir.

DSP DONANIMI. Pek çok DSP için temel elemanlar aşağıdaki gibidir. DSP DONANIMI Pek çok DSP için temel elemanlar aşağıdaki gibidir. Çarpıcı yada çarpıcı- toplayıcı (MPY/MAC) Aritmetik lojik birim (ALU) Öteleyici (SHIFTER) Adres üreteci (AG) Komut yada program sıralayıcı

Detaylı