1
8085 MĐKROĐŞLEMCĐ VE MIKROBĐLGĐSAYAR
Murat KELLEGÖZ LĐSANS TEZĐ HAZĐRAN 1998
2
T.C. OSMANGAZĐ ÜNĐVERSĐTESĐ FEN-EDEBĐYAT FAKÜLTESĐ FĐZĐK BÖLÜMÜ
8085 MĐKROĐŞLEMCĐ VE MĐKROBĐLGĐSAYAR
Danışman : Yrd. Doç. Dr. Đsmail ÖZKAN
Hazırlayan : Murat KELLEGÖZ
3
HAZĐRAN 1998 4394003 no‘lu öğrenci Murat KELLEGÖZ tarafından hazırlanmış olan 8085 MĐKROĐŞLEMCĐ VE MĐKROBĐLGĐSAYAR konulu bitirme ödevi tarafımdan okunup kabul edilmiştir.
...../...../1998 Yrd. Doç. Dr. Đsmail ÖZKAN
4
T E Ş E K K Ü R
Bu tez çalışmasını bana veren ve gerek fikir gerekse kaynak yönünden beni yönlendiren sayın hocam Yrd. Doç. Dr. Đsmail ÖZKAN‘a teşekkür ederim. Tez süresince bana gerek maddi gerekse manevi desteklerini esirgemeyen aileme , ayrıca değer verdiğim ve moral yönünden beni destekleyen Filiz ALACA‘ya sonsuz teşekkürü bir borç bilirim.
5
Đ Ç Đ N D E K Đ L E R 1. MĐKROĐŞLEMCĐLER VE MĐKROBĐLGĐSAYARLAR................................................1 1.1. MĐKROĐŞLEMCĐNĐN KULLANIM ALANLARI VE ÜSTÜNLÜKLERĐ..............1 1.2. MĐKROBĐLGĐSAYARLARIN TEMEL YAPISI....................................................2
2. MERKEZĐ ĐŞLEM BĐRĐMĐ (MĐB)................................................................................3 2.1 MERKEZĐ ĐŞLEM BĐRĐMĐNĐN HIZI VE YETENEKLERĐ....................................3 2.2 MERKEZĐ ĐŞLEM BĐRĐMĐNĐN ĐÇ YAPISI............................................................4
3. BELLEK.......................................................................................................................8 3.1. ROM......................................................................................................................8 3.2. RAM......................................................................................................................9 4. GĐRĐŞ / ÇIKIŞ BĐRĐMLERĐ........................................................................................10 4.1. ĐLETĐŞĐM YÖNTEMLERĐ................................................................................. .10 5. ĐLETĐŞĐM YOLLARI..................................................................................................11
6. INTEL 8080 AĐLESĐ ..................................................................................................12 6.1. 8085 MĐKROĐŞLEMCĐ....................................................................................... 12 6.2. 8085 MĐKROĐŞLEMCĐSĐNĐN BACAKLARININ TANIMI.................................13
6
7. ADRESLEME YÖNTEMLERĐ VE KOMUTLARI.....................................................17 7.1. ADRESLEME YÖNTEMLERĐ............................................................................17 7.2. KOMUTLAR.......................................................................................................18 7.3. KOMUTLAR LĐSTESĐ........................................................................................19 EK : 8085 MĐKROĐŞLEMCĐNĐN KARAKTERĐSTĐK ÖZELLĐKLERĐKLERĐ
1. MĐKROĐŞLEMCĐLER VE MĐKROBĐLGĐSAYARLAR Mikroişlemci bir bilgisayarın beynini oluşturan ‘Merkezi Đşlem Birimi’ dir. Kısaca MĐB. Mikroişlemci geniş hacimli bir entegredir. Dar bir alana milyonlarla ifade edilen transistör, flip-flop gibi elemanların sıkıştırılmaları ile imal edilmiştir. Mikroişlemci tek başına bir mikrobilgisayar değildir. Mikrobilgisayar oluşturmak için mikroişlemci ile bellekler ve giriş/çıkış birimlerine ihtiyaç vardır.
MĐKROBĐLGĐSAYAR = MĐKROĐŞLEMCĐ + BELLEKLER + GĐRĐŞ/ÇIKIŞ BĐRĐMLERĐ
1.1. MĐKROĐŞLEMCĐNĐN KULLANIM ALANLARI VE ÜSTÜNLÜKLERĐ Mikroişlemci sadece bilgisayarlarda değil, aynı zamanda endüstride, kontrol sistemlerinde, haberleşme sistemlerinde, robot endüstrisinde kullanılmaktadır. Mikroişlemci bir elektronik devre elemanı olmasına rağmen alışıla gelmiş devre elemanlarına göre üstünlükleri vardır. a.) Programlanarak değişik işlerde kullanılabilirler.
7
b.) Bir makinenin arka arkaya yapacağı çok sayıda işlemlerini bir program içinde düzenli olarak sırayla yürütebilirler. c.) Daha dar bir alana monte edilirler ve maliyetleri daha ucuz olur. d.) Daha hassas çalışırlar, mikrosaniye gibi zaman aralıklarında, ısı, gerilim gibi değişkenlerin mikro değerlerindeki değişmeleri hissederek kontrol yapabilirler. e.) Çok sayıda veri girişine sahip komplike devrelerde, giriş/çıkış durumlarına göre bir sistemi kontrol edebilirler.
1.2. MĐKROBĐLGĐSAYARLARIN TEMEL YAPISI Mikrobilgisayarların tüm işlemlerinin organizasyonunu MĐB yapıp birçok alt birimlerden meydana gelir. Bir mikrobilgisayar temelde üç üniteden meydana gelir. a.) Merkezi Đşlem Birimi (MĐB) b.) Bellek birimi c.) Giriş/Çıkış birimi Mikrobilgisayarın, bu üç ünite arasındaki veri ve program akışını sağlamak üzere, çok sayıda bağlantıdan oluşan yollar bulunmaktadır. a.) Veri yolları b.) Adres yolları c.) Denetim yolları
8
(Şekil 1: Bilgisayarın üç temel birimi arasındaki bağlantı)
2. MERKEZĐ ĐŞLEM BĐRĐMĐ (MĐB) Merkezi işlem birimi bilgisayarın temel birimi olarak kabul edilebilir. Bilgisayarın aritmetik ve lojik işlemler yapabilmeli ve ortaya çıkan sonuçlara göre karar verebilmelidir. Bu görev MĐB tarafından yarine getirilir. Bunun yanısıra MĐB’ye bilgisayarın beyni olarak bakılmaktadır.
2.1. MERKEZĐ ĐŞLEM BĐRĐMĐNĐN HIZI VE YETENEKLERĐNĐN ÖLÇÜTLERĐ a.) HIZ: MĐB’nin belli zaman içinde yapabileceği işlemşerin sayısıdır. Bu sayıya iş yüküde denilmektedir. MĐB’nin çalışmasını senkronlayan saat frekansına bağlıdır. b.) SÖZCÜK UZUNLUĞU : MĐB’nin bir anda işleyebileceği veri uzunluğu, MĐB’nin gücünü gösterir. c.) KOMUT KÜMESĐ : Bir MĐB’nin yeteneklerinin ölçülmesinde, komut kümesinin çeşitliliği ve komutlarının güçlülüğüde önemli bir etkendir. Komut kümesinin zengin olması, programcıya esneklik ve kolaylık sağlayacağı için MĐB’yi güçlü kılar.
9
d.) ADRSLEME YETENEĞĐ : Bir MĐB’nin en önemli özelliklerinden biride komut içinde kullanılan adresleme yöntemlerinin zenginliği ve güçlülüğü, bu arada düzgünlüğü de bir MĐB için önemli bir ölçüttür. e.) ADRESLEME
: MĐB’nin KAPASĐTESĐ
bir
başka
yeteneği
ise,
doğrudan
adresleyebileceği bellek boyudur. 8 bit mikroişlemcilerde adresleme kapasitesi 64K’dır.
2.2. MERKEZĐ ĐŞLEM BĐRĐMĐNĐN YAPISI a.) BELLEK VERĐ SAKLAYICI : MĐB’inden belleğe veye giriş/çıkış arabirimlerine giden veye bu birimlerden MĐB ne gelen verinin yazıldığı yerdir. 8085 mikroişlemcide bellek veri saklayıcısı 8 bittir. b.) BELLEK ADRES SAKLAYICI : MĐB ile bellek arasında gidip gelen verilerin bellekte hangi göze yazılacağı veye verinin hangi gözden geldiği bu kutüğe yazılan adres ile belirtilir. Giriş/çıkış arabirimlerinin adreslenmesinde de bellek adres saklayıcısından faydalanılır.
8 bitlik mikroişlemcilerde adres yolları 16 bit olduğundan bellek adres
saklayıcısıda 16 bit uzunluğundadır. c.) ARĐTMETĐK LOJĐK BĐRĐM (ALU): MĐB içinde yapılması gereken aritmetik ve lojik birimler ALU içerisinde gerçekleşir. Karşılaştırma ve karar verme işlemleride bu birim içerisinde olur.
•
Aritmetik işlemler : ALU toplama, çıkarma, çarpma ve bölme işlemlerini yerine getirebilir.
10
•
Lojik işlemler : ALU içinde temel VE, VEYA gibi işlemleri yerine getirebilir.
•
Karşılaştırma ve karar verme işlemleri: Đki büyüklüğün birbirine göre büyüklük, küçüklük veya eşitlik karşılaştırması yapılabilir. Ortaya çıkan duruma göre karar rebilir ve sonuç durum saklayıcısına işlenir.
d.) AKÜMÜLATÖR: MĐB’nin ana saklayıcısıdır. Komutların çoğu akümülatör üzerinde yapılır ve. Akümülatör yürürlükteki komutla işlenen bilginin geçici olarak depolandığı yerdir. Akümülatördeki bilgi belleğe alındığında akümülatördeki bilgi silinmez. 8085 mikroişlemcide akümülatör 8 bittir. e.) DURUM SAKLAYICI : ALU tarafından gerçekleştirilen işlemlerin sonunda ortaya çıkan durumların yazıldığı bir saklayıcıdır. Buna bayrak saklayıcısıda denilmektedir. Durum saklayıcısının içeriği, karar verme işlemlerinde temel alınır. 8085 mikroişlemcide durum saklayıcısı 8 bitten oluşur.
(Şekil 2: Durum saklayıcı) Durum saklayıcısının D0, D2, D4, D6 ve D7 nolu bayrakları programcı tarafından kullanılır. D4 nolu bayrağı mikroişlemci, programcının kontrolü dışında kullanır. D3 ve D5 nolu bayraklar ise boştur. •
S-işaret bayrağı: Sayının pozitif veya negatif olduğunu gösteren bayraktır. Eğer işaret bayrağı 1 ise sayı negatif, 0 ise pozitiftir.
11
•
Z-sıfır bayrağı: Akümülatörde bulunan sayının değeri sıfır ise bu bayrak 1 değerini, sıfır değil ise 0 değerini alır.
•
AC-yardımcı elde bayrağı: Bu bayrak iki tabanlı sayılar ile çalışırken kullanılır. Bir aritmetik işlem sonucunda üçüncü bitten dördüncü bite bir elde aktarıldığında yardımcı elde bayrağı 1 değerini alır. Eğer bir elde aktarımı söz konusu değil ise 0 değerini alır.
•
P-parite bayrağı: Bir aritmetik veya mantık işleminden sonra elde edilen 1 sayıları ile ilgilidir. Sonuç içerisinde 1’lerin sayısı çift ise bu bayrak 1 değerini, sonuç içerisindeki 1’lerin sayısı tek ise bu bayrak reset olur.
•
CY-elde bayrağı: Bir aritmetik işlem sonucunda akümülatöre yazılamayan bir elde varsa bu elde bayrağı 1 değerini alır.
f.) YARDIMCI SAKLAYICI: MĐB içindeki işlemlere hız kazandırmak amacıyla, yardımcı saklayıcı kullanılmaktadır. Bu saklayıcılar, üzerinde sık sık işlem yapılacak işlemler için kullanılırlar. Bu saklayıcının akümülatörden tek farkı, aritmetik ve lojik işlemlerde birinci işlenen yerini almamalarıdır. 8085 mikroişlemcilerde 8 bit akümülatörün yanında herbiri 8 bit olan B, C, D, H ve L yardımcı saklayıcılar vardır. g.) PROGRAM SAYICI: Program sayıcı bir sonra gelen programdaki komutun adresini depolar. Adres yolları 16 bit genişliğinde olduğundan program sayıcısıda 16 bit genişliğinde bir kaydedicidir. Program sayıcısının adresi, son adres kullanıldıktan sonra otomatik olarak atrar veye komuta göre azalabilir. Ayrıca program sayıcısı atlama komutu ile program sayıcısının adresi herhangi bir adresle değiştirilebilir. h.) KOMUT SAKLAYICI: Komut saklayıcısı o anda işlenen komutu içerir. i.) KOMUT KOD ÇOZÜCÜ: Komut saklayıcısında bulunan komutun taşıdığı anlamı çözümlediği yerdir. j.) YIĞIN GÖSTERGESĐ: Bilgisayar dilinde, verilieri üst üste yığmaya ve gerektiğinde, verileri yığından teker teker geri almaya yığın işlemi denilmektedir. Yığının nerede kurulduğunu belirtmek için MĐB içinde yığın göstergeside kullanılmaktadır. Yığın
12
göstergesi bellek üzerinde herhangi bir bölgesindeki yığının alınmasına müsaade eder. Bu yığın göstergesi 16 bitlik bir kaydedicidir.
(Şekil 3: Mikroişlemcinin kaydedici yapısı) k.) SIRALAMA SAKLAYICI: Sıralı verilerin belleğe yazılması veya bellekte sıralı bulunan verşlerin okunması için kullanılır. l.) DENETĐM BĐRĐMĐ: MĐB’nin en önemli birimlerindendir. Bu birim hem MĐB içindeki çalışmayı düzenler hemde bilgisayar içindeki çalışmayı düzenler.
13
(Şekil 4: Merkezi işlem biriminin iç yapısı)
3. BELLEK Bilgisayarın çalışmasına yön verecek programı ve programın üzerinde çalışacağı verileri saklamak için bellek kullanılmaktadır. Bellek posta kutusuna benzetilebilir.Her bir posta kutusu bir adrese sahiptir. Bilgiler bu kutularda binary formunda saklanır. Bu belleğe yazılmış olan bilgileri tutabilmek için enerjiye ihtiyaç vardır. Yani belleği besleyen gerilim kesilmesi durumunda bellekteki bilgiler kaybolur. Bu olumsuz durum sebebiyle yarı iletken teknolojisinde iki tip bellek üretimi sağlanmıştır.
3.1. ROM (Salt okunur bellek) Bilgisayarda sürekli kalması istenilen bilgilerin saklanması için kullanılan bellek türüdür. Özel amaçlı ve sabit programla çalışan bilgisayarların programları ile bilgisayar açıldığında, kullanıcıya hizmet verecek, yol verme programları bu tür belleklere saklanır. En önemli özelliği gerilim kesildiğinde bellekteki bilgiler saklı kalır. Bu tür bellekler programlanabilme yeteneklerine göre dört gruba ayrılır.
14
•
ROM: Bu bellek türüne bilgi yazılması, belleğin üretimi esnasında gerçekleşir. Sonuçtada programlanan belleğin içerisindeki program değiştirilememektedir.
•
PROM (Programlanabilir salt okunur bellek): Bu bellek türü üretildikleri zaman bütün gözeneklerinde birer sigotta bulunmaktadır. Bu sigortalar istenilen nitelikteki programa göre attırılarak bellek programlanır. Programlandıktan sonra bir başka değişle sigortanın yenilenerek farklı bir programın yazılması olanağı yoktur. Anlaşılacağı üzere bu bellek yalnız bir kere programlanabilir.
•
EPROM (Silinebilir, programlanabilir salt okunur bellek): Bu bellek türü üretildiğinde tüm bellek gözeleri 1 konumundadır. 1 konumunda olan gözelerden istenenler özel yöntem ve araçlarla 0 konumuna getirilebilir. Bu belleğin gövdesi üzerinde bulunan pencereden ultraviyole ışığının tutulması durumunda belli bir süre sonunda bellek gözeleri 1 konumuna gelerek silinmiş olur ve tekrar programlanmaya hazır hale getirilebilir. Güneşten gelen ışığın ultraviyole ışık içerdiğini düşünecek olursak sağlıklı bir çalışma için programlanan EPROM’un penceresinin siyah bir bant ile kapatılması uygun görülür.
•
EEPROM (Elektriksel silinebilir, programlanabilen salt okunur bellek): Bu bellek türünde bellek gözelerine istenilen bir değer yazılabilir ve yazılan bu bilgi yeni bir yazmaya kadar kalır. Bellek gözesine yazılan bilgi 0 ve 1’lerden oluşmaktadır. EEPROM’lara veri yazılmasında özel yöntem ve araçlar kullanılabilir. EEPROM’ların silinmesi durumunda tüm belleklerin 0 veya 1 olması durumu anlaşılır.
3.2. RAM (Okunabilir silinebilir bellek) Bu tür bellekler bilgilerin geçici olarak saklandığı yerlerdir. Đstenildiğinde yazılabilen istenildiğinde silinebilen belleklerdir. Gerilim kesildiğinde bilgilerin tümü kaybolur. RAM’lar bilgiyi saklama açısında iki gruba ayrılırlar.
15
•
STASĐK RAM: Bu belleğin her bir gözesinde bir flip-flop bulunur. Bilindiği üzere iki konumlu olan flip-floplar, girişine uygulanan lojik işaretin durumuna göre 0 veye 1 konumunu alır. Yeni bir veri girişi yapılana dek eski konumda kalır. Gerilimin kesildiğinde bilgilerin yok olması bazı uygulamalarda sorun yaratabileceğinden dıştan veya içten pilli bellekler üretilmektedir.
•
DĐNAMĐK RAM: Bu bellek türü MOS transistörlerinden oluşmuştur ve bilgileri elektrik yükü olarak saklanır. Bu elektrik yükünün boşalmaya başladığı durumda yük yarıya inmeden okuduğunda 1 değerini, aksi halde 0 değerini alır. 1 olduğu algılanırsa kapasite yeniden doldurulur.
(Şekil 5: Belleklerin sınıflandırılması)
4. GĐRĐŞ/ÇIKIŞ BĐRĐMLERĐ Bir bilgisayar her zaman için dış ortamlarlaa ilişki halindedir. Bu ilişki giriş çıkış birimleri ile sağlanır. Giriş birimi input port, çıkış birimi output port olarak adlandırılır. Merkezi işlem birimi, giriş/çıkış birimleri ile akümülatör üzerinden biligi alış verişini sağlar.
4.1. ĐLETĐŞĐM YÖNTEMLERĐ Bilgi aliş verişi paralel iletişim ve seri iletişim iki gruba ayrılırlar.
•
PARALEL ĐLETĐŞĐM : Bir verinin alıcıya gönderilmesi sırasında, verinin her bir biti için ayrı bir hat kullanılıyor ise, bu iletişim yöntemine paralel iletişim yöntemi denir.
16
(Şekil 6: Paralel iletişime örnek bağlanmış iki birim) Şeki 6’da görüldüğü gibi, verici ve alıcı arasında, aktarılacak veri içindeki bit sayısı kadar hat bulunmaktadır. Ayrıca veri hatlarına ek olarak al ve hazır bağlantıları vardır. Bu iki bağlantı bilginin hangi yönde akacağını belirlemekte kullanılır. Çünkü bir tek hat üzerinden çift taraflı bilgi akışı olabilir.
•
SERĐ ĐLETĐŞĐM : BU iletişim yönteminde , bir veri içindeki bitler, Aynı hat üzerinden peş peşe gönderilirler. Bir başka değişle, iletişim hatları bitler tarafından zamanda paylaşılırlar.
5. ĐLETĐŞĐM YOLLARI Mikroişlemci birimi ile bellek veya giriş/çıkış birimleri arasındaki bilgi alış verişinin sağlanması için üç çeşit iletişim yolu vardır.
•
ADRES YOLU : Merkezi işlemci birimi tarafından bellekten seçilecek bilginin bulunduğu yerin adresiniğ taşıyan yoldur. Adres binary olarak uygulanır. Uygulanan bu adres paralel bilgi hattından oluşur. 8 bitlik mikroişlemci biriminde adres hat sayısı 16 bitliktir. Buna göre 2 16=65536 bellek gözesi adreslenebilmektedir.
•
BĐLGĐ YOLU : Bilgi yolu genellikle sekiz hattan oluşur. Giriş/çıkış birimi ile merkezi işlem biriminde bulunan akümülatör arasında bilgi alış verişini sağlar. Aynı zamanda bu
17
hatlar üzerinden de dış devreler yollanabilir veya dış devrelerden bilgi alınabilir. Bilgi yolu adedi bit sayısını tanımlar. Yani sekiz bilgi hattına sahip bir merkezi işlem birimi 8 bitlik mikroişlemci olarak olarak tanımlanır.
•
KONTROL YOLU : Mikroişlemcinin dış ortamla ilişki kurarak gerekli işlemleri gerçekleştirebilmesi için kontrol sinyallerini taşıyan hatlara ihtiyaç vardır. Bu hatlara kontrol yolları denir.
(Şekil 7: Mikroişlemcide iletişim yolları)
6. INTEL 8080 AĐLESĐ Intel 8080, 4004, 4040 ve 8008’lerin ardından üretilmiş 8 bit mikroişlemcilerin ilkidir ve 1974’te kullanıma sunulmuştur. 8085 mikroişlemcilerin ise 8 bit mikroişlemcilerin ikincisidir. 8080; +5, -5 ve +12 V’luk üç gerilim kaynağı gerektirdiğinden yerini yalnızca 5V ile çalışan 8085’e bırakmıştır. Yalnızca tek değerde bir gerilim kaynağı kullanmayıp aynı zamanda bir çok eksiklikleride giderilmiştir. Bunların başında 8080’de adres ve veri yolları için bağımsız ayaklar bulunurken, 8085’de veri yolları ile adres yolları geçmeli olarak düzenlenmiştir.
18
6.1. 8085 MĐKROĐŞLEMCĐ 8085 mikroişlemcisinin özellikleri şöyle özetlenebilir.
•
Sözcük uzunluğu 8 bittir.
•
Bellek adresleme yeteneği 64K’dır.
•
Veri yolu ve adres yolu geçmelidir.
•
Saat osilatörü içindedir.
•
Kesme girişleri ve kesme öncelikvericisi vardır.
•
Giriş/çıkış arabirimleri bellek dışındadır.
19
(Şekil 8: 8085 Mikroişlemcisinin iç yapısı)
6.2. 8085 MĐKROĐŞLEMCĐSĐNĐN BACAKLARININ TANITIMI
•
AD0-AD7 (Adres ve veri yolları): 8085’te veri ve adres yolları için ortak hatlar kullanılmıştır. Bunlar 12. ile 19. Bacaklar arasında yar almaktadır. Bu nedenle verilier için kullanılan 8 hat ile, adres hatlarının ilk 8 hattı aynıdır. AD 0-AD7 hattı olarak anılan bu hatlar üzerinde, buyruğun işlenişine uygun olarak ya adres bilgisi yada veri bilgisi bulunur. Böylece aynı hatlar ortaklaşa kullanılmış olur. AD0-AD7 hatları iki yönlü çalışmaktadır. Çıkış durumunda çalışırken her bir bit bir TTL yükü sürebilecek yetenektedir ve bu hatlar üç konumlu kapılardan oluşmuştur. AD 0-AD7 adres hatları üzerinde, giriş/çıkış birimlerinin seçimi sırasında, 8 bitlik giriş/çıkış birimi adresi oluşur.
A8-A15 (Adres yolları): Adres yollarının diğer hatlarıdır. Bunlar 21. ile 28. Bacaklar arasında yer almaktadırlar. Her bir hat bir TTL sürebilecek güçteüç konumlu kapılardan kurulmuştur. HALT, HOLD ve RESET durumlarında, bu çıkışlar üçüncü konuma geçerler. A8-A15 adres hatları üzerinde, giriş/çıkış birimlerinin seçimi sırasında, AD 0AD7 hatları üzerine olduğu gibi, 8 bitlik giriş/çıkış birimi adresi oluşur.
ALU (Adres tutucu): Bu 30. bacağı oluşturan bu bacak AD 0-AD7 hatları üzerine adres bilgisi yerleştirildikten sonra etkin duruma gelir. Böylece, bu hatlara bağlı olan tutucu devrede, adres bilgilerinden ilk sekizinin tutulması sağlanır. ALU ucunun lojik 1’den 0’a inmesi, tutma emrini oluşturur.
20
•
HOLD (Dur): 39. Bacağı oluşturan bu bacak girişinin lojik 0 olması ile, merkezi işlem birimi elindeki son komutu tamamlar ve çalışmasını durdurur. Bu durumda, adres ve veri yolları ile, RD, WR ve IO/M çıkışları üçüncü konuma geçerler. Kullanılmadığı durumda, +5V’a bağlanması gerekir.
•
HLDA (Dur anlaşıldı): 38. bacağını oluşturan bu bacak HALT girişinin lojik 0’a inmesi ve merkezi işlem biriminin kendisini çevresinden yalıtması durumu,HLDA çıkışının 0’a inmesi ile yansıtılır.
•
•
RD (Oku): 32.bacağı oluşturan RD çıkışı merkezi işlem birimi ile Oku WR (Yaz): Yaz çıkışı 31. Bacağı teşkil eder. Bu çıkış merkezi işlem birimi ile bellek ve/veya giriş/çıkış birimleri arasında yazma işlemini sağlar. Yaz çıkışı lojik 0’da etkindir. HALT, HOLD ve RESET girişlerinden biri etkin iken üçüncü konuma geçer.
•
READY (Hazır): 35. Bacağı oluşturan bu giriş, merkezi işlem birimine bağlı bellek veya giriş/çıkış biriminin okuma veya yazma için hazır olup olmadığını yansıtır. Hazır girişinin lojik 1 olması bellek veya giriş/çıkış biriminin hazır olduğunu gösterir. Bu girişin 0 olması durumunda, merkezi işlem birimi girişin hazır olması durumunu bekler.
•
TRAP (Kesme): 6. bacak maskelenemez kesme girişidir. Bu giriş 0’dan 1’e çıkması sonucunda belirlenmiş adresten başlayan kesme hizmet programına dallanır. Önceliği en yüksek olan kesmedir.
•
RST 7.5; RST 6.5; RST 5.5 (Kesme isteği) : Bunlar sırasıyla 7. 8. ve 9. bacakları oluşturur. Bu üç kesme isteği de yazılımla denetlenebilmektedir. Bu üç girişten gelen kesme isteklerinde, belirlenmiş adreslerden başlayan kesme hizmet programlarına dallanır.
21
•
INTR (Kesme isteği): 10. Bacağı oluşturur. Bu girişe, yazılımla denetlenmek istenen kesme isteği bağlanır. Bu girişten kesme isteği gelmesi, mermezi işlem birimini dışarıdan komut okumaya zorlar. Önceliği en düşük olan kesmedir.
•
INTA (Kesme alındı): Bu 11. Bacak olup kesme alındığını belirten çıkıştır. Etkin durumu 0 dır.
•
RESET IN (Reset girişi): 36. Bacağı oluşturur. Merkezi işlem birimini albaştan etmeye yarar. Bu girişin kısa bir süre için 0 olması ile merkezi işlem birimi 0000 adresine bağlanır ve bu adresten başlayan programı işlemeye koyulur.
•
RESET OUT (Reset çıkışı): 3. Bacağı teşkil eden bu bacak merkezi işlem biriminin RESET edildiğini belirtir. Etkin durumu lojik 1 dir.
•
X1; X2; CLK OUT (Saat uçları): Sırasıyla 1. 2. ve 37. Bacakları oluştururlar. X1 ve X2 arasına bir rezonans devresi veya bir kristal bağlanması ile, 8085 mikroişlemci içinde bulunan osilatör çalışır. Bir başka çozüm; dışarıda bulunan bir osilatörün çıkışı, X1’e bağlanarak, 80852in bu frekansta çalışması sağlanabilir. CLK OUT, bilgisayar sisteminin çalışması için gereklidir. Ve frekansı X1’de görülen frekansın yarısıdır.
•
SID; SOD (Seri giriş/çıkış): Bunlar sırasıyla 5. ve 4. Bacaklardır. Akümülatör de bulunan veri SOD komutu ile, seri biçimde SOD çıkışından dışarı gönderilebilir. Benzer şekilde, SID girişine uygulanmış olan seri bilgiler, SID komutu ile akümülatöre alınabilir.
•
S0; S1; IO/M (Merkezi işlem biriminin durumu): Bunlar sırasıyla 29. 33. ve 34. Bacaklardır. Bu üç cıkış 8085 mikroişlemcisinin o andaki çalışma biçimini ve durumunu yansıtırlar.
•
V SS ;V CC : 5 V’lik besleme için bağlantı bacakları. Bunlar 20. ve 40. bacaklardır.
22
(Şekil 9: 8085 Mikroişlemcinin bacaklarının tanıtımı)
7. ARESLEME YÖNTEMLERĐ VE KOMUTLAR 8085 Mikroişlemcilerde dört temel adresleme yöntemleri kullanılmaktadır ve bu yöntemlerin her birine has komutlar mevcuttur. Bu komutlar makine dili dediğimiz makinanın anlayabilecegi dilde düzenlenmiştir.
7.1. ADRESLEME YÖNTEMLERĐ
23
•
ĐVEDĐ ADESLEME: Merkezi işlem birimi içerisindeki akümülatör ve saklayıcılar, boylarına uygun verilere ivedi olarak yüklenebilir. Ayrıca herhangi bir bellek gözesine de ivedi olarak yazılabilir.
•
: Bu adreslemeye karşılık olarak ‘register’ ve ‘implied’ DOĞAL ADRESLAME adresleme yöntemleri kullanılmaktadır. Đki adresleme yöntemide doğal adresleme kavramına uygundur. Sadece adlandırmada farklılık göstermiştir. ‘Register adressing’ diye anılan yöntemde, merkezi işlem birimi içindeki kütükler üzerinde işlemler yapılmaktadır. ‘Đmplied adressing’ yönteminde ise, durum saklayıcı bayrağını etkileyen komutlar örnek verilebilir.
•
DOĞRUDAN ADRESLEME: Doğrudan adresleme 0000 - FFFF arasındaki bellek alanını kapsamaktadır. Bu adresleme yönteminde, bir komut üç byte içine yazılmaktadır. Yani ilk byte’e komutu, ikinci byte’e adresin düşük anlamlı kısmı, üçüncü byte’e ise adresin yüksek anlamlı kısmı yazılır.
•
KÜTÜĞE BAĞLI ADRESLEME: Bu yöntemde, üzerinde işlem yapılacak bellek gözünün adresi, bir kütük çiftinde yazılı olmalıdır. Bir anlamda dolaylı adresleme olarak düşünülebilir.
7.2. KOMUTLAR 8085 mikroişlemcilerde kullanılan Intel firmasınca altı kümeye ayrılmaktadır. Bu altı kümenin tümünde kullanılan komutlar makine dilinde ifade edilir. Komutların yazılımı ve kullanılan kodların programın hazırlanmasında büyük önem vardır.
24
•
ARĐTMETĐK ĐŞLEM KOMUTLARI: Bu komutlar yardımı ile, akümülatörün içeriği ve belirtilen veri arasında aritmetik işlemler yapar.
•
LOJĐK ĐŞLEM KOMUTLARI: Bu grup içindeki komutlar, akümülatörün içeriği üzerinde lojik işlemleri yapar.
•
ĐŞLEM KOMUTLARI : Bu küme içindeki komutlar, aritmetik veya lojik komut kümesine katılmak üzere özellikleri gereği temel anlamda ayrı tutulmuştur.
•
KARAR VERME VE DALLANMA KOMUTLARI:Bu komutlar yardımı ile program akışı içinde değişik satırlara atlanabilir.
•
GĐRĐŞ / ÇIKIŞ KOMUTLARI: Bu küme içindeki komutlar yığına veya çevre elemanlarına veri göndermek ve oradan veri kabul etmek için kullanılır.
1. BYTE
2. BYTE
3. BYTE
TEK BYTE OPCODE ĐKĐ BYTE OPCODE
VERĐ
ÜÇ BYTE OPCODE
ADRESĐN DÜŞÜK KISMI
ADRESĐN YÜKSEK KISMI
(Tablo 1: ĐNTEL 8085 için komutların belleğe yazılış formu)
REGĐSTER KODU S/D
A
B
C
D
E
H
L
111
000
001
010
011
100
101
(S verinin çıktığı registerleri, D verinin gittiği rgisterleri temsil eder.)
REGĐSTER ÇĐFTĐ
B(B,C) D(D,E) H(H,L) SP(STACK POĐNTER
25
KODU
00
01
10
11
(Tablo 2: Register ve register çiftleri için kodlar)
7.3. KOMUTLAR LĐSTESĐ Komut adı : MOV R 1 R 2 Tanım : R 2 register içeriğini R 1’e taşır. Opcode : 01DDDSSS Komut adı : MOVE R M Tanım : Bellekten R registerine veri yükler: Opcode : 01DDD110 Komut adı : MOV M R Tanım : R registerin içeriğini belleğe taşır. Opcode : 01110SSS Komut adı : MVI R veri Tanım : Veriyi R registerine taşır. Opcode : 00DDD110 Komut adı : MVI M veri Tanım : Veriyi belleğe taşır. Opcode : 00110110 Komut adı : LXI RP veri Tanım : Veriyi Rp register çiftine taşır. Opcode : 00RP0001 Komut adı : LDA adres Tanım : Bellekteki veriyi akümülatöre taşır.
26
Opcode : 00111010
Komut adı : STA adres Tanım : Akümülatörün içeriğini belleğe taşır. Opcode : 00110010 Komut adı : LHLD adres Tanım : Verilen adresin içeriğini L’ye bir sonrakini H registerine taşır. Opcode : 00101010 Komut adı : SHLD adres Tanım : Register içeriğini verilen adrese taşır. Opcode : 00100010 Komut adı : LDAX RP Tanım : RP pegister çiftinin içeriğini akümülatöre taşır. Opcode : 00RP1010 Komut adı : STAX RP Tanım : Akümülatörün içeriğini RP register çiftine taşır. Opcode : 00RP0010 Komut adı : XCHG Tanım : H ve L register içeriğini sırasıyla D ve E ile değiştirir. Opcode : 11101011 Komut adı : INR R Tanım : Register içeriğini 1 ile toplar. Opcode : 00DDD100
27
Komut adı : INR M Tanım : Bellek içeriğini 1 ile toplar. Opcode : 00110100 Komut adı : INX RP Tanım : Register çiftinin içeriğini 1 ile toplar. Opcode : 00RP0011 Komut adı : DCR R Tanım : Register içeriğinden 1 çıkartır. Opcode : 00DDD101 Komut adı : DCR M Tanım : Bellek içeriğinden 1 çıkartır. Opcode : 00110101 Komut adı : DCX RP Tanım : RP register çifti içeriğinden 1 çıkartır. Opcode : 00RP1011 Komut adı : ADD R Tanım : R register ve akümülatör içeriğini toplar sonucu akümülatörde saklar. Opcode : 10000SSS Komut adı : ADD M Tanım : Bellek ve akümülatörün içeriğini toplar sonucu akümülatörde saklar. Opcode : 10000110 Komut adı : ADI veri Tanım : Veri ve akümülatörü toplar sonucu akümülatörde saklar. Opcode : 11000110
28
Komut adı : ADC R Tanım : R register ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar. Opcode : 10001SSS Komut adı : ADC M Tanım : Bellek ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar Opcode : 10001110 Komut adı : ACI veri Tanım : Veri ve elde bayrağını akümülatör ile toplar sonucu akümülatörde saklar. Opcode : 11001110 Komut adı : DAD RP Tanım : RP register çiftini HL register çifti ile toplar sonucu HL register çiftinde saklar. Opcode : 00RP1001 Komut adı : SUB R Tanım : R register çiftini akümülatörden çıkartır sonucu akümülatörde saklar. Opcode : 10010SSS Komut adı : SUB M Tanım : Bellek içeriğini akümülatörden çıkartır sonucu akümülatörde saklar. Opcode : 10010110 Komut adı : SUI veri Tanım : Veriyi akümülatörden çıkartır sonucu akümülatörde saklar. Opcode : 11010110 Komut adı : SBB R Tanım : R register i ve elde bayrağını akümülatörden cıkartır sonucu akümülatörde saklar.
29
Opcode : 10011SSS Komut adı : SBB M Tanım : Bellek ve elde bayrağını akümülatörden çıkartır sonucu akümülatörde saklar. Opcode : 10011110 Komut adı : SBI veri Tanım : Veri ve elde bayrağını akümülatörden çıkartır sonucu akümülatörde saklar. Opcode : 11011110 Komut adı : CMA Tanım : Akümülatördeki sayının tümleyenini alır. Opcode : 00101111 Komut adı : STC Tanım : Elde bayrağının değerini 1 yapar. Opcode : 00110111 Komut adı : CMC Tanım : Elde bayrağının değerini 0 ise 1, 1 ise 0 yapar. Opcode : 00111111 Komut adı : DAA Tanım : Akümülatörün içeriğini BCD sayıları ile çalışacak şekilde düzenler. Opcode : 00100111 Komut adı : RLC Tanım : Akümülatörü bir bit sola döndürür. Opcode : 00000111 Komut adı : RRC
30
Tanım : Akümülatörü bir bit sağa kaydırır. Opcode : 00001111 Komut adı : RAL Tanım : Akümülatörü elde bayrağı ile birlikte sola kaydırır. Opcode : 00010111 Komut adı : RAR Tanım : Akümülatörü elde bayrağı ile birlikte sağa kaydırır. Opcode : 00011111 Komut adı : ANA R Tanım : R registeri ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar. Opcode : 10100SSS Komut adı : ANA M Tanım : Bellek ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar. Opcode : 10100110 Komut adı : ANI veri Tanım : Veri ile akümülatör arasında VE işlemi yapar sonucu akümülatörde saklar. Opcode : 11100110 Komut adı : XRA R Tanım : R registeri ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar. Opcode : 10101SSS Komut adı : XRA M Tanım : Bellek ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar. Opcode : 10101110
31
Komut adı : XRI veri Tanım : Veri ile akümülatör arasında XOR işlemi yapar sonucu akümülatörde saklar. Opcode : 11101110 Komut adı : ORA R Tanım : R registeri ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde saklar. Opcode : 10110SSS Komut adı : ORA M Tanım : Bellek ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde saklar. Opcode : 10110110 Komut adı : ORI veri Tanım : Veri ile akümülatör arasında VEYA işlemi yapar sonucu akümülatörde saklar. Opcode : 11110110 Komut adı : (CMP R) 1 Tanım : R registeri ile akümülatörü karşılaştırır sonuç bayrakların durumu ile gösterilir. Opcode : 10111SSS Komut adı : (CMP M)1 Tanım : Bellek ile akümülatörü karşılaştırır sonuç bayrakların durumu ile gösterilir. Opcode : 10111110 Komut adı : (CPI veri) 1 Tanım : Veri ile akümülarötü karşılaştırır sonuç bayrakların durumu ile gösterilir. Opcode : 11111110 Komut adı : JMP adres Tanım : Komutta verilen adrese dallanır.
32
Opcode : 11000011 Komut adı : JC adres Tanım : Verilen adrese elde var ise atlar. Opcode : 11011010 Komut adı : JNC adres Tanım : Verilen adrese elde yok ise atlar. Opcode : 11010010 Komut adı : JZ adres Tanım : Verilen adrese sıfır ise atlar. Opcode : 11001010 Komut adı : JNZ adres Tanım : Verilen adrese sıfır değil ise atlar. Opcode : 11000010 Komut adı : JP adres Tanım : Verilen adrese pozitif ise atlar. Opcode : 11110010 Komut adı : JM adres Tanım : Verilen adrese negatif ise atlar. Opcode : 11111010 Komut adı : JPE adres Tanım : Verilen adrese çift parite ise atlar. Opcode : 11101010 Komut adı : JPO adres
33
Tanım : Verilen adrese tek parite ise atlar. Opcode : 11100010 Komut adı : PCHL Tanım : HL register çiftini prıgram sayıcısına alır program kaldığı adresten devam eder. Opcode : 11101001 Komut adı : CALL adres Tanım : Verilen adresten programa devam eder. Opcode : 11001101 Komut adı : CNZ adres Tanım : Verilen adrese sıfır değil ise atlar. Opcode : 11000100 Komut adı : CZ adres Tanım : Verilen adrese sıfır ise atlar. Opcode : 11001100 Komut adı : CNC adres Tanım : Verilen adrese elde yok ise atlar. Opcode : 11010100 Komut adı : CC adres Tanım : Verilen adrese elde var ise atlar. Opcode : 11011100 Komut adı : CPO adres Tanım : Verilen adrese tek parite ise atlar. Opcode : 11100100
34
Komut adı : CPE adres Tanım : Verilen adrese çift parite ise atlar. Opcode : 11101100 Komut adı : CP adres Tanım : Verilen adrese pozitif ise atlar. Opcode : 11110100 Komut adı : CM adres Tanım : Verilen adrese negatif ise atlar. Opcode : 11111100 Komut adı : RET Tanım : Alt program sona erdikten sonra ana programda kaldığı adresten devam eder. Opcode : 11001001 Komut adı : RNZ Tanım : Ana programa sıfır değil ise döner. Opcode : 11000000 Komut adı : RZ Tanım : Ana programa sıfır ise döner. Opcode : 11001000 Komut adı : RNC Tanım : Ana programa elde yok ise döner. Opcode : 11010000 Komut adı : RC Tanım : Ana programa elde var ise döner. Opcode : 11011000
35
Komut adı : RPO Tanım : Ana programa tek parite ise döner. Opcode : 11100000 Komut adı : RPE Tanım : Ana programa çift parite ise döner. Opcode : 11101000 Komut adı : RP Tanım : Ana programa pozitif ise döner. Opcode : 11110000 Komut adı : RM Tanım : Ana programa negatif ise döner. Opcode : 11111000 Komut adı : RST n Tanım : Özel amaçlı bir CALL komutudur. Opcode’u 3., 4. ve 5. bitleri ile belirlenir. Opcode : 11n 1n2n3111 Komut adı : XTHL Tanım : Yığının en üsteki byte‘i HL register çifti ile yer değiştirir. Opcode : 11100011 Komut adı : SPHL Tanım : HL register çiftini stack pointere aktarır. Opcode : 11111001 Komut adı : OUT PORT Tanım : Akümülatörden porta bilgi gönderir.
36
Opcode : 11010011 Komut adı : IN PORT Tanım : Porttan akümülatöre bilgi gönderir. Opcode : 11011011 Komut adı : DI Tanım : Dışarıdan gelen maskelenebilir interrupt sinyallere tepki gösterir. Opcode : 11110011 Komut adı : EI Tanım : Dışarıdan gelen maskelenebilen interrupt sinyallerine tepki göstermez. Opcode : 11111011 Komut adı : NOP Tanım : Zamanlama programlarında işlemciyi bekletir. Opcode : 00000000 Komut adı : HLT Tanım : Đşlemcinin çalışması durdurulur. Opcode : 01110110
1
Akümülatör = R, M veya veri ise sıfır (Z) bayrağı 1 değerini alır. Akümülatör ≠ R, M veya veri ise sıfır (Z) bayrağı 0 değerini alır. Akümülatör > R, M veya veri ise elde (CY) bayrağı 1 değerini alır. Akümülatör < R, M veya veri ise elde (CY) bayrağı 0 değerini alır.