mikroişlemciler

suskun_

Üye
Katılım
11 Eki 2008
Mesajlar
28
Puanları
1
Yaş
39
merhaba arkadaşlar herkeze iyi akşamalar.Benim sorum şu olacaktı arkadaşlar yardım edrsiniz memnun olurum.Ben endüstriyel elektronik 2. sınıfta okumakatayım mikroişlemciler(CPU-MCU) dersimiz var ve hoca hızlı bir şekilde anlatmakta konyu vee ben ilk defa karşılastığım için pek bireşey anlamıyroum mikroişlmeciler ile kaynağı olan varsa lütfen yardımcı olabilirmi.komutlar hakkında özellikle .Bu arda söyleyim arkadaşlar proğram 68hc05 ile çalışmaktadır yanı okuldaki öle.
Saygılar.
 
1.1 Mikroişlemcilerin Çalışma Biçimleri

Mikroişlemci, bellekle 3 grup uç yoluyla bağlıdır.



Mikroişlemci döngüsel bir biçimde işlemlerini gerçekleştirir. Yani;
1) Bir grup byte topluluğunu RAM'den okur (instruction fetch).
2) Bu byte topluluğunun hangi komut olduğunu yorumlar.
3) Bu komutu çalıştırabilmek için elektronik devreleri çalıştırır.
4) Tekrar birinci adıma dönülerek işlemler yinelenir.

Bazı mikroişlemcilerde makine komutlarının uzunlukları hep aynıdır (Özellikle RISC grup işlemciler). Oysa Intel gibi pek çok CISC ailesi işlemcilerde konutlar farklı uzunluklarda olabilir. Mikroişlemci komutu yorumladıktan sonra uzunluluğunu da elde etmiş olur. Böylece bir sonraki komutun yerini de saptayabilir.

Mikroişlemcinin önemli bir bölümü, işlemlerin yapılmasını sağlayan mantık devreleriyle kaplıdır. Makine komutlarının operantları belleğe ilişkin olabilir. Örneğin bir makine komutu "500 numaralı bellek bölgesindeki sayıyı 1 artır" biçiminde olabilir. Bu durumda işlemci komutu çalıştırırken bellekten yine okuma ve yazma yapmak zorundadır. Yani mikroişlemci yalnızca komutu elde etmek için değil, komut içerisindeki operantları elde etmek için de belleğe erişir.

1.2 Tipik Bir RAM’in Yapısı

RAM'ler entegre devre biçiminde üretilir. Dış dünya ile bağlantıyı sağlayan çeşitli uçları vardır. Bir RAM genellikle byte biçiminde organize edilmiş gözeneklerden oluşur. Her gözenek içerisinde tipik olarak 8 bit vardır. Ama 8 bit olması zorunlu değildir. RAM'ler genellikle kapasite olarak ;

gözenek sayısı * gözenekteki bit sayısıdır.

Örnek: 1024 * 8

1024 byte'lık bir RAM'de herhangi bir gözeneği seçebilmek için ikilik sistemde 10 tane elektriksel hat gerekir. Dışarıdaki bir devre bu uçlara 5 volt ya da 0 volt gerilim uygulayarak bir sayı oluşturur. RAM devresi de bu bilgiyi alarak hangi gözeneğin seçilmiş olduğunu anlar. Bir gözeneği seçmekte kullanılan bu uçlara RAM'in adres uçları denir. A0, A1, A2, ... biçiminde gösterilir. Bunun dışında gözenek seçildikten sonra okuma mı, yoksa yazma mı yapılacağını anlatmaya sıra gelir. Bu işlem ayrı bir uçtan yapılır. BU uca R / W ucu denir. Örneğin bu uca 5 volt uygulanırsa okuma yapılacağı, 0 volt uygulanırsa yazma yapılacağı anlamına geliyor olabilir. RAM'in gözeneklerdeki bilgiyi aktarmak için kullanılan bir veri ucu vardır.Bu uçlar genellikle D0, D1, D2, ... olarak isimlendirilir. ([Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden Akbil'in mekanizmasını öğrenebilirsin (1991 işlemci).) Bu durumda 1024 * 8'lik bir RAM de 10 tane adres ucu, 8 tane data ucu ve bir tane de R/W ucu olmalıdır. ve ek olarak başka uçlar da vardır.

RAM'den okuma şöyle yapılır:
1.Adım . Adres uçlarına gözenek numarası girilir.
2.Adım: R/W okuma konumuna getirilir.
3.Adım:Bir süre beklenir ve data uçları örneklenir.

Yazma işlemi ise şöyle yapılır:
1.Adım: Gözenek numarası adres uçlarına bırakılır.
2.Adım: R/W ucu yazma konumuna getirilir.
3.Adım: Yazılacak bilgi ikilik sistemde data uçlarına bırakılır.

1.3 CPU ile RAM Arasındaki Bağlantı

Genel olarak CPU'nun adres uçları RAM'in adres uçlarıyla, data uçları da RAM'in data uçlarıyla bağlantılıdır. Benzer biçimde CPU'nun kontrol uçları RAM'in çeşitli kontrol uçlarıyla bağlantılıdır.

Bir CPU'nun adresleyebildiği maksimum fiziksel RAM kapasitesi vardır. Bu kapasite CPU'nun adres uçlarının sayısıyla doğrudan ilgilidir. Örneğin Z-80 ve 8080 işlemcilerinin 16 adres ucu vardır. Bu işlemciler ancak 64 KB bellek kullanabilirler. Intel 286 işlemcisinin 24 adres ucu, 386 ve 486 işlemcilerinin 32 adres ucu vardır. İşlemcinin RAM'den bir seferde transfer edeceği bilgi veri data uçlarının sayısına bağlıdır. Z80 ve 8080 işlemcileri 8, 8086 ve 80286 işlemcileri 16, 386 ve 486 işlemcileri 32 data ucuna sahiptir.

CPU içerisindeki elektronik devrelerle bağlantılı olan RAM'den çekilen bilginin geçici süre saklanmasında kullanılan CPU içerisindeki küçük bellek bölgelerine register denir. Bir mikro işlemcinin kaç bitlik mikro işlemci olduğu register uzunluğu ile belirlenir. Örneğin 80386 işlemcisi 32 bitlik bir işlemcidir, çünkü 32 bit register'lara sahiptir. Bir mikro işlemcinin register uzunluğu işlemcinin bir hamlede kaç bitlik bilgi üzerinde işlem yapabildiğini anlatır. Örneğin 8086 16 bitlik bir mikro işlemcidir. 32 bit iki sayı toplanacak olsa bu toplama işlemi tek işlemde değil ancak iki işlemde yapılabilir(C'de int türü derleyiciyi yazanlar tarafından genellikle işlemcinin register uzunluğu kadar alınır).

1.4 Makina Komutu Kavramı

Mikroişlemci her işlemi bir makina komutuyla yapar. Makina komutu işlemciye hangi işlemin yapılacağını anlatan byte topluluğudur. Intel işlemcilerinde makina komutlarının byte uzunlukları farklı olabilmektedir. Her mikroişlemcinin bir komut kümesi vardır. Bütün program bu komutlarla ifade edilmek zorundadır. Makina komutlarının sayısı CISC ailesi mikroişlemcilerde, RISC ailesi mikroişlemcilerine göre daha fazla ve çeşitlidir.

1.5 Makina Komutlarının Genel Biçimi

Her makina komutu gerçekte ikilik sistemde bir byte topluluğudur. Ancak sembolik makina dilinde sayılar yerine sembolik ifadeler kullanılarak gösterilirler. Zaten sembolik makina dili derleyicilerinin yaptığı şey genelde sembolik olarak yazılmış olan bu komutları sayılara dönüştürmektir. Bir makina komutu hangi işlemin yapılacağını anlatan bir işlem bilgisi ve operandlardan oluşur. Makina komutları tek operandlı ya da iki operandlı olabilirler. Makina komutlarının genel biçimi şöyledir:

Komut operand
Komut operand1, operand2

Örneğin:

INC AX
ADD AX, BX

Intel işlemcilerinde tek operandlı komutlarda operand register'a ya da belleğe ilişkin olabilir. İki operandlı komutlarda her iki operand da belleğe ilişkin olamaz. Operandlardan herhangi birisi belleğe diğeri register'a ilişkin olabilir. Operandlardan her ikisi de register'a ilişkin olabilir. Bazı makina komutlarının operandı yoktur. Bu komutlardan bazıları default bir takım register'ları operand olarak kullanırlar. Özetle makina komutları :
• Ya operandsız olur,
• Ya tek operandlı olur,
• Ya da iki operandlı olur.
• İki operandlı komutlarda her iki operand da belleğe ilişkin olamaz.

Genel olarak bir operand register'a, belleğe ya da sabite ilişkin olabilir. İki operandlı komutlarda bir operand belleğe ilişkinken, diğer operand bir sabite ilişkin olabilir. Sonuç olarak Intel işlemcilerinde komutların rastlanabilen biçimleri şunlardır:

Komut
Komut sabit
Komut reg
Komut mem
Komut reg, mem
Komut reg sabit
Komut reg, reg
Komut mem, reg
Komut mem, sabit

1.6 80x86 Mikroişlemcisinin Çalışma Modları

80x86 mikroişlemcisinin üç alışma modu vardır.

1. Gerçek Mod (Real Mode)
2. Sanal86 Mod (Virtual 86 Mode)
3. Korumalı Mod (Protected Mode)

80x86 işlemcileri reset edildiğinde çalışma gerçek modda başlar. Korumalı moda gerçek moddan yazılım yolu ile geçilmektedir. 8086, 8088, 80186 işlemcileri sadece gerçek moda çalışabiliyordu. 80286 işlemcisi gerçek mod ve korumalı modlarda çalışabilmektedir. 80386 ve sonrası bu üç modu desteklemektedir. 80X86 işlemciler gerçek modda çok küçük farklılıklar dışına hızlı bir 8086 gibi çalışmaktadır. DOS işletim sistemi gerçek modda çalışabilecek biçimde tasalanmıştır. 8086 işlemcisi 1 MB bellek kullanabilen 16 bit bir mikroişlemcidir. Bu nedenle gerçek modda ancak 1 MB bellek kullanılabilir. Korumalı mod koruma mekanizmasının, sanal bellek kullanımının, çok işlemli çalışmanın, mümkün olduğu en ileri çalışma modudur. UNIX ve Windows sistemleri korumalı modda çalışmaktadır. Sanal 86 Modu 8086 gibi çalışmanın sağlandığı ancak korumalı modun çeşitli özelliklerinin kullanılabildiği bir ara moddur. Windows işletim sisteminde komut satırı Sanal 86 Modunda çalışmaktadır çünkü Windows işletim sisteminde kullanılan taskswitch mekanizmasında Gerçek Mod kullanılamamaktadır. Windows işletim sisteminde DOS penceresi açıldığında yada herhangi bir DOS programı çalıştırıldığında işlemci Sanal 86 moduna geçmektedir. Ancak işletim sisteminin açılışında F8 tuşuna basılarak Sadece Komut İstemi seçeneği seçildiğinde Gerçek Modda çalışma söz konusu olur.

1.7 8086 İşlemcisinin Yazmaç Yapısı

8086 mikroişlemcisi toplam 14 yazmaca sahiptir.

4 adet genel amaçlı yazmaç vardır

AX(Accumlator Register),
BX(Base Register)
CX(Count Register)
DX(Data Register)

Bu yazmaçlar bütün olarak 16 bit biçiminde kullanılabilir yada düşük ve yüksek anlamlı kısımları bağımsız 8 bitlik yazmaçlar gibi de kullanılabilir. Yani 12 adet yazmaç ifadesi yazılabilir. 8 bitlik parçalar bütünü oluşturur. Yani örneğin AH ve AL yazmaçlarına yükleme yapıldığında AX yazmacı oluşturulmuştur.

2 adet indeks yazmacı vardır.

SI(Source Index Register)
DI(Destination Index Register)

Bu iki yazmaç 8 bitlik parçalara bölünmemiştir. Data bölgesini indekslemek amacıyla kullanılır.

3 Adet Gösterici Yazmacı Vardır (Pointer Register)
IP(Instruction Pointer Register)
SP(Stack Pointer Register)
BP(Base Pointer Register)

4 Adet Segment Yazmacı Vardır
CS(Code Segment Register)
DS(Data Segment Register)
SS(Stack Segment Register)
ES(Extra Segment Register)

1 Adet Bayrak Yazmacı Vardır
F

Bütün yazmaçlar 16 bit uzunluğundadır ancak sadece genel amaçlı yazmaçlar ayrıca parçalara ayrılmışlardır.

Her komut her yazmaç ile çalıştırılamayabilir. Aritmetik işlemler, karşılaştırma işlemleri yada bit işlemleri için Genel Amaçlı Yazmaçların hepsi kullanılabilir. SI ve DI yazmaçları indeksleme amacıyla tasarlanmış olmalarına karşın Genel Amaçlı Yazmaçlarla aynı işlemlere kullanılabilirler.

Aritmetik, karşılaştırma ve bit işlemleri 16 bit ise AX, BX, CX, DX, SI, DI yazmaçlarıyla yapılabilir. Aynı işlemler 8 bit yapılacak ise AH, AL, BH, BL, CH, CL, DH, DL yazmaçları kullanılabilir
Kural 2 operandlı bir makina komutunun sonuçları her zaman soldaki operand bozularak onun içerisine yazılır. Tek operandlı makina komutunun sonuçları operand içerisindeki değer bozularak yazılmaktadır. Örneğin:

Add ax, bx

işleminde sonuç AX yazmacına yazılacaktır. Yada örneğin:

Add mem, ax

işleminde MEM ile belirtilen bellek bölgesindeki bilgi ile AX yazmacı içerisindeki bilgi toplanır sonuç MEM ile belirtilen bellek bölgesine yazılır. Yada örneğin

Inc ax


arkadaşım eğer bu bilgiler yeterli gelmezse düzceüniversitesi.net adresinden istediğin bilgiye ulaşabilirsin
 
belleğin d0 ile df arasındaki sayıların tek olanların sayısını e0 çift olanların sayısnı e1e yazan proğram:

org$300
clr$e0
clr$e1
ldx#$d0
devam
lda 0,x
asra(akümülatörün içindeki sayıyısağa kaydır)
bcs_teksayıya_git
inc$d1
incx
devam1
cdx#$e0
begbitir
bra_devam
teksayı_git
inc$e0
bra devam
stop
KARDEŞ mesala bunların gıbı veyaveya d0 ile df adresleri arasındakı sayıların negatif ise e0 pozitif ise e2 proğramı üstteki örneğin ne anlama geldıgı ordakı konutların
Saygılar
 

Forum istatistikleri

Konular
128,289
Mesajlar
916,462
Kullanıcılar
450,118
Son üye
TheTwize

Yeni konular

Geri
Üst