MSP430 Programlama 2.Ders 16 Bit RISC CPU Muhammed Fatih İNANÇ [email protected] Özellikler Stack pointer, Program counter ve Status saklayıcılarını erişebilme 16 bit adresleme ile belleğe daha az erişim gereksinimi 7 adet adresleme modu Toplam 27 adet komut 16 bit olmasına rağmen byte ya da word türünde veri adresleyebilme Fetch Al-getir mekanizması, belleğe erişim Örnek : MOV AL,0x33 Komut 1 byte program belleği için, 1 byte da veri belleğine erişim için toplam 2 byte yer kaplar Bu komutun 16 lık tabandaki karşılığı = B433 tür B4 = MOV AL (Opcode) 33 = 0x33 Veri Yolunun Genişliği Veri yolu 8, 16 veya 32 bit olabilir. Bu birimin genişliği bir seferde işlenebilecek sayının maksimum büyüklüğünü belirler 8 bit = 255 16 bit = 65,535 32 bit = 4,294,967,295 Örnek ● ● ● 1400 ve 53 sayılarını toplayalım 1400 = 0x0578 (2 byte) 53 = 0x35 (1 byte) 8 bit; 1400 sayısı iki farklı bellek hanesine atılıp iki farklı farklı sayı da 8 bit olarak toplanacak ve sonra düşük değerlikli byte bölgesine 53 sayısı eklenecek... Örnek(Devam) Örnek(Devam) ● ● ● ● 16 bit ; MOV.W #0x0578, R4 ADD.W #0x35, R4 Eğer büyük sayılarla uğraşıyorsak ve 8 bit mikrodenetleyici kullanıyorsak bu bize hız kaybettirir. MSP430 CPU Saklayıcıları ● ● 12 adet working register R0-R3 arası farklı amaçlar için kullanılıyor. Program Counter – R0 ● ● ● 16 Bitlik 64kB adres alanına sahip Mikrodenetleyicinin bellekte hangi komutu işleyeceğinin adresini tutan saklayıcıdır. Bu adresler MSP430G2231 mikrodenetleyicisinde 2 kb lık program hafıza alanını gösterir. Stack Pointer – R1 ● ● ● Stack pointer, mikrodenetleyicinin herhangi bir kesme veya altprograma dallanma anında Program Counter(PC) ın o anki konumunun(adres) kaydedildiği alandır. Altprogram veya kesme sonunda buradaki adrese dallanılarak mikrodenetleyici çalışmasına kaldığı yerden devam eder. Bellekte 0x280 alanından itibaren adreslenir ve LIFO(Son giren ilk çıkar) kuralıyla çalışır. Stack Pointer – R1(Devam) Status Register – R2 ● ● ● ● ● ● ● ● C(Carry) : Elde bayrağı Z(Zero) : Sıfır bayrağı N(Negative) : Negatif bayrağı GIE(General Interrupts Enable) : Genel kesmeleri aktif etme biti Düşük OSC OFF :LFXT1 kristali devre dışı bırakılır Güç SCG0 : DCOCLK devre dışı Modları için Kullanılan SCG1 : SMCLK devre dışı bitler V(Overflow) : Taşma bayrağı Constant Generators CG1-CG2 R2 – R3 ● ● ● Bu birimin asıl amacı aritmetik işlemlerde çok kullanılan bazı sayıları bellek erişim gereksinimi olmadan doğrudan saklayıcı içerisinden almalarını sağlamaktır. Bunun için R2 ve R3 saklayıcıları kullanılır. Bu işlem C derleyicisi içerisinde otomatik olarak yapılmaktadır.(Optimizasyon yüksek seviyede ise) General Purpose Registers R4 – R15 ● ● ● Genel kullanım amaçlı saklayıcılardır. 16 bit Uzunlukları 2 byte olmasına rağmen byte ya da word erişimler kolaylıkla yapılabilir.