DİREK ADRESLEME (DIRECT ADRESSING)


Yukarıda açıklanan Doğal ve Hemen adresleme yöntemi uygulamaları sınırlı kalmakta-
dır.Direk adresleme yöntemi ise, gerek genel amaçlı uygulanabilir olması, gerekse de programlama kolaylığı bakımından yaygın olarak veya buraya veriyi depolayarak kullanılan bir yöntemdir.
     Direk adresleme yönteminde, belleğin herhangi bir bölgesindeki veri’ ye doğrudan ulaşmak veya bunun tersini yapmak mümkün olabilmektedir.
     Bu yöntemde, programcı programı hazırlarken, yalnızca ST (Store) veya LD (Load) komutuyla birlikte işlenecek verinin adresini vermektedir. Bilgisayar bu adresteki veri’ yi alarak program uyarınca gereken işlemleri yürütmektedir.

Örneğin:

     8 bit’ lik bir mikroişlemci olan I 8080 mikroişlemcisini örnek alalım.
Mikroişlemci ve bellek 8 bit’ e göre organize oluştur.

8080’Lİ bilgisayara şöyle bir program bölümü girilsin: 0002 STA 3A 78H

Bu yazılımın anlamı:

     Akümülatörün (A) içeriğini, 3A78 numaralı bellek gözüne depola.
“ST’ komutu bir direk adresleme komutudur.
‘3A78’deki “H’ harfi ‘3A78’in’ HEXADECIMAL bir sayı olduğunu belirtmek
için konmuştur.
     Programın girilişi sırasında H harfi girilmez.Yukarıdaki yazılım şekli bir yazılım kuralıdır.
Yukarıdaki program satırının bellekteki yerleşimi Tablo 1.3 ‘de verilmiştir.
Şekilde görüldüğü gibi akümülatörde “11001010” gibi bir kayıt var. Bu kayıt
belleğin 3A78 adresine aktarılacak.
     Bu işlemi gerçekleştirecek olan “ST’ komutunun ‘komutun işlevi” bölümünde açıklandığı gibi bir işlem kodu (OP-CODE> bölümü, bir de işlenecek yerinin adresini belirten bölümü vardır.
‘ST’ komutu OP-CODE’ unun 8080’lerdeki Hexodecimal kodu Tablo 1.4 ‘de de gösterilmiş olduğu gibi ‘32”dır.
“32’nin binary karşılığı ise: 0011 0010’dur.

Dolayısıyla:

     0002 adresinde: Akümülatör içeriğini Direk olarak belleğe depo et (Store accumulator direct) anlamındaki “0011 0010’ kayıtlıdır.
Bu adresten sonra gelen 03 ve 04 adreslerinde de:
İşlem görecek olan ve akümülatördeki kayıtlı bulunan “1100 1010’ sayısının gideceği 3A78H B adresini gösteren 8’er bit’lik iki sayı bulunmaktadır.
3A78H, Hexodecimal bir gösterilimdir.Bilindiği gibi Hexodecimal bir sayının Binary karşılığı, her bir rakamının dört basamaklı Binary bir sayı olarak yapılması suretiyle oluşturulmaktadır. Yani,

3A78 = 0011 10100111 1000

şematik gösterilimi.
a-işlemden önceki durum
b-işlemden sonraki durum
Yukarıda açıklanan İşlemin tersi bir durumda olabilirdi.
Yani Bellekten akümülatöre veya bir kaydediciye transfer de yapılabilirdi.

Böyle bir durumda böyle bir yazı yazmak uygun olacaktır: LDA 3A78H

Bunun anlamı, 3A78numaralı (adresli> bellek gözü içeriğini akümülatöre yükle.
Aynı anlatım şu şekildeki parantezli halde de yazılabilmektedir:

LDA- <$ 3A 78> veya LDA (3A78H)

Yazım şekilleri genel kurallarla saptanmış olmasına rağmen mikroişlemciyi üreten, dolayısıyla da programı hazırlayan firmaya göre bazı değişiklikler gösterebilmektedir.
Yukarıdaki yazılımın şematik gösterilimi de Şekil 1.4’ dekine benzer şekilde olacaktır.

Örnekler:

Google Plus ile Paylaş

Kısaca: seymanblog

Panelde şablon düzenle deyip, bu satırı aratarak buraya kısaca hakkımda yazısı yazabilirsiniz.
    BLOGGER YORUMLARI
    FACEBOOK YORUMLARI

0 yorum:

Yorum Gönder