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

Benzer belgeler
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ı

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

BILGISAYAR ARITMETIGI

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

BM-311 Bilgisayar Mimarisi

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

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

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

(ReduceD INSTRUCTION SET COMPUTER-RISC)

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

BİLGİSAYAR MİMARİSİ-II İÇERİK ADRESLEMELİ BELLEK

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

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

BM-311 Bilgisayar Mimarisi

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

BILGISAYAR ARITMETIGI

YZM 2116 Veri Yapıları

BM-311 Bilgisayar Mimarisi

Mikrobilgisayar Mimarisi ve Programlama

Komutların Yürütülmesi

8086 Mikroişlemcisi Komut Seti

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

ALGORİTMA VE PROGRAMLAMA II

İşletim Sistemlerine Giriş

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

ASENKRON (Eş Zamanlı Olmayan) HABERLEŞME ARA YÜZEYİ

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

İşlem Buyrukları MİKROİŞLEMCİ SİSTEMLERİ. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Bilgisayar Yapısı MİKROİŞLEMCİ SİSTEMLERİ. Bilgisayar Temel Birimleri. MİB Yapısı. Kütükler. Kütükler

PIC16F877A nın Genel Özellikleri

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

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

MTM 305 MİKROİŞLEMCİLER

Yığın MİKROİŞLEMCİ SİSTEMLERİ. Yığın. Örnek MİB için Yığın. Yığma İşlemi. Çekme İşlemi

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

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

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

Yrd. Doç. Dr. Caner ÖZCAN

İşletim Sistemlerine Giriş

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

VERİ YAPILARI DERS NOTLARI BÖLÜM 4 STACK (YIĞIN, YIĞIT) Yard. Doç. Dr. Deniz KILINÇ

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Bilgisayar Mimarisi Nedir?

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

William Stallings Computer Organization and Architecture 9 th Edition

BM-311 Bilgisayar Mimarisi

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Algoritma ve Programlamaya Giriş

Bölüm 4 Veri Aktarma Komutları

(Random-Access Memory)

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

XC8 ile PİC uygulamaları

GİRİŞ-ÇIKIŞ (INPUT / OUTPUT) ORGANİZASYONU

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

Günümüz bilgi toplumunda bilgisayar, her alanda kendine yer edinmiş ve insana, bir çok işlemde yardımcı olarak büyük kolaylık sağlamaktadır.

ZAFİYET TESPİTİ VE SIZMA YÖNTEMLERİ. Eyüp ÇELİK Bilgi Teknolojileri Güvenlik Uzmanı

Von Neumann Mimarisi. Mikroişlemciler ve Mikrobilgisayarlar 1

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

Negatif tam sayılar, sıfır (0) ve pozitif tam sayıların birleşimine tam sayılar denir.

Sequential (SEQ, Ardışıl) Y86 İşlemci Uygulaması (Devamı)

MİKROBİLGİSAYAR LABORATUVARI DENEY RAPORU

İşletim Sistemleri (Operating Systems)

Kasırga [Gizli] KASIRGA PROJESİ 3. GELİŞME RAPORU Ankara

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

İşletim Sistemlerine Giriş

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

FORMÜLLER VE FONKSİYONLAR

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

5. HAFTA KBT104 BİLGİSAYAR DONANIMI. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi

MAK 210 SAYISAL ANALİZ

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI MİKROİŞLEMCİLİ A/D DÖNÜŞTÜRÜCÜ

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

UYGUN MATEMATİK 5 SORU BANKASI. HAZIRLAYANLAR Fatih KOCAMAN Meryem ER. : Sad k Uygun E itim Yay nlar. : Yaz n Matbaas / stanbul

Bilgisayar İşletim Sistemleri BLG 312

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

Düşünelim? Günlük hayatta bilgisayar hangi alanlarda kullanılmaktadır? Bilgisayarın farklı tip ve özellikte olmasının sebepleri neler olabilir?

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Yrd. Doç. Dr. Caner ÖZCAN

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

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

Ana Bellek (RAM) İşlemci (CPU) Depolama

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

Sistem Programlama. Seri ve Paralel Port Kullanımı:

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.

FORMEL DİLLER VE SOYUT MAKİNALAR. Hafta 2

Yrd. Doç. Dr. Caner ÖZCAN

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

A { x 3 x 9, x } kümesinin eleman sayısı A { x : x 1 3,x } kümesinin eleman sayısı KÜMELER

K uark projesi. Temel Özellikler :

Çalışma Açısından Bilgisayarlar

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

Transkript:

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 en tepesinde bulunur. Yığıt Göstergesi (Stack Pointer): Sayısal bilgisayarlarda yığıt temel olarak bir bellek birimidir. Sadece sayabilen başka hiçbir değerin yazılamadığı 1 adres yazacı vardır. Bu tip adres yazaçlarına yığıt göstergesi adı verilir ve aldığı değer daima yığıttaki son kelimenin adresini gösterir. Yığıt ile ilgili işlemler Ekleme ve Silmedir. Ekleme işlemi itme olarak adlandırılır. Çünkü üste bir şey konur ve alttakiler aşağıya gider. Bunun tersi işlem silme işlemidir ve çekme olarak adlandırılır. Çünkü bu işlem sonucu alttakilerin bir yukarı çıktıkları varsayılır. Yazaç Yığıtı (Register Stack): Şekil. 64 Kelimelik Yığıtın Blok Şeması Yığıt, ya belleğin bir bölümünde yer alır veya sonlu sayıda bellek kelimeleri ve yazaçların toplamı ile düzenlenir. Yığıt göstergesi SP yığıtın en tepesinde bulunan kelimenin adresinin ikili değerini içerir. Yığıttaki üç bilgiden C en tepede olduğundan SP deki adres 3 yani C nin adresidir. Tepedeki bilgiyi silmek için 3 adresindeki bilgi okunur ve SP nin içeriği azaltılır. Böylelikle yığıtın tepesine B gelir ve SP deki adres değeri 2 olur. Yeni bir bilgiyi yığıta yazmak için SP bir arttırılır ve yeni adrese yeni bilgi yazılır.

2 64 kelimelik bir yığıtta 2 6 = 64 olduğundan S=6 bittir ve değeri 63 ten (ikili 111111) büyük olamaz. 63 1 arttırıldığında 0 sonucuna ulaşılır. 111111 + 1 = 1000000 ikili olarak. Fakat SP en küçük 6 önemli biti tuttuğundan 0 elde edilir. Benzer olarak 000000 dan 1 çıkarıldığında sonuç 111111 olur. Bir bitlik DOLU yazacı, yığıt dolu ise 1, bir bitlik BOŞ yazacı yığıt boş ise 1 yapılır. Veri yazacı DR yığıta yazılan veya yığıttan okunan ikili veriyi tutar. İtme (Yığıt a Ekleme-PUSH): Başlangıçta yığıt göstergesi 0 ile temizlenir, BOŞ = 1 ve DOLU = 0 yapılır. Böylece SP = 0 adresini gösterir ve yığıtın boş olduğunu işaret eder. Eğer yığıt dolu değil ise (yani DOLU = 0 ise) itme işlemi ile yeni bilgi girilebilir. İtme işleminin mikro işlemleri: SP SP + 1 M[SP] DR Eğer (SP = 0) ise (DOLU 1) BOŞ 0 SP yi 1 arttırır. DR deki bilgiyi yığıtın en üstüne yaz. Yığıtın doluluğunu kontrol et Yığıtın boş olmadığını işaret et SP bir arttırıldığından bir yukarıdaki kelimenin adresini gösterir durumuna geldi. Belleğe yazma işlemi ile DR deki bilgi yığıtın en üst kısmına yazılır. Çünkü SP de daima en üst kısmın adresi vardır. Eğer SP sıfır olursa yığıt doludur ve DOLU = 1 yapılır. SP nin 0 olması, son adres 63 iken buna bir eklenince SP taşar ve kalan kısım 0 olur. Dolayısıyla yeni bilgi 0 adresine yazılmağa çalışılır. 0 adresine bilgi yazılınca yığıtta yer kalmamış demektir. Dolayısıyla BOŞ sıfır yapılır. Çekme (Yığıt tan Silme-POP): Eğer yığıt boş değilse (BOŞ = 0) bu taktirde son girilmiş bilgi yığıttan silinebilir. Çekme işleminin mikro işlemleri: DR M[SP] SP SP-1 Eğer (SP = 0) ise (BOŞ 1) DOLU 0 Yığıttan bilgiyi oku SP yi 1 azalt Yığıtın boşluğunu kontrol et Yığıtın dolu olmadığını işaretle İlk mikro işlem yığıttan bilgiyi DR ye okur, sonra SP bir azaltılır. Eğer SP = 0 olursa yığıt boştur ve BOŞ 1 yapılır. Bu koşul eğer okunan bilgi 1 nolu adreste ise yapılır. Bu adres okunduğu zaman yığıttaki bütün yazaçlar boştur. Eğer okuma işlemi 1 adresinden değil de 0 adresinden yapılırsa,

3 SP azaltılınca SP nin değeri 63 yani ikili 111111 olur, 0 adresi yığıttaki son değeri alır. DOLU = 1 iken itme veya BOŞ = 1 iken çekme işlemi yapılırsa hatalı işlem yapılmış olur. Bellek Yığıtı (Memory Stack): Şekil. Program, Veri ve Yığıt Şeklinde Ayrılmış Bilgisayar Hafızası Şekil üç bölüme ayrılmış bilgisayar hafızasının bir bölümünü göstermektedir. PC programda bir sonraki buyruğun adresini gösterir ve al-getir evresi boyunca bir buyruk okumak için kullanılır. AR adres yazacı bir sonraki veriyi gösterir ve çalışma evresi boyunca bir veri okumak için kullanılır. SP yığıtın en üstünü gösterir ve yığıta atılacak veya yığıttan alınacak verilerin itme yada içme işleminde kullanılır. Şekil de görüldüğü gibi SP nin başlangıç değeri 4001 dir. Buna göre birinci veri girildiğinde değeri 4000, ikinci veri girildiğinde 3999 ve en son veride adres değeri 3000 olacaktır.

4 Yeni bir verinin itme (ekleme) işlemi: SP SP-1 M[SP] DR SP azaltılarak sonraki kelimenin adresi gösterilir. Belleğe yazma işlemi DR den yığıtın en üstüne yazma işlemidir. Yeni bir verinin çekme (silme) işlemi: DR M[SP] SP SP + 1 şeklinde olur. Yığıt Limitleri: Çoğu bilgisayarlar yığıt taşması (dolu yığıt) veya yığıt bitmesi (boş yığıt) denetimini donanım ile sağlamaz. Yığıt limitleri için iki işlemci yazacı kullanarak denetim yapılır. Yazacın birisi üst limiti (burada 3000) ve diğer yığıtta alt limiti (burada 4001) tutar. Bir sonraki itme işleminde SP üst-limit yazacı ile, çekme işleminde de alt-limit yazacı ile karşılaştırılır. İtme ya da çekmeden herhangi biri için ihtiyaç duyulacak iki mikro işlem SP vasıtasıyla belleğe giriş ve SP yi güncelleştirme işlemleridir. Bir yığıt göstergesine bir başlangıç değeri yüklenir. Buraya yığıt başlangıç değeri olarak en alttaki adres atanır. Bundan sonra SP değeri otomatik olarak her itme veya çekme işlemi ile azaltılır veya arttırılır. Zıt Polonyalı Gösterimi: Zıt polonyalı yöntemi, yığıt işletimi için uygun bir yöntemdir. A * B + C * D ifadesi zıt polonyalı gösteriminde AB * CD * + biçiminde yazılır ve şu şekilde değerlendirilir. İfade soldan sağa doğru aratılır, bir operatöre ulaşıldığında, operatörün solunda yer alan iki veri çalıştırılır. Zıt polonyalı gösterimindeki matematiksel ifadelerin değerlendirilmesi için en etkili yol yazaçların bir yığıt düzenlemesi ile bulunmasıdır.

5 Yığıttaki mikro işlemler: (1)Yığıtta en üstteki iki veri işlem için kullanılır, (2) Yığıt çekilir. İşlem sonucu üstteki veri ile yer değiştirir. Verileri sürekli olarak yığıt içine iterek ve işlemleri yukarıdaki gibi çalıştırarak, ifadeler uygun sırada değerlendirilir ve sonuç yığıtın en üstünde kalır. (3*4) + (5*6) aritmetik ifadesi ele alındığında, zıt polonyalı yönteminde bu ifade 34 * 56 * + şeklinde gösterilir. Şekil. (3*4) + (5*6) İşlemi İçin Yığıt İşlemleri BUYRUK BİÇİMLERİ Bir buyruğun biçimi bir dikdörtgen içinde verilir. Bir buyruğun bitleri alanlar adı verilen gruplara ayrılır. Bir buyruk biçiminde bulunan alanlar; 1. İcra edilecek işlemi gösteren OPR kod alanı 2. Bir adres alanı: Bellek alanını veya bir işlemci yazacını gösterir 3. Bir kip alanı: Verinin yolunu veya etkin adresin bulunduğunu gösterir

6 Yazaç Adresi: Bellek içinde bulunan veriler yazaç adresiyle bellidir. Bir yazaç adresi k bitlik bir ikili sayıdır. MİB içindeki 2 k tane yazaçtan bir tanesini belirtir. Eğer MİB da R0 dan başlayıp R15 e kadar giden 16 tane yazaç varsa yazaç adresleri için 4 bit yeter. Örneğin 0110 adresi R5 i gösterir ADRES SAYILARINA GÖRE BUYRUK BİÇİMLERİ Üç Adresli Buyruklar: X = (A + B) * (C + D) yi yapan birleştirici dil programı. ADD R1, A, B ADD R2, C, D MUL X, R1, R2 R1 M[A] + M[B] R2 M[C] + M[D] M[X] R1 * R2 İki Adresli Buyruklar X = (A + B) * (C + D) işlemini yapan birleştirici dil programı. MOV R1 A R1 M[A] ADD R1,B R1 R1 + M[B] MOV R2,C R2 M[C] ADD R2,D R2 R2 + M[D] MUL R1,R2 MOV x, R1 R1 R1 * R2 M[X] R1 Birinci adresin hem kaynak, hem de hedef yazacı olduğu varsayılıyor. MOV buyruğu veriyi bellekten işlemci yazacına aktarır.

7 Bir Adresli Buyruklar: Tüm veri işlemleri için AC yi kullanırlar. LOAD A AC M[A] ADD B AC A + M[B] STORE T M[T] AC LOAD C AC M[C] ADD D AC AC + M[D] MUL T AC AC * M[T] STORE X M[X] AC Bütün işlemler AC yazacı ile bellekteki veriler arasındadır. T bellek adresi ara değerin saklanması içindir. Sıfır Adresli Buyruklar: Yığıt kurulumlu bir bilgisayarda buyrukların adrese gereksinimi yoktur. ADD, MUL, PUSH ve POP adressizdir, fakat yığıtla bellek haberleşmesi için bellek adreslerine gerek vardır. (TOS = yığıt göstergesi). X = (A + B) * (C + D) işleminin yığıt kurulumlu bilgisayarda birleştirici dil programı. PUSH A TOS A PUSH B TOS B ADD TOS (A + B) PUSH C TOS C PUSH D TOS D ADD TOS (C + D) MUL TOS (C + D) * (A + B) POP X M[X] TOS

8 RISC Buyrukları RISC buyruk kümesi, bellekle MİB arasındaki aktarımlar için LOAD ve STORE buyrukları ile kısıtlıdır. Diğer bütün buyruklar MİB içinde icra edilir. Yani buyruklar içinde bellek adreslemeli buyruk yoktur. RISC için yazılmış bir programda LOAD ve STORE buyrukları bir bellek ve bir yazaç adresi içerir. Hesaplama tipi buyruklar ise 3 adresli buyruk olup, adreslerin hepsi yazaç adresleridir. X = (A + B) * (C + D) işleminin RISC buyrukları ile birleştirici dil programı. LOAD R1, A R1 M[A] LOAD R2, B R2 M[B] LOAD R3, C R3 M[C] LOAD R4, D R4 M[C] ADD R1, R1, R2 R1 R1 + R2 ADD R3, R3, R4 R3 R3 + R4 MUL R1, R1, R3 R1 R1 * R3 STORE X, R1 M[X] R1