
Assembly Dili Komut Teknikleri ve Adresleme Yöntemleri
Günümüzde de oldukça yaygın olarak kullanılan 8-bitlik intel 8051 mikroişlemcisine ait assembly dili bundan sonraki örneklerimiz için temel teşkil edecektir.Aslında bir mikrodenetleyici olan 8051, endüstriyel bir standarttır ve 50’ye yakın firma tarafından çeşitli hız ve kapasitelerde üretilmektedir. CISC mimarisine sahip bu işlemcinin Intel ailesinden olması ve çok sayıda komut ve adresleme yöntemine destek vermesi örnek seçilmesinde önemli bir etken olmuştur.
Herhangi bir assembly komutu yazım sırasına göre dört temel alandan oluşur:Etiket(label), işlem kodu (opcode), işlenenler(operands) ve açıklama şeklinde. Aşağıda 8051 assembly dilinden yazım örnekleri gösterilmiştir.
Etiket Alanı: Komut satırının ilk bilgisidir ve simgesel isimlerden oluşur.Program içerisindeki belirli işlevlerin gerçekleştiği bölümlerin başlangıcını göstermek amacı ile kullanılır. Assembly dilinde her komut satırı program belleğinde bir adresi temsil eder.Bir sonraki komutun adres değeri, önceki komutun Byte cinsinden kapladığı alana bağlıdır.Etiketler, program içerisinde ileride dallanılma olasılığı olan satırlara konulur.Etiket ismi olarak, mikroişlemci komut kümesinde tanımlı olan bir komut ismi verilemez.Yine etiket bir harf ile başlamak zorundadır.Etiketlere isim verirken aşağıdaki simgeler kullanılabilir.
İşlem Kodu: Komut kümesi içerisinde mikroişlemcinin belirli bir işi yapmasını sağlayan tanımlanmış kısaltmalardır(mnemonik).Komut alanına etiketten sonra 1 boşluk veya sekme ile girilir.
İşlenen: Bu alan, işlemciye işlenecek veriyi veya verinin nerede olduğunu gösterir.Tek başına bir anlam ifade etmez.Genelde komutun etki edeceği hedef ve kaynak bilgisini içerir.Hedef ve kaynak bilgisi birbirinden virgül(,) ile ayrılır. İşlenende verilen bilginin hangi sayı sistemine ait olduğu onun önüne ya da sonuna konulan özel işaretler belirler. Aşağıdaki tabloda dört farklı sayı sisteminin assembly dilindeki kullanımı görülmektedir.
Açıklama Satırı: Assembly dili, noktalı virgül(;) ile başlayan satırları açıklama satırı olarak kabul eder. Bu satırlar için makine kodu üretmez. Açıklama satırları programın uzunluğunu ve icrasını etkilemezler; yazılan kodun okunurluluğunu arttırır.
Yönergeler(Directives)
Yönergeler dil kapsamı içinde değildir;assembler programının daha kolay çalışmasını sağlamak için kullanılırlar. Assembly dilinde kullanılan birçok yönerge mevcuttur. En yaygın kullanılanlardan bazıları aşağıda açıklanmıştır.
ORG
ORG yönergesi, kod bellek içerisinde programın başlangıç adresini belirtmek için kullanılan adres konumlandırma talimatıdır.Bu yönerge ORG ‘Adres’ şeklinde kullanılır.Programlar genelde belleğin başlangıç adresi olan 0000h’dan başlar.ORG yönergesindeki adres değeri, program sayıcıya(PC) yüklenerek programın yazılacağı adres belirlenir.Bir program içerisinde birden fazla ORG kullanılabilir.
END
END, assembly programının bittiğini gösteren yönergedir.
DB(Define Byte)
Program içerisinde kullanılan sabit verilerin kod bellekte tutulması gerekebilir.DB yönergesi ile kod bellek içerisinde sayı ve sözce (string) tanımlanır. Bu tanımlama aşağıdaki gibi yapılır.
EQU
EQU yönergesi bir sayısal değerin istenilen simge adına atanması işlemini gerçekleştirir.Bu tanımlama program içerisinde bir ifadenin ya da değerin çok fazla tekrar edildiğinde programın anlaşılırlığını arttırmak için kullanılır. EQU(Equal) yönergesinin kullanımı aşağıdaki şekildedir.
Leave a reply