Mikroişlemciler ve Mikrobilgisayarlar 6502 Mikroişlemcisi Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 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
Mikroişlemciler ve Mikrobilgisayarlar Dış Mimari Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar İç 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
Mikroişlemciler ve Mikrobilgisayarlar 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 1 BCS LSB FC MSB 02 . Adresin MSB kısmı = 02 Adresin LSB kısmı= FC Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 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 1 X 01FFh Yığın 0100h Sistemin ilk çalışmasında SP 01FFh adresini işaret eder. LIFO mantığına göre çalışır. 0000h Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 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 LSB MSB . Adresin MSB kısmı Adresin LSB kısmı [DARL][M([LSB])] [DARH][M([MSB])] [MAR][DAR] Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 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
Mikroişlemciler ve Mikrobilgisayarlar 6502’nin bayrakları Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 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
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
Mikroişlemciler ve Mikrobilgisayarlar 6502’nin saklayıcı yapısı Mikroişlemciler ve Mikrobilgisayarlar
Mikroişlemciler ve Mikrobilgisayarlar 6502’nin saklayıcı yapısı Mikroişlemciler ve Mikrobilgisayarlar