Intel 8086 Mimarisi Adresleme Modları 1 Mikroişlemciler.

Slides:



Advertisements
Benzer bir sunumlar
Programming 8086 – Kısım II Program Akışı ve Döngüler
Advertisements

SelCPU Temmuz 2008 Bilg.Bil.Müh.Selçuk BAŞAK SelSistem Bilgi ve İletişim Teknolojileri
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü Sürüm-A
8259A Programlanabilir Kesme Denetleyicisi (PIC)
Kesmeler (Interrupts)
Prof. Dr. Eşref ADALI Yrd. Doç. Dr. Şule Gündüz Öğüdücü SürümA
TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ
8088 Kesme Operasyonu.
Programlar Sabit diskte saklanır Sabit diskten veri okumak çok yava ş oldu ğ u için programlar çalı ş tırılmadan önce RAM’e yüklenir.
CPU (Merkezi İşlem Ünitesi)
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
Register ve Türleri Nihal GÜNGÖR.
Temel Bilgisayar Yapısı ve Devreleri
Yıldız Teknik Üniversitesi
Mikroişlemciler ve Mikrobilgisayarlar
DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ
ENM 509 ÜRETİM SİSTEMLERİ PLANLAMASI
İŞLEMCİ MİMARİLERİ – Derya Işık
Mikroişlemciler Sayı gösterimleri.
Temel Bilgisayar Yapısı ve Devreleri
LD/LDI LD X0 LDI X0 X0 Y0 X0 Y1 Temel Komutlar
8086 Programlama – Kısım III Prosedürler
Intel 8086 Mimarisi Adresleme Modları
BİL 322 Programlanabilir Sayısal Sistemler LCD ile Uygulama Geliştirme.
BİLGİSAYAR MİMARİLERİ 2.Hafta: Bilgisayar Bileşenleri
Karşılaştırıcı ve Aritmetik İşlem Devreleri
BİLGİSAYAR MİMARİLERİ 7.Hafta: Çoklu-Çevrim İşlemci
ENDÜSTRİYEL GÖMÜLÜ BİLGİSAYAR SİSTEMLERİ
DERS 4 MİKROİŞLEMCİ PROGRAMLAMA. Dr. Emin Argun Oral, Atatürk Üniversitesi 2008 Ders 4, Slayt 2İÇERİK Yüksek seviyeli programlama dilleri Düşük sevyeli.
SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar
Lınk layer ProtoCol (ARP,INARP) YUNUS EMRE BAYAZIT.
Sevda GÜL 1450Y  EEG nedir?  EEG Nasıl Ölçülür?  İ nsan beyninin yaydı ğ ı dalgalar nelerdir?  Epilepsi nedir?  Epilepsi verilenin YSA ile.
9. HAFTA 25 Nisan2016. Fonksiyon M-Dosyaları Fonksiyon dosyaları ilk satırda “function” kelimesi bulunan “.m” uzantısı bulunan dosyalardır. MATLAB içinde.
Komut Türleri  8051’de de kullanılan komutlar 8-bit opkoda sahiptir.  8-bit opkod 2 8 =256 farklı komuta imkan tanır ve 8051’de toplam 255 komut tanımlıdır.
Giri ş 1 Mikroişlemciler. İçerik 2 Tarihi geli ş im Tanımlar Mikroi ş lemci tabanlı sistemler Sayı sistemleri.
8086 Programlaması – Kısım 1 1 Mikroişlemciler. İçerik 2 Hafıza Eri ş imi MOV komutu De ğ i ş kenler, Array’ler, Sabitler Aritmetik ve Mantık Komutları.
DERS 5 PIC 16F84 PROGRAMLAMA.
Mikrobilgisayar Tasarım Yapıları
Ders Adı: Sayısal Elektronik
Bilgisayar Donanım ve Sistem Yazılımı
8086 Programlama – Kısım IV Stack’ler, Makro’lar
Bilgisayar Donanım ve Sistem Yazılımı
BÖLÜM 11 Sayıcılar (Counters) Prof. Dr. Hüseyin Ekiz.
PROGRAMLAMA TEMELLERİ
Mikroişlemcili Sistemler ve Laboratuvarı
Intel 8086 Mimarisi Adresleme Modları
Mikroişlemciler Adresleme Modları.
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemciler Giriş.
Mikroişlemci Sistemleri
Bilgisayar Donanım ve Sistem Yazılımı
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI
Bilgisayar Donanım ve Sistem Yazılımı
Mikroişlemcili Sistem Tasarımı
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
PINAR KARTALO Ğ LU.  Belirli sayıda i ş lemlerin tekrarlanması için kullanılan döngülerdir. for döngüleri ba ş langıç ve biti ş de ğ erleri arasında.
NİŞANTAŞI ÜNİVERSİTESİ
Bölüm 7 İfadeler ve atamalar.
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
MİKROİŞLEMCİLER VE MİKROBİLGİSAYARLAR
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
NİŞANTAŞI ÜNİVERSİTESİ
Mikrobilgisayar Tasarım Yapıları
DERS 14 PIC 16F84 ile EEPROM VERİ BELLEĞİ KULLANIMI
Prof. Dr. Eşref ADALI Doç. Dr. Şule Gündüz Öğüdücü Sürüm-B
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Önbellek Hafızalar BIL-304: Bilgisayar Mimarisi
Sunum transkripti:

Intel 8086 Mimarisi Adresleme Modları 1 Mikroişlemciler

İçerik Mikroi ş lemcinin iç tasarımı

Mimarisi

INTEL AİLESİNİN 16 BİTLİK MİKROİŞLEMCİLERİ- 8086/8088 MİKROİŞLEMCİSİ 4 İ Ç M İ MAR İ S İ Ş ekilde x86 ailesinin 16-bit çekirdek mimarisinin basitle ş tirilmi ş bir gösterimi verilmi ş tir. Mikroi ş lemci temel iki ayrı çalı ş ma birimine sahiptir. Bu birimler:Yürütme birimi (Execution Unit – EU) ve yol arabirimi (Bus Interface Unit – BIU). EU komutları yorumlamakta (decode) ve yürütmektedir. BIU ise yol i ş lerini (i ş lem kodu okuma, operand okuma, veri saklama ve I/O cihazlarıyla haberle ş me gibi) gerçekle ş tirmektedir.

/ 8088 mikroişlemcisinin iç mimarisi

YÜRÜTME BİRİMİ EU komutları çözme ve komutları yürütme için bir kontrol birimine; aritmetik ve lojik i ş lemler için bir ALU’ya; genel amaçlı saklayıcılara (AX, BX, CX ve DX); i ş aretçi (BP ve SP) ve indis (SI, DI ) saklayıcıları ile bayraklar (flags) saklayıcısına sahiptir. EU içindeki kontrol birimi, makine dilindeki komutları yorumlamakta ve komutları yürütmek için gerekli i ş lemleri kontrol etmektedir. EU komut byte’larını BIU tarafından komut kuyru ğ una (instruction queue ) yerle ş tirilme sırasıyla, komut kuyru ğ undan almaktadır. 6

YÜRÜTME BİRİMİ- Devam.. E ğ er EU hafızadan bir operand’a ihtiyaç duyarsa veya bir sonucu hafızada saklamak isterse istenilen i ş lemi BIU’e yönlendirir. EU, bir i ş lem kodu okuma veya saklama i ş lemi için, BIU tarafından fiziksel adresi hesaplamada gerekenleri sa ğ lamaktadır. ALU, operand’larını, dahili yol üzerinden, genel amaçlı saklayıcılardan, komut byte’larından veya BIU’dan (örne ğ in, hafızadan okunan operand’lar ) almaktadır. ALU 8-bit veya 16- bit i ş lem yapma kapasitesine sahiptir. 7

YOL ARABİRİMİ BIU, bütün dı ş yol i ş lemlerini kontrol eden bir yol kontrol birimine; EU için komut byte’larını tutan komut kuyru ğ una; fiziksel hafıza adresleri üretme için bir toplayıcıya; 4 segment saklayıcısına (CS, SS, DS ve ES) ; komut i ş aretçisine (IP) ve verileri geçici olarak saklamada kullanılan bazı iç saklayıcılara sahiptir. BIU, hafıza ve I/O i ş lemleri dahil, bütün dı ş yol i ş lemlerini kontrol etmekten sorumludur. Tümdevre harici adres yolu, belli bir hafıza hücresini veya I/O port’unu seçmede kullanılır. 8

YOL ARABİRİMİ-Devam.. BIU, komut byte’larını okur ve onları EU için komut kuyru ğ una yerle ş tirir. BIU en fazla 4 (8088 için ) veya 6 (8086 için ) byte komut kodunu okuyabilir. EU, bir veri okuma veya yazma i ş lemine ihtiyaç duymadı ğ ı veya program akı ş ında bir dallanma olmadı ğ ı sürece, BIU komut byte’larını önden okuma için serbesttir. Bu ş ekilde komut önden okuma, BIU ve EU birimlerinin paralel çalı ş masına imkan tanır. Bu sayede i ş lemcinin veri i ş lem hızı artar. Bu ş ekilde çalı ş an bilgisayar mimarisine i ş hatlı mimari (pipelined architecture) denir. Ş ekil 3.2’de klasik bir 8- bit i ş lemcideki, örne ğ in 8085A’daki ile i ş hatlı mimariye sahip 8086/8088 mikroi ş lemcilerindeki yol zamanlaması görülmektedir. 9

YOL ARABİRİMİ-Devam.. Ş ekil 3.2 (a)’da i ş lemci, sırasıyla hafızadan i ş lem kodu okuma okuma (fetch), kod çözme (decode) ve yürütme (execute) i ş lemlerini sırayla yapıp iki komut için bitirmekte ve üçüncü komutun i ş lem kodunu okumaktadır. Birinci komutun yürütmesinde, hafızadan bir veri okuma i ş lemi ve ikinci komutun yürütmesinde ise, hafızaya bir yazma i ş lemi yapılmaktadır. 10

YOL ARABİRİMİ-Devam.. 11

YOL ARABİRİMİ-Devam.. Ş ekil 3.2 (b)’ deki x86 i ş lemcisinde, birinci komutun yürütülmesi ile ikinci komutun okuma i ş lemi (fetch 2) üst üste gelmekte, yani aynı anda paralel yapılmaktadır. İ kinci komutun yürütülmesi de üçünçü komutun okunması (fetch 3 ) ile paralel yapılmaktadır. Klasik yapıdaki mikroi ş lemcide, yukarıda ş ekil 3.2 (a )’ da verilen zamanlama diyagramı sonunda, üçüncü komutun i ş lem kodu okunurken, yakla ş ık aynı zamanda, i ş hatlı yapıdaki i ş lemci, üçüncü komutun yürütmesini bitirmi ş ve dördüncü komutun i ş lem kodunuda okumu ş durumdadır. Klasik mimaride mikroi ş lemci kod çözümü yaparken, (bazen de yürütme sırasında, operand gerektirmeyen komutlarda )yol, bo ş ta kalmakta, yolda bir i ş yapılmamaktadır. Buna kar ş ın, i ş hatlı mimaride yol (genelde ) bo ş kalmamaktadır. Verilen bu zamanlama diyagramından görüldü ğ ü gibi, i ş hatlı mimari yapı mikroi ş lemcinin veri i ş lem hızını artırmaktadır. 12

SAKLAYICILAR Ş ekil 3.3 intel x86 ailesinde yer alan mikroi ş lemcilerin temel saklayıcılarını göstermektedir. Gri olarak gölgelendirilmi ş alanlar, 80386, ve pentium gibi 32-bit i ş lemcilerde bulunur. X86 saklayıcıları 3 grupta toplanabilir. Genel amaçlı saklayıcılar, i ş aretçi (pointer ) ve indis (index ) saklayıcıları ve segment saklayıcıları. Bu gruplara ek olarak, CPU’ya ait çe ş itli durumları gösteren, örne ğ in bir aritmetik veya lojik i ş lem sonucu gibi, bir bayrak (flag ) saklayıcısı da bulunmaktadır. 13

SAKLAYICILAR-Devam.. 14

GENEL -AMAÇLI SAKLAYICILAR Bu grupta yer alan saklayıcılar, programcı tarafından çok de ğ i ş ik amaçlarla kullanılabilmektedir. Genel amaçlı saklayıcılardan her biri, 32-bit (EAX, EBX, ECX ve EDX), 16-bit (AX, BX, CX ve DX ) veya 8-bit (AH, AL, BH, BL, CH, CL ) olarak kullanılabilir. Daha sonraki bölümlerde açıklanacak bazı komutlar, bu saklayıcıları özel i ş lemlerde kullandıkları için, her birine bu i ş lemleri belirten bir isim verilmi ş tir. (accumulator, base, count ve data ) Saklayıcılar, assembly dilde, iki veya üç harfli gösterimlerle belirtilir. Örne ğ in, accumulator (ACC ) EAX, AX, AH veya AL ile ifade edilir. 15

GENEL -AMAÇLI SAKLAYICILAR (Devam..) AX (Accumulator-Toplam ) : Bir aritmetik veya lojik i ş lemden sonra sonucu içerdi ğ i (tuttu ğ u ) için bu ş ekilde adlandırılmı ş tır. EAX, AH veya AL ş eklinde adreslenir. BX (Base- Taban ) : Hafızada yer alan bir verinin taban (ofset ) adresini veya XLAT (translate ) komutuyla eri ş ilen bir tablo verisinin taban adresini içermede sık olarak kullanılır. EBX, BH veya BL ş eklinde adreslenir. CX (Count –sayma ) : Bit kaydırma (shift ) veya döndürme (rotate ) gibi i ş lemlerde, bit -sayısını (count ) tutmada string veya LOOP komutundaki i ş lem sayısını belirtmede döngü sayacı olarak kullanılır. ECX, CH veya CL ş eklinde adreslenir. DX (Data –veri ) : Özellikle, 16- veya 32-bit çarpma i ş lemlerinden sonra, sonucun yüksek de ğ erli kısmını, bir bölme i ş leminden önce bölünen sayının yüksek de ğ erli kısmını ve de ğ i ş ken I/O komutunda I/O port numarasını tutma i ş lemlerinde kullanılır. EDX, DH veya DL ş eklinde adreslenir. 16

İŞARETÇİ VE İNDİS SAKLAYICILARI İş aretçi ve indis saklayıcıları, genel amaçlı olarak da kullanılabilmelerine ra ğ men, genellikle, hafızada yer alan operand’lara eri ş imde indis veya i ş aretçi olarak kullanılır. SP (Stack pointer-yı ğ ın i ş aretçisi ) : En son giren ilk çıkar (Last- İ n First-Out- L İ FO ) ş eklinde çalı ş an, yı ğ ın (stack ) hafızada yer alan bir veriyi adreslemede kullanılır. Bu saklayıcı, PUSH ve POP komutları yürütülürken; bir alt program CALL komutu ile ça ğ rıldı ğ ında veya programdan bir RET komutu ile döndürüldü ğ ünde ; kesme i ş lemlerinde otomatik olarak CPU tarafından verileri yı ğ ın hafızaya yazmada ve kesme programında geri dönerken tekrar geri okumada kullanılmaktadır. ESP 32-bit i ş aretçi olarak 32-bit i ş lemcilerde kullanılır. 17

İŞARETÇİ VE İNDİS SAKLAYICILARI (Devam..) BP (Base pointer- taban i ş aretçisi ) :Yı ğ ın hafızada yer alan bir veri dizisini (data array ) adreslemede kullanılır. EBP, 32-bit i ş aretçi olarak 32-bit i ş lemcilerde kullanılır. SI (Source İ ndex-kaynak indisi ) : string komutlarında kaynak veriyi dolaylı adreslemede kullanılır. ESI, 32-Bit i ş aretçi olarak 32-bit i ş lemcilerde kullanılır. DI (Destination Index- Hedef İ ndisi ) : String komutlarında hedef veriyi dolaylı adreslemede kullanılır. EDI, 32-bit i ş aretçi olarak 32-bit i ş lemcilerde kullanılır. IP (Instruction Pointer-Komut İş aretçisi ) : Her zaman mikroi ş lemci tarafından yürütülecek bir sonraki komutu adreslemede kullanılır. IP içeri ğ inin CS x 10H ile toplanmasıyla, bir sonraki komutun gerçekte olan fiziksel hafıza adresi bulunur. EIP, 32- bit i ş aretçi olarak 32-bit i ş lemcilerde kullanılır. 18

SEGMENT SAKLAYICILARI Mikroi ş lemcideki di ğ er saklayıcılarla beraber hafıza adresleri üretmede kullanılır. Ailenin ürünlerinde 4 veya 6 tane segment saklayıcısı bulunmaktadır. CS (Code Segment ) : Kod segment, hafızanın, programları ve alt programları tutan bir bölümdür.CS saklayıcısı, program kodunun ba ş langıç taban adresini belirler. CS, mikroi ş lemcilerinde 64 Kbyte, ve 80486’da 4 GB ile sınırlıdır. DS ( Data Segment ) : Veri segment’i, bir program tarafından kullanılan verilerin bulundu ğ u hafıza alanıdır.DS saklayıcısı, bu veri alanının ba ş langıç taban adresini belirler. 19

SEGMENT SAKLAYICILARI (Devam..) ES ( Extra Segment ) : Bazı string komutlarında kullanılan ek veri alanıdır. SS ( Stack Segment ) : Yı ğ ın için kullanılan hafıza alanını belirler. Yı ğ ın segment’ine yazılacak veya okunacak verinin adresi, SP saklayıcısı tarafından belirlenir. BP saklayıcısı da SS’de bulunan veriyi adreslemede kullanılır. FS ve GS : Bu ek segment saklayıcılar, ve 80486’da bulunup programlarda ek hafıza segment’leri olarak kullanılabilir. 20

BAYRAKLAR ( FLAGS ) SAKLAYICISI Bayraklar (flags), mikroi ş lemcinin çalı ş masını belirledi ğ i gibi, çalı ş ma sırasındaki durumunu da yansıtır. Ş ekil 3.4, 8086/8088 mikroi ş lemcilerinin bayraklar (flags) sayıcısını göstermektedir. 8086/8088’ den pentium’a kadar olan mikroi ş lemcilerde, bu bayraklar uyumludur. Buna kar ş ın, mikroi ş lemcilerinde bayrak sayıcısı 16-bit iken pentium i ş lemcilerinde EFLAGS (Extended flags ) saklayıcısı 32-bit içermektedir. Bayrak bit’leri, birçok aritmetik ve lojik komut yürütüldükten sonra de ğ i ş mektedir. 21

BAYRAKLAR ( FLAGS ) SAKLAYICISI (Devam..) C ( Carry ) : Bir aritmetik i ş lemde, toplamadan sonraki eldeyi (carry ) veya çıkarmadan sonraki ödüncü ( borrow ) belirtir. Programlarda hata durumu, özel i ş lem durumları ve sonuçları ile ilgili Boolean bayrak olarak da kullanılır. P (Parity ) : Tek e ş lik ( odd parity ) i ş lemi, lojik 0; çift e ş lik (even parity ) i ş lemi, lojik 1 ile gösterilir. E ş lik, tek veya çift olarak belirtilen, bir byte veya word’deki 1’lerin sayısıdır. Örne ğ in, ikili olarak belirtilen bir sayı ( ) 3 tane 1’e sahipse, o sayı Tek E ş lik’tir. E ğ er bir sayı 1’lere sahip de ğ ilse ( bütün bit’ler “0” ), o sayı Çift E ş lik olarak kabul edilir. A (Auxiliary carry ) : Yapılan bir i ş lem sonucunda, bit pozisyonları 3 ve 4 arasında olan ( en sa ğ daki bit sıfır pozisyonundadır ), toplamadan sonraki eldeyi ve çıkarmadan sonraki ödüncü belirtir. Bu özel bayrak bit’i BCD bir toplama veya çıkarma i ş leminden sonra, AL’nin de ğ erini ayarlamak (adjust ) için, DAA ve DAS komutları tarafından test edilir. Di ğ er durumlarda, A bayrak bit’i mikroi ş lemci tarafından kullanılmaz. 22

BAYRAKLAR ( FLAGS ) SAKLAYICISI (Devam..) Z (Zero ) : Bir aritmetik ve lojik i ş lem sonucunun sıfır oldu ğ unu belirtir. E ğ er Z=1 ise, sonuç sıfırdır ve e ğ er Z=0 ise sonuç sıfır de ğ ildir. S (Sign) : Bir toplama veya çıkarma i ş leminden sonra, sonucun aritmetik i ş aretini belirtir. E ğ er S=1 ise, i ş aret (Sign ) 1’lenir (set ) veya negatiftir. E ğ er S=0 ise, i ş aret temizlenir (cleared ) veya pozitiftir. Bayrakları etkileyen bir komuttan sonra, en de ğ erli bit pozisyonu S bit’ine yerle ş tirilir. T (Trap ) : E ğ er Trap bayra ğ ı 1’lenmi ş ise, tümdevre hata takip (debugging ) i ş lemi devreye girer. I (Interrupt ) : Mikroi ş lemci tümdevresinin kesme iste ğ i giri ş baca ğ ı INTR, harici kesme iste ğ i (Interrupt Request ) i ş lemini kontrol eder. E ğ er I=1 ise, INTR baca ğ ı aktif yapılır (enabled ) ve e ğ er I=0 ise, INTR baca ğ ı pasif (disabled ) olur. Aktif olma durumunda, mikroi ş lemci tümdevre INTR ucu üzerinden gelen kesmelere cevap verir. Aksi durumda, gelen kesme istekleri mikroi ş lemci tarafından ihmal edilir, yani cevap verilmez. ‘I’ bayrak bit’inin durumu, STI (Set I Flag ) ve CLI (Clear I Flag ) komutlarıyla kontrol edilir. 23

BAYRAKLAR ( FLAGS ) SAKLAYICISI (Devam..) D (Direction ) : String komutları yürütülürken, DI ve/veya SI saklayıcılarının artırılması veya azaltılması i ş lemlerinin seçimini kontrol eder. E ğ er D=1 ise, saklayıcılar otomatik olarak azaltılır ve e ğ er D=0 ise, saklayıcılar otomatik olarak artırılır. D bayra ğ ı STD (Set Direction ) komutuyla 1’lenir ve CLD (Clear Direction ) komutuyla 0’lanır. O (Overflow ) : Ta ş ma (overflow ), i ş aretli sayıların toplandı ğ ında veya çıkartıldıklarında olu ş an bir durumdur. Ta ş ma, i ş lem sonucunun hedef saklatıcıya sı ğ madı ğ ını gösterir. Örne ğ in, 8-bit saklayıcılarda i ş aretli sayı aritmeti ğ inde, 7FH (+127 ) sayısı 01H ile toplandı ğ ında sonuç 80H (-128 ) olur. Bu sonuç i ş aretli toplama için O- bayra ğ ı ile belirtilen bir ta ş ma durumudur. İş aretsiz i ş lemler için, O-bayra ğ ı ihmal edilir. 24

8086 / 8088 DIŞ MİMARİSİ Ş ekil ve 8086 mikroi ş lemcilerinin tümdevre uçlarını göstermektedir. Her iki tümdevrede 40-uç olup aralarında çok az farklılıklar bulunur. En büyük fark veri yolu uzunluklarındadır bit veri yoluna sahiptir. Buna kar ş ın, 8086’da 16-bit veri yolu bulunur. 25

/ 8088 mikroişlemcileri

8086 / 8088 MN/MX Modu 8086/8088 i ş lemcileri için MN/MX ucuyla belirlenen iki çalı ş ma modu vardır. Minumum mod çalı ş ması, bu uca +5V uygulayarak; maximum mod, bu ucu topraklayarak elde edilir. Her iki mod farklı kontrol yapılarına neden olur. Bu farklı modlarda farklı sinyaller üretilir. Yukarıda belirtildi ğ i gibi, iki i ş lemci arasındaki dı ş mimari olarak en büyük fark, veri yolları uzunlukları arasında bulunur. Bununla beraber, kontrol sinyallerinden birinde de ufak bir fark vardır.8088’deki M/IO sinyaline kar ş ın, 8086’da IO/M bulunmaktadır. Di ğ er bir donanım farkı, her iki tümdevrenin 34 numaralı ucunda bulunur.8088’de bu uç SS0 ve 8086’da ise BHE/S7’dir. 27

AD7 –AD0 (8088 ve 8086 )- Adres/veri yolu : 8088’in seçimli (multiplexed ) Adres /veri yolunu olu ş turur. ALE sinyali aktif oldu ğ unda (lojik 1 ), hafıza adresinin veya I/O port numarasının en sa ğ dü ş ük 8-bit’ini tutar.ALE pasif oldu ğ unda (lojik 0 ) veri, bu yolda bulunur. Bu yol, bir tutma tasdikinde (hold acknowledge ) yüksek empedans durumundadır. A15 –A8 (8088 ) – Adres yolu : Bir yol çeviriminde, hafıza adres bit’lerinin üst yarısını sa ğ lar. Bu adres hatları, bir tutma tasdikinde yüksek empedans durumundadır / 8088 MN/MX Modu- Devam..

AD15 –AD8 (8086 ) –Adres/veri yolu : 8086’nın seçimli Adres/veri yolunun üst bölümünü olu ş turur. Bu hatlar, ALE lojik 1 oldu ğ unda A15-A8 bitlerini içerir. Bu yol, bir tutma tasdikinde yüksek empedans durumundadır. A19 / S6, A18 / S5, A17 / S4, A16 / S3 –Adres /Durum yolu :Seçimli yol olup A19-A16 adres hatları ile S6-S3 durum bitlerini içerir. Bu sinyaller bir tutma tasdikinde yüksek empedans durumundadır / 8088 MN/MX Modu- Devam..

30

31

S6 durum bit’i lojik ‘0’ da kalır. S5 bit’i IF bayrak bit’inin durumunu belirtir ve S4 ve S3 bir yol çevriminde, tablo 3.1 ‘de verildi ğ i gibi, hangi segmente eri ş ildi ğ ini gösterir. 32

RD- Okuma (Read ): Lojik 0 oldu ğ unda mikroi ş lemcinin hafızadan veya bir giri ş cihazından veri okudu ğ unu dı ş loji ğ e bildirir. Bu sinyal, bir tutma tasdikinde yüksek empedans durumundadır. READY- Hazır : Mikroi ş lemcinin bir giri ş sinyali olup i ş lemcinin zamanlamasına bekleme durumları ( wait states ) ekleme için kullanılabilir. E ğ er bu giri ş, lojik 0 yapılırsa, mikroi ş lemci bekleme durumuna girer ve bo ş ta kalır. Bekleme durumu istenmiyor ise normalde bu giri ş lojik 1 durumunda kalmalıdır. INTR – Interrupt Request (Kesme iste ğ i ) : Donanım kesmesi için kullanılır. IF=1 oldu ğ unda INTR giri ş i lojik 1 yapılırsa, x86 i ş lemcisi bir dı ş donanım kesmesi almı ş olur ve bunun neticesi, o an yürütülen komut tamamlandıktan sonra, kesme tasdik ( INTA ) çevrimine girer. 33

TEST – Test : WAIT komutu tarafından test edilen bir giri ş tir. E ğ er TEST lojik 0 ise, WAIT komutu bir NOP gibi davranır. E ğ er TEST lojik 1 ise, WAIT komutu TEST giri ş inin lojik 0 olmasını bekler. Bu uç 8087 nümerik i ş lemcisiyle beraber kullanılır. NMI – Nonmaskable Interrupt ( Maskelenemeyen kesme ) : INTR gibi, bir dı ş donanım kesme giri ş idir. Bu kesmenin olu ş ması için IF bit’inin 1 olması gerekmez. RESET –Reset : Bu giri ş, en az 4 saat periyodu lojik 1 seviyesinde tutuldu ğ unda mikroi ş lemci kendisini sıfırlar ve i ş lemci FFFF0h adresindeki komuttan itibaren çalı ş maya ba ş lar. Ayrıca IF bayra ğ ı da sıfırlanır. CLK – Clock (saat ) : Mikroi ş lemcinin temel zamanlama sinyalini sa ğ lar. VCC – Pover supply (Besleme kayna ğ ı ) : +5V besleme GND – Ground ( Toprak ) : İş lemci iki toprak giri ş ine sahip olup her ikisinin de topra ğ a ba ğ lanması gerekmektedir. 34

MN / MX – Minumum / Maximum mode : İş lemcinin minumum veya maximum modlarından birinde çalı ş masını seçme giri ş idir. Bu giri ş in +5V olması durumunda, i ş lemci minumum modunda, topra ğ a ba ğ lanması durumunda maximum modda çalı ş ır. BHE / S7 – Bus High Enable ( Yol Yüksek Aktif ) : 8086 i ş lemcisinde, bir okuma veya yazma çevriminde, veri yolunun üst 8- bit’inin ( D15 – D8 ) aktif oldu ğ unu dı ş loji ğ e bildirir. S7 ‘nin durumu her zaman lojik 1’dir. 35

8086 /8088 HAFIZA MİMARİSİ 8086 / 8088 mikroi ş lemcisi 20-bit adres yolu ile toplam (1M ) byte hafıza hücresi adresleyebilmesine kar ş ın, her iki i ş lemcinin fiziksel hafıza yapıları farklıdır. Bununla beraber, bu i ş lemcilerin lojik hafızaları ş ekil 3.8 de görüldü ğ ü gibi aynıdır. Lojik hafıza, genellikle yazılım tarafından programcıya görülen hafızaya verilen isimdir. Bu hafıza, donanım tasarımcısı tarafından görülen, gerçek hafıza yapısını olu ş turan fiziksel hafızadan farklı olabilir. 36

8086 /8088 HAFIZA MİMARİSİ 8088 ve 8086 mikroi ş lemcilerinin lojik hafızası 00000h tan ba ş layıp FFFFFh’a kadar uzanır.Lojik hafıza geni ş li ğ i bir byte (8-bit) olup bu adreslerin uzunlu ğ u 1M byte hafıza blo ğ unu belirtir.mikroi ş lemci tarafından adreslenen 16-bit bir hafıza kelimesi, herhangi bir byte adresinden ba ş lar ve pe ş pe ş e 2 bye i ş gal eder. 37

8086 mikroi ş lemcisinin fiziksel hafıza haritaları geni ş lik olarak birbirinden farklıdır.8088 hafızası 8-bit, 8086 hafızası ise 16-bit geni ş li ğ indedir.Programcı için hafıza her zaman 8-bit geni ş li ğ inde olmasına ra ğ men, fark sadece donanım tasarımcısı için bulunur. Ş ekil mikroi ş lemcisinin fiziksel hafıza alanını göstermektedir. bu hafıza haritası ş ekil 3.8’de verilen lojik hafıza haritası ile aynıdır. 8088’in hafıza arabirimi 8085a i ş lemcisine benzemektedir. 38

8086 mikroi ş lemcisinin fiziksel hafıza haritası ş ekil 3.10’da görülmektedir.8088’den farklı olarak ki ayrı hafıza blogu içermektedir. Tek blok (yüksek hafıza) ve çift blok (dü ş ük hafıza). Her 8086 blogu 512k*8 olup toplam adreslenebilir hafıza yine 1M byte’tır. bu yapının avantajı, 8086, byte veya kelime (16-bit, word) verisini do ğ rudan adresleyebilmektedir. bundan dolayı, 8086, 16-bit bir kelimeyi bir i ş lemde okuyup yazabilmektedir.s(verinin adresinin çift oldu ğ u sa ğ landı ğ ında). Buna kar ş ın, 8088, 16-bit veri aktarımı için 2 okuma veya yazmaya gerek duyar yazılımı daha hızlı çalı ş ır.Çünkü 8086 bir çok komuta ve 16-bit veriye 8088’in iki katı hızında eri ş ir. 39

8086 fizikel hafıza yapısı 40

41

SEGMENT’Lİ HAFIZA YAPISI 8086/8088 mikroi ş lemcisinde hafıza eri ş im, segment saklayıcıları yoluyla yapılır. Herbir segment hafıza blo ğ u 64k byte’tır. Ş ekil 3.11’de segment saklayıcıları ile adreslenen bir hafıza hariası örne ğ i görülmektedir.hafıza alanında aynı anda 4 farklı segment bulunabilmektedir.Bunlar: kod segment (CS), veri segment (DS), ekstra segment (es) ve yı ğ ın segmentidir(SS). 42

43

Her segment saklayıcısı, 20-bit adresin 16-bit kısmını tutar.segment saklayıcıda bulunan 16-bit adresin dü ş ük de ğ erli bölümüne, 0h(00002)eklenir.Ayrıca bir ofset (indis)bu adresle toplanarak, donanım tarafından otomatik olarak20-bit adres elde edilir.bu i ş leme lojik adresin fiziksel adrese çevrilmesi denir.segment saklayıcılarına göre a ş a ğ ıda açıklanaca ğ ı gibi, ofset, de ğ i ş ik saklayıcılarda gelir. E ğ er bir 8086/8088 sistemi sadece 64k byte hafıza içeriyorsa, bütün 4 segment saklayıcıları 0000h ile yüklenir ve segmentler üst üste çakı ş ır.Bu durumda adres aralı ğ ı X0000h-XFFFFh arasında de ğ i ş ir.(X herhangi bir 16-lı rakamdır) Her bir segment saklayıcısı, özel bir fonksiyona sahiptir ve bir veya daha çok indis veya i ş aretci saklayıcısı ile ili ş kilidir.bir hafıza adresi üretmek için, bir segment saklayıcısının içeri ğ i, bir ofset adres adres tutan bir indis veya i ş aretci saklayıcısına eklenir. 44

Ş ekil 3.12’de bir komut tarafından adreslenen bir verinin, fiziksel adresinin üretimi görülmektedir.Bu örnekte, veri segment saklayıcısı DS 1000h içermekte, yani veri segment 10000h fiziksel adresinden itibaren ba ş lamaktadır.Taban saklayıcısı BX’te ofseyt adres 0020h bulunmakta, ve böylece fiziksel adres 10020h veya 1000h*10h+0020h olmaktadır 45

Kod segment CS, program ve veri alanı olarak kullanılabilmesine ra ğ men, genelde, program kodlarının bulundu ğ u alandır.8086/8088 tarafından yürütülecek bir sonraki komutun adresi, komut i ş artecisi IP’ye CS*10h içeri ğ inin toplanmasıyla elde edilir. Veri segment’i DS, bir çok komut ve adresleme modu tarafından eri ş ilen program verilerini tutar.Hafızadaki verinin adresi, BX, SI veya DI saklayıcılarından birine DS*10h içeri ğ inin toplanmasıyla elde edilir. Yı ğ ın (stack) segment’i SS, L İ FO(last In First Out)tarzında çalı ş maktadır.bir yı ğ ın hücresinin adresi, SP’nin içeri ğ i artı SS*10h’2tır.BP tarafından adreslenen veri de normalde yı ğ ın segment’inde bulunur. ES string komutları tarafından kullanılan veri alanıdır.bir string komutu yürütüldü ğ ünde hedef aders DI artı ES*10h, kaynak veri ise, SI artı ES*10h’tır. 46

SEGMENT’Lİ HAFIZA YAPISININ AVANTAJLARI Yukarıda anlatılan segment’li hafıza yapısı, ilk bakı ş ta ş a ş ırtıcı ve zor görülebilir.bu hafıza yapısı için hatırlatılması gerekenler özetle ş unlardır:Program i ş lem kodları CS alanından okunmakta, program verileri DS ve ES alanlarında saklanmaktadır.yı ğ ın i ş lemleri ise, SP ve BP saklayıcılarını kullanarak SS üzerinde i ş lem yapar. Ayrı kod ve veri alanlarının olmasının ilk avantajı, bir programın, farklı veri blokları üzerinde çalı ş abilmesidir.bu i ş lem, DS saklayıcısına farklı bir blo ğ a i ş aret eden yeni bir adresin yüklenmesiyle yapılır. 47

Segment’li hafıza yapısının en büyük avantajı, lojik adresler üreten x86 programlarının hafızanın herhangi bir yerine yüklenip çalı ş tırılabilmesidir.Bunun nedeni lojik adreslerin her zaman.CS taban adresinden ba ğ ımsız olarak, 0000h ile FFFFh arasında de ğ i ş mesidir. 48

49

Mimarisi