assembly programlama’da 3 çeşit adresleme vardır
- immidiate adressing
- direct adressing
- indirect adressing
immidiate adressing:bu adresleme türünde working egisterın içine doğrudan değişken atanabilir veya içeriğinde değişiklik yapılabilir,bu adresleme sadece working reg ile ilgili adres atamalarında kullanılır, çünkü başka bir adrese veri atacaksak mutlaka onu önce working registera ordan başka bir yere aktarmamız gerekir.
movlw 0×20;working registerın içine 20hex verisini atmış olduk
sublw 0×10;istersek bu atılan veride değişiklik de yapabiliriz
direct adressing:bu adresleme program yazarken en sık kullanılan adresleme türüdür,bu adresleme türünde bir veriyi bir adrese yazmak isterken onu önce working reg’e taşırız,ondan da istediğimiz yere.
movf 0×50,w ;50 hex verisini working reg’e atıyorum
movwf 0×20; ;working reg’in içindekini, yani 50hex verisini 20hex adresine atıyorum
böylece veriyi istediğim bir adrese atmış oluyorum.
indirect adressing:dolaylı adresleme diğer adresleme türlerine göre biraz daha karışk ve hata oranı daha fazladır.bu adresleme türünde veri yazmak istediğimiz adresi başka bir registerın içine yazıyoruz,bu exra registera yazdığımız adrese de başka bir register yardımıyla veri yazarız.
bu adresleme türünde yardımcı olarak kullandığımız iki extra register vardır:fsr ve indf registerları.
fsr register:veri aktarmak istediğimiz adresin taşındığı registerdır.
indf register:fsrnin adreslediği yere karşılık geliyor,ram bellekte adresi buluna fiziksel bir register değildir.
indf registerını kullanan bir komut geldiğinde fsr’nin gösterdiği registerın içindeki veriye ulaşmak için kullanılır.
şimdi indirect adresleme yolu ile 0×20 verisini 0×50 adresine atalım:
movlw 0×50 ;w rege 50 adresini attım
movwf fsr ;w regindeki 50 hex adresini fsrnin içine attım
movlw 0×20 ;w regine 20 hex verisini attım
movwf indf ;workingdeki 20 hex verisini indf’nin içine attım,yani fsr’nin tuttuğu 50 hex adresine 20
;hex verisini yazmış oldum
neden indirect adresleme kullanma gereği duyarız???
indirect adresleme türünü daha çok ardıiık adreslerde işlem yapmak için kullanırız,
incf fsr diyerk bir sonraki adrese kolaylıkla geçmiş olruz.
DERYA GÜNDÜZ