Assembly Öğreniyorum-8
ASSEMBLY DİLİ KURALLARI
Etike alanı 1-6 karakter olmalıdır.
-İlk karakter sayı/rakam olmaz.
Sayıların Temsili Derleyici Tarafından Anlaşılması
Sayı -------> Desimal
--------------------------------------------------------
$sayı --------> Hekzadesimal
sayıH --------> Hekzadesimal
---------------------------------------------------------
@sayi --------> Oktal
sayiO --------> Oktal
sayiQ --------> Oktal
--------------------------------------------------------
%sayi --------> Binary
sayiB --------> Binary
# Kendisinden sonra gelenin data olduğunu gösterir. Ve immediate adresleme kullanılır.
Komut Kümesi : 6802 mikroişlemcisinin komut kümesi bir, iki ve ya üç bytelık komutlardan oluşur. Bir komutun uzunluğu komuta ve adresleme çeşidine bağlı olup, ilk byte komutu ve kullanılan adresleme çeşidini belirlemeye yeterlidir. 6802 mikroişlemcisinin 74 komutu bütün geçerli adresleme çeşitleri için onaltılık tabanda operasyonel kodlara sahiptir.
Adresleme Modları :
7 çeşit adresleme modu vardır :
- Immediate Adresleme
- Relative Adresleme
- Inherint Adresleme (Anlaşılır, içerilmiş)
- Indexed Adresleme
- Akümülatör Adresleme
- Extended Adresleme
- Direct Adresleme
Assembly Öğreniyorum-7

6802 Mikroişlemci Uç Tanımlamaları :
Vss : Topraklama, şase
HALT : En son yaptığı işlemi tamamlar ve çalışmasını durdurur. Pause işlemi gibi düşünebiliriz. Eğer kesme işlemi (halt) yapılmayacaksa bu uç +5 volta bağlanmalıdır.
MR : İşlemcinin bilgisayara bağlı hızı yavaş olan ana belleklerle çalışabilmesini sağlar.
IRQ (Interrupt Request) : CCR kayıtçısında belirtilen kesme (I) biti ile denetlenir. Eğer I biti sıfırsa gelen gesme isteğine cevap verilir. FFF8, FFF9 adreslerinde yazılı olan adresteki programa dallanır.
VMA (Valid Memory Address) : Adres hatları üzerindeki bilginin adres bilgisi olup olmadığını belirlemeye yarar.
NMI (Non-Maskable Interrupt) : Bu uç lojik-0 olunca mikroişlemcinin o andaki bilgileri yığın göstergeci vasıtasıyla saklanır. FFFC, FFFD adresinde belirtilen programa dallanır.
BA (Bus Avaible) : Bu uç data ve adres yollarının mikroişlemci dışındaki kullanıcılar için kullanmaya uygun olduğunu belirler.
Vcc : Bu uçtan besleme gerilimi verilir. (5V)
R/W (Read/Write) : Lojik-o ise hafızaya yaz, lojik-1 ise hafızadan oku demektir.
RE ( Ram Enable) : İşlemcinin içindeki küçük ramin (128byte) kullanıp kullanılmayacağını belirleyen uçtur.
E ( Enable) : İşlemci ile çevre birimleri arasındaki senkrinizasyonu sağlayan uçtur.
XTAL ve EXTAL : Kristal frekans uçlarıdır. PC'nin çalışma frekansını belirler.
RES : Bu uç lojik-0 yapıldığında program FFFE ve FFFF adresineki yazılı olan adrese dallanır; ve bu adreslerin gösterdiği adres mikroişlemci programının başlangıç adresidir.
Not : mikroişlemci programının başlangıç adresinde bir EPROM vardır ve içerisinde BIOS yazılımı vardır.
A0-A15 uçları adres uçlarıdır, 16 bittir.
D0-D6 uçları ise veriyolu uçlarıdır, 8 bittir.
Assembly Öğreniyorum-6
Bellek
Bilgisayarda bir programla ilgili bütün komut veya verilerin işlem görmek üzere geçici veya daimi olarak depo edildiği, değişik işlemler sonrasında oluşan ara bilgilerin saklandığı bir kayıt sistemidir.
Her bellek hücresinin belirli bir kelime uzunluğu vardır. Yani belirli sayıda bit kaydı yapılır. Kelime uzunluğunu belirleyen veri yolu boyutudur.
RAM BELLEK : MOS teknolojisi kullanıştır. Bellek işlevsel yönden, girilen veri ve komutların depolanmasıyla yapılan işlemlerle ilgili olarak bir takım kısımlara ayrılır.
- Komutlar Belleği : Bu bellek bilgisayarı çalışma sırasında yararlanılan komutların oluşturduğu programların yani uygulama programların kaydedildiği yerdir.
- Veri Belleği : Belirli bir konuda alınmak istenen sonucu gerçekleştirmek üzere, programın yürütülmesi sırasında kullanılan ön bilgiler, RAM belleklerin belli bir bölümünde saklanır. Bu bölüme veri belleği ( Data Memory ) denir.
- Sabit Değerler Belleği : Program işleyişi sırasında kullanılan sabit değerlerin saklandığı kısımdır.
- Geçici Bilgiler Belleği : Ana değerlerin saklandığı kısımdır.
Yazar : Uğur ESKİCİ
Kaynak göstermek koşulu ile alıntı yapabilirsiniz. Assembly öğreniyorum yazı dizim, 6802 Intel işlemcileri baz alınarak kendi yorumlarım/anlatımlarım, ders notlarım ve çeşitli internet kaynaklarından ufak alıntılar ile düzenlenlenerek yazılmıştır.
Assembly Öğreniyorum-5
Mikroişlemci Mimarisi
CISC ( Complex Instruction Set Computer - Karmaşık Komut Setli Bilgisayar )
Bu mimari programlanması kolay ve etkin bellek kullanımını sağlayan tasarım felsefesinin bir türüdür.
- Performans düşüklüğüne sebep olur.
- İşlemciyi daha karmaşık hale getirir.
+ Yazılımı basitleştirir.
CISC mimarisinin karakteristik iki özelliğinden birisi; değişken uzunluktaki komutlar, diğeri ise karmaşık komutlardır. Değişken ve karmaşık uzunluktaki komutlar bellek tasarrufu sağlar. Karmaşık komutlar iki yada daha fazla komutu tek bir komut haline getirdikleri için hem bellekte hem programda yer alması gereken komut sayısından tasarruf sağlar.
CISC Mimarisinin Üstünlükleri
- Mikro programlama, assembly dilinin yürütülmesi kadar kolaydır ve sistemdeki kontrol biriminden daha ucuzdur.
- Yeni komutlar ve mikro kod ROM'a eklemennin kolaylığı tasarımcılara CISC makinelerini geriye doğru uyumlu yapmalarına izin verir.
- Herbir komut daha yetenekli olmaya başladığından, verilen bir görevi yürütmek için daha az komut kullanılır.
- Mikro program komut kümeleri, yüksek seviyeli dillerin yapılarına benzer biçimde yazılabildiğinden, derleyici karmaşık olmak zorunda değildir.
CISC Mimarisinin Dezavantajları
- Komut kodu ve çip donanımı bilgisayarların her kuşağıyla birlikte daha karmaşık hale gelmiştir.
- Makine performansını düşürür.
- Çoğu özel güçlü komutlar geçerliliklerini doğrulamak için yeteri kadar sık kullanılmıyor. Tipik bir programda mevcut komutların yaklaşık %20sini kullanılıyor.
- Komutlar genellikle bayrak (durum) kodunu, komuta bir yan etki olarak kurar. Bu ise ek cycle (çevrim) yani bekleme demektir. Aynı zamanda, sıradaki komutlar işlem yapmadan önceden bayrak bitlerinin mevcut durumunu bilmek durumundadır. Buda yine ek cycle demektir.
Assembly Öğreniyorum-4
MİB'de (Merkezi İşlem Birimi) İletişim Yolları

1.Veri Yolu : Veri yolları, mikroişlemcinin çevre elemanlarından (RAM, ROM,EPROM,I/O...) gelen bilgi veya komutların yada işlem görmüş olan bilgi veya komutları çevre arabirim elemanlarına iletmek amacıyla kullanırlar. Çift yönlüdür ve işlemcinin kapasitesini belirler. Bit sayısı veriyolunda kullanılan hatsayısıdır. Genel bir mikroişlemcili bir sistemde veri iki şekilde iletilir. Birincisi işlemcinin kendi iç yapısında bulunan elemanlarla (ALU ve kaydediciler) iletişim kurduğu iç veri yolları, ikincisi ise işlemci dışında bulunan çevre elemanlarla (RAM,EPROM,I/O vb...) iletişim kurduğu dış veri yollarıdır.
Ek Bilgi : İlk bilgisayar veri yolları, tam olarak paralel elektiriksel veri yollarıydı, fakat bu terim şimdilerde paralel elektiriksel veri yolu ile aynı mantıkta işlevsellik sağlayan herhangi bir fiziksel düzenleme için kullanılıyor. Modern bilgisayar veri yolları hem paralel hem de kısa-seri (bit-serial) bağlantılarını kullanabilir, ya multidrop (elktiriksel paralel) ya da DAİSY CHAİN topoloji elektrik tesisatı ile donatılabilir, ya da USB’de olduğu gibi, çevrilmiş hareket noktası ile bağlanabilir.
İlk bilgisayar veri yolları belleğe ya da çevresel aygıtlara bağlanmış tel yumaklarıydı. Bunlar, elektiriksel veri yollarının ya da elektrik bağlama çubuklarının ardından isimlendirilmiştir. Neredeyse her zaman, bellek için bir veri yolu ve çevresel aygıtlar için başka bir veri yolu vardır ve bunlar farklı talimatlarla, tamamen farklı zamanlama ve protokol ile giriş yaparlar.
Birinci engel, kesilmeler (interrupts) kullanmaktı. İlk bilgisayarlar çevresel aygıtların hazır olması için bir halka içinde bekleyerek I/O (input/output) görevini gerçekleştirirlerdi. Bu da başka görevler de yapmak zorunda olan programlar için zaman kaybı olurdu. Ayrıca, eğer program diğer görevleri yapmak için girişimde bulunursa, programın tekrar kontrol etmesi çok uzun sürebilirdi ve verilerin kaybolmasıyla sonuçlanabilirdi. Bu nedenle mühendisler merkezi işlem birimi (MİB) ile arasını açmak için çevresel aygıtları hazırladılar. Kesilmeler öncelikli olmak zorundaydı, çünkü MİB bir seferde sadece bir çevresel aygıtın üstesinden gelebilir ve bazı aygıtlar diğerlerinden daha kritik zamanlı olabilirdi.

























