-

assembly(pic 16f877a) programlama’da adresleme çeşitleri

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

Category: Assembly

Your email address will not be published. Required fields are marked *

*