You are on page 1of 37

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

TEŞEKKÜ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

ĐÇĐNDEKĐLER

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 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 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.

You might also like