6502 Mikroislemcisi

Download Report

Transcript 6502 Mikroislemcisi

6502 Mikroişlemcisi
Mikroişlemciler ve
Mikrobilgisayarlar
1
6502
•
MOS Technology tarafından 1975 yılında üretilen 8 bitlik bir mikroişlemcidir.
•
Apple II, Commodore gibi bilgisayarlarda kullanılmıştır.
•
56 farklı tipte komutu işleyebilir. 13 farklı adresleme türü ile bu sayı artabilir.
•
16 bitlik adres yoluna sahiptir.
•
İşlemcinin üzerinde birbiri ile çakışmayan iki fazlı saat sinyali üreten osilatör
ve saat sürücüleri vardır. (8085-8088 ve 8086’da bunlar işlemci dışındaydı)
Mikroişlemciler ve
Mikrobilgisayarlar
2
Dış Mimari
Mikroişlemciler ve
Mikrobilgisayarlar
3
İç Mimari
•
Accumulator(A): 8 bitlik olup işlemciye harici cihazdan giren veri önce bu
kaydediciye alınır ve işlendikten sonra dağıtımı yapılır. ALU biriminin temel
kaydedicisidir.
•
Index Registers (X ve Y): 8 bitliklik bu kaydediciler bellekteki toplu verilere
veya veri tablolarına erişmede kullanılırlar. Bu kaydedicilerin 3 ana görevi
vardır :
– Hesaplamalarda ara değerlerin geçici olarak saklandığı yerdir.
– Program döngülerinde ve zamanlama uygulamalarında bir sayıcı olarak
kullanılabilir.
– Bellekte depolanmış dizi halindeki veri tablosu veya veri bloğu üzerinde
bir indisçi gibi kullanılabilir.
Mikroişlemciler ve
Mikrobilgisayarlar
4
•
Program Counter (PC) : Bellekte işlenecek olan bir sonraki komutun
adresini göstermekte kullanılır. 16 bitliktir.
Bellekte sadece komutlar değil aynı zamanda adresler de saklanır. Adresler
2 parçaya ayrılarak saklanırlar. Bir adres bellekte saklanacağı zaman önce
küçük değerli kısmı (LSB), sonra büyük değerli kısmı (MSB) saklanır. Bu
adres PC’ye yükleneceğinde;
8 bit
PCH
PCL
0 0 0 0 0 0 1 0 1 1 1 1 1 1 0 0
Adresin MSB kısmı = 02
Adresin LSB kısmı= FC
Mikroişlemciler ve
Mikrobilgisayarlar
BCS
LSB
MSB
FC
02
.
.
.
5
•
Stack Pointer (SP) : RAM belleğin bir bölümü programın işletilmesi
sırasında geçici olarak kullanılır. Bu bölgeye yığın (stack) denir. Koşullu
ifadelerin işletilmesi sırasında, programcı tarafından başka bir işlem yapmak
istediğinde bu bölge kullanılır.
8 bit
SP (Stack Pointer)
FFFFh
0 0 0 0 0 0 0 1 X X X X X X X X
01FFh
Yığın
0100h
Sistemin ilk çalışmasında SP 01FFh
adresini işaret eder. LIFO mantığına
göre çalışır.
Mikroişlemciler ve
Mikrobilgisayarlar
0000h
6
•
Instruction Register (IR) : 8 bitlik olup, bellekten getirilen komutlar burada
tutulur. Programcı erişemez.
•
Data Address Register (DAR): Bellekte üzerinde çalışılacak adresin
oluşturulmasında bu kaydedici kullanılır. Bellekteki herhangi bir adres bilgisi
(LSB ve MSB çiftinden oluşan) bellekten sırasıyla geitirlerek DAR’da
oluşturulur ve bu adres bilgisi daha sonra MAR’a aktarılır. 16 bitliktir.
8 bit
DARH
DARL
X X X X X X X X X X X X X X X X
Adresin MSB kısmı
Adresin LSB kısmı
LSB
MSB
.
.
.
[DARL][M([LSB])]
[DARH][M([MSB])]
[MAR][DAR]
Mikroişlemciler ve
Mikrobilgisayarlar
7
•
Data Register (DR): Akümülatör ile beraber ALU’da yapılacak olan
işlemlerde operand bilgisinin tutulmasında kullanılır.
•
Memory Address Register (MAR) : Bellekte işletilecek bir sonraki komutun
adresi bu kaydediciye PC tarafından yerleştirilir ve daha sonra ilgili konum
adreslenir.
•
Memory Buffer Register (MBR) : Bellekten herhangi bir veri işlemciye
getirilmek istendiği zaman ilk bu kaydediciye getirilir.
•
Processor Status Word (PSW) : Aritmetik ve mantıksal işlemlerin sonuçları
bu bayraklara etkiler ve çeşitli karar mekanizmalarında conrol unit (CU) bu
bayrakların durumunu sorgulayarak gerekli sinyallemeleri sağlar. 6502’de
bu bayrak 8 bit genişliğinde olup 5. biti boştur (+5V’a bağlanmıştır).
Mikroişlemciler ve
Mikrobilgisayarlar
8
6502’nin bayrakları
Mikroişlemciler ve
Mikrobilgisayarlar
9
PSW Bayrakları
•
Negative Flag (N): Herhangi bir verinin MSB bitine bağlı olarak verinin
işlenmesinde veya verinin transferinde ortaya çıkan sonucun işaretini
gösterir.
•
OVerflow Flag (V): İşaretli iki sayının birbirinden çıkarılması veya birbirleri ile
toplanmasıyla elde edilen sonuçta bir taşma olup olmadığını gösterir.
Taşma, 8 bitlik aritmetik işlem sonucunda -128’den az, +127’den fazla
olması halinde ortaya çıkar. (CLV komut bayrağı temizler)
•
Break Instruction Flag (B): BRK komutunun işlem sırasında ortaya çıkışını
CPU’ya bildirmek için kullanılır. Bu komut yazılım durdurma komutudur.
Mikroişlemciler ve
Mikrobilgisayarlar
10
PSW Bayrakları (Devam)
•
Decimal Mode Flag (D): Bu bayrağın “1” olması durumunda CPU işlemleri
BCD modunda yapar. Tersi durumda işlemleri ikili modda yapar. SED (Set D
flag) ve CLD (Clear D flag) komutları ile kurur ve resetlenir.
•
IRQ Disable Flag (I): Bu bayrak set edildiğinde (“1”) IRQ kesme talebinin
etkisi ortadan kalkar ve dikkate alınmaz. İşlemci normal çalışmasına devam
eder. SEI (Set I flag) komutuyla kurulurken, CLI (Clear I flag) komutuyla
resetlenir.
•
Zero Flag (Z) : Herhangi bir veri harekeliliği sonucunda sonuç sıfırsa bu
bayrak 1 olur.
•
Carry Flag (C): 8 bitlik aritmetiksel işlemlerin sonucunda 8. bitten 9. bite bir
geçiş varsa bu bayrak kurulur. SEC (Set C Flag) komutuyla kurulur ve CLC
ile resetlenir.
Mikroişlemciler ve
Mikrobilgisayarlar
11
6502’nin saklayıcı yapısı
Mikroişlemciler ve
Mikrobilgisayarlar
12
6502’nin saklayıcı yapısı
Mikroişlemciler ve
Mikrobilgisayarlar
13