Assembly Öğreniyorum-8

ASSEMBLY DİLİ KURALLARIAssembly Yapısı

Etike alanı 1-6 karakter olmalıdır.
-İlk karakter sayı/rakam olmaz.

Sayıların Temsili             Derleyici Tarafından Anlaşılması

Sayı                                        ——-> Desimal
——————————————————–
$sayı                                     ——–> Hekzadesimal
sayıH                                     ——–> Hekzadesimal
———————————————————
@sayi                                     ——–> Oktal
sayiO                                      ——–> Oktal
sayiQ                                     ——–> Oktal
——————————————————–
%sayi                                    ——–> Binary
sayiB                                     ——–> Binary

# Kendisinden sonra gelenin data olduğunu gösterir. Ve immediate adresleme kullanılır.

Komut Kümesi : 6802 mikroişlemcisinin komut kümesi bir, iki ve ya üç bytelık komutlardan oluşur. Bir komutun uzunluğu komuta ve adresleme çeşidine bağlı olup, ilk byte komutu ve kullanılan adresleme çeşidini belirlemeye yeterlidir. 6802 mikroişlemcisinin 74 komutu bütün geçerli adresleme çeşitleri için onaltılık tabanda operasyonel kodlara sahiptir.

Adresleme Modları :

7 çeşit adresleme modu vardır :

  • Immediate Adresleme
  • Relative Adresleme
  • Inherint Adresleme (Anlaşılır, içerilmiş)
  • Indexed Adresleme
  • Akümülatör Adresleme
  • Extended Adresleme
  • Direct Adresleme

1. Immediate (Anında) Adresleme : Bu yöntemle işlenecek olan bilgi, komutun 2inci byte’nda yer alır. Anında adreslemeyi assembly dili yazılımında belirlemek için verinin önüne # işareti konur.

Lda           A       #$  F1
——-   ———————  —–        ———–
Etiket   Komut Alanı          Veri        Açıklama
Alanı                                         Alanı     Alanı

“A” akümülatörünü F1 verisi ile yükler. A’nin içinde F1 yer alır.

2. Indisli Adresleme : Indis kayıtçısı kullanarak adreslemenin yapılmasından dolayı bu yönteme indisli adresleme yöntemi denmiştir. Komuttan sonra gelen sayı indis kayıtçısındaki sayıya eklenerek, gerçek data adresi belirlenir. Belirlenen bu adresten data okunur veya yazılır. İndisli adresleme yöntemini belirtmek için komut ve datadan sonra ‘x’ yazılır.

Lda           A       $    00,x
——-   ———————  —–        ———–
Etiket   Komut Alanı          Veri        Açıklama
Alanı                                         Alanı     Alanı

“A” akümülatörünü, index registerdaki değere “00” ekleyerek bulunduğu adresin içindeki data ile yükle.

3. Doğrudan Adresleme : Doğrudan adresleme yönteminde komutun operasyonel kodundan sonra işlenecek olan verinin bulunduğu adres yazılır. Bilindiği üzere 16 bitlik adresler 0000…..FFFF arasındadır. Doğrudan adreslemede adres 8 bit kullanılarak, 8 bitlik adreslere ulaşılırken fazladan yer kaplamamak için 0000….00FF arasındaki adresler, 00…FF şeklinde kullanılır. Yani doğrudan adreslemede komuttan sonra gelen adres değeri 1 byte’dır.

Lda           A       $    F1
——-   ———————  —–        ———–
Etiket   Komut Alanı          Veri        Açıklama
Alanı                                         Alanı     Alanı

“A” akümülatörünü F1 adresinin içindeki veri ile yükle.
*Doğrudan adreslemede bir belirteç yoktur.

4. Genişletilmiş Adresleme : Genişletilmiş adreslemede veri alanı 16 bittir. Adresleme komutları 3 byte’dan oluşur.

Lda           A       $    8520
——-   ———————  ——-     ———–
Etiket   Komut Alanı          Veri        Açıklama
Alanı                                         Alanı     Alanı

5. Anlaşılır Adresleme : İşlenecek olan ver komutun kendisi ile birlikte verilir. Böylece işlenecek olan bilgi herhangi bir bellek bölgesinde aranmaz. Bu şekilde 6802 mikroişlemcisinde 25 komut vardır.

Örnek   : ABA
CLC

6. Relatif Adresleme : Sadece dallanma komutlarında kullanılan bu adresleme türünde, ulaşılması gereken adres program sayıcısının o andaki içeriğine bağlı olarak bulunur. Dallanma komutları 2 Byte’dan oluşur. Birinci byte işlem byte’tıdır. İkinci byte ise öteleme byte olup, program sayacına eklenir.

Örnek   : BEQ 08 —> İleriye doğru 8 basamak atlanır.
BEQ F7 —> Geriye doğru 7 adım dallanır.

FF-F7=08

00……….7F            80…………FF
¯¯¯¯¯¯¯¯¯             ¯¯¯¯¯¯¯¯¯¯
+127                          -128
ileriye dallanır.     geriye dallanır.

Dijital Pazarlama Temelleri

Sevgili dostum Emre Gökşin bir süredir “Dijital Pazarlama Temelleri” üzerine bir kitap hazırlığı içerisindeydi. Kısa süre içinde raflarda yer edinen kitabı için de ufak bir röportaj rica etmişti; seve seve ve tabii ki kabul ettim…

Plaka Değiştirme

Bir süredir sadece dijital pazarlama ile ilgili değil de farklı konular hakkında da buralara birşeyler yazmak istiyordum. Hazır hayatımda konusu gelmişken sizlere plaka değiştirme nasıl yapılır, kısaca anlatmak istedim 🙂 21 Temmuz 2017 tarihi itibari…

5 yorum

    pek bulunmayan bir konu, uğraştığınız belli:) güzel bir kaynak olmuş. sanırım oktal sayı gösteme şeklinde bir sorun var;
    3 değişik şekilde gösteriliyor sayının oktal olduu bildiğim kadrıyla:
    @sayı,
    sayıO,
    sayıQ olarak. “Q” yerine “@” yazılmış 🙂 basit(önemsiz) olsada uyarmak istedim bu güzel makalede eksiklik olsun istemem;) …

    Ben de teşk. ederim dikkate aldığın ve kısa zamanda düzelttiğin için, yakın bir zamanda “www.kemalonur.com” isimli sitem için “alıntı” yapmayı düşünüyorum bu konu hakkında sizden(alıntı için izin vermişsiniz) 🙂 Gösterdiğiniz özenin devamını dilerim…

    Merhaba, ben çocukluk hayalim olan bilgisayarları yeni yeni öğreniyorum. Bilgisayarımı masaüstü arayüzünden kullanmak istemiyor ve yeni bir şeyler üretmek istiyorum. Bu hevesle 6-8 ay kadar önce python 3.2 diline merak saldım. Kendi çapımda birkaç kod da yazdım. Şu anki hevesim/hedefim assembly dilini öğrenmek. Ben saf bir linux kullanıcısıyım (ubuntu10.10 32 bit), asla ve kata Msoft ürünlerini kullanmam. Önereceğiniz kaynak, yöntem tavsiye var mı? vesselam…

    Yazdıklarınız PIC assambly’de geçerli midir?İleri yaşımda puzle çözmek yerine bu tip öğrenme açlığımı bir nebze giderecek şeylerle vakit doldurmayı para pul kazandırmasa da (kazandırsa bile bu yaştan sonra bi işe yaramaz) yeğlerim, önerilen sunulan her doğru yöntem ve bilgi hem size ihtiyacı artırsın,hemde siz keyif ve $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ kazanın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.