Upload
huseyin-yigit
View
2.326
Download
21
Embed Size (px)
Citation preview
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 KAPASĐTESĐ: MĐB’nin 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 216=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. AD0-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. AD0-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, AD0-
AD7 hatları üzerine olduğu gibi, 8 bitlik giriş/çıkış birimi adresi oluşur.
ALU (Adres tutucu): Bu 30. bacağı oluşturan bu bacak AD0-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.
• VSS;VCC : 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.
• DOĞAL ADRESLAME: Bu adreslemeye karşılık olarak ‘register’ ve ‘implied’
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 A B C D E H L
KODU S/D 1 1 1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1
(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 0 0 0 1 1 0 1 1
(Tablo 2: Register ve register çiftleri için kodlar)
7.3. KOMUTLAR LĐSTESĐ
Komut adı : MOV R1 R2
Tanım : R2 register içeriğini R1’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 : 11n1n2n3111
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.
37
KAYNAKLAR
1. ADALI Eşref, Mikroişlemciler / Mikrobilgisayarlar, Birsen Yayınları, 1988.
2. AYTAÇ Cihat ve KUNTALP Mehmet, 8 Bit Mikrobilgisayar, Beta Basım A.Ş.,
1993.
3. KURTULDU Şaban , GÜLER Mehmet Ali ve VARGÖR, Đlhan, Đleri Elektronik 2,
M.E.B. Yayınları, 1994.
4. AKBAY Sönmez ve ÇETĐN Kadir, Mikroişlemciler, Birsen Yayınları, 1995.
5. Đntel Copreration, INTEL MCS- 80/85 User’s Manuel, 1979.