Temel Bilgisayarda Assembler programlama

 Temel bilgisayar assembler programlama, düşük seviyeli bir programlama türüdür ve bilgisayarın işlemcisini doğrudan kontrol etmek için kullanılır. Assembler dili, bilgisayarın makine diline çok yakın bir yapıya sahiptir ve genellikle insanların anlayabileceği sembolik komutlarla yazılır. Assembler programları, bir derleyici veya yorumlayıcı tarafından yorumlanmadan önce doğrudan makine koduna çevrilebilir.

Assembler programlamada, her bir komut, bilgisayarın işlem birimine doğrudan bir komut olarak gönderilir. Bu komutlar, işlemcinin belirli işlemleri gerçekleştirmesini sağlar, örneğin veri kopyalama, aritmetik işlemler, bellek adreslerine erişim gibi. Assembler dili, genellikle her işlemci mimarisi için farklı olabilir, çünkü komutlar doğrudan işlemcinin komut setine bağlıdır.

Assembler programlama, diğer yüksek seviyeli dillerden daha düşük seviyeli bir dil olduğu için, genellikle işlemciye doğrudan erişim gerektiren uygulamalar için kullanılır. Bu, donanım kaynaklarını en iyi şekilde kullanmak veya performansı en üst düzeye çıkarmak için gereklidir. Örneğin, gömülü sistemlerde, sürücü yazılımlarında veya performans kritik uygulamalarda assembler programlama sıkça kullanılır.

Assembler dili, makine diline daha yakın olmasına rağmen, işlemci ve bellek yapılarını anlamak ve kontrol etmek için yüksek bir bilgisayar bilgisi seviyesi gerektirir. Ayrıca, yazımı ve hata ayıklaması genellikle yüksek seviyeli dillere göre daha karmaşıktır. Ancak, doğrudan donanım üzerinde çalışmanın getirdiği esneklik ve performans avantajları nedeniyle, bazı durumlarda assembler programlama hala tercih edilen bir yaklaşımdır.


Örnekler ile Temel Bilgisayar Assembler kodlarını açıklayalım:

Örnek 1: İki Sayının Toplamını Bulan Temel Bilgisayar Assembleri

ORG 0  


LDA x

ADD y

STA z

HLT


x, DEC -20

y, DEC 40

z, DEC 0


END

Yukarıdaki assembler kodunun açıklaması:

ORG 0: Bu ifade, programın bellekteki başlangıç adresini belirtir. `0` adresinden başlayacağımızı gösterir.

LDA x: Bu komut, `x` adresindeki değeri yükler (load) ve bir akümülatöre (genellikle A) koyar. `x` burada bir sembolik adres ifadesidir ve `DEC -20` ile eşleşir.

ADD y: Bu komut, akümülatöre (A'ya) y adresindeki değeri ekler. y sembolik bir adres ifadesidir ve `DEC 40` ile eşleşir.

STA z: Bu komut, akümülatördeki (A'daki) sonucu `z` adresine saklar (store). `z` sembolik bir adres ifadesidir ve `DEC 0` ile eşleşir.

HLT: Bu komut, programın sonunu belirtir ve işlemcinin çalışmasını durdurur (halt). Programın buraya kadar işlemesi sona erer.

x, DEC -20: Bu ifade, `x` sembolik adresini ve değerini belirtir. x'in değeri `-20` olarak ayarlanır. `-20` decimal (onluk) bir değerdir.

y, DEC 40: Bu ifade, `y` sembolik adresini ve değerini belirtir. y'nin değeri `40` olarak ayarlanır. `40` decimal (onluk) bir değerdir.

z, DEC 0: Bu ifade, `z` sembolik adresini ve değerini belirtir. z'nin değeri `0` olarak ayarlanır. `0` decimal (onluk) bir değerdir.

END: Bu ifade, programın sonunu belirtir ve derleyiciye programın sona erdiğini bildirir. Bu ifadenin ardından herhangi bir işlem yapılmaz.

  - Bu kod, bir akümülatör kullanarak `-20` ve `40` değerlerini toplar ve sonucu `0` adresine saklar. Sonuç, `z` adresindeki bellekte saklanır.


Örnek 2: İki Sayının Farkını Bulan Temel Bilgisayar Assembleri

ORG 0


LDA x      ; x'i yükle

SUB y      ; y'yi çıkar

STA z      ; Sonucu z'ye sakla

HLT        ; Programı durdur


x, DEC -20 ; x'in değeri -20

y, DEC 40  ; y'nin değeri 40

z, DEC 0   ; z'nin başlangıç değeri 0

END

Bu kod, verilen `x` ve `y` değerlerini çıkarır ve sonucu `z` adresine saklar. Çıkarma işlemi için `SUB` (subtract) komutu kullanılır. `SUB` komutu, akümülatörden (A'dan) çıkarmak istediğiniz değeri alır ve sonucu akümülatöre yazar.


Örnek 3: İki Sayının Bölümünü Bulan Temel Bilgisayar Assembleri


ORG 0

LDA x      ; x'i yükle
DIV y      ; y'ye böl
STA z      ; Sonucu z'ye sakla
HLT        ; Programı durdur

x, DEC -20 ; x'in değeri -20
y, DEC 40  ; y'nin değeri 40
z, DEC 0   ; z'nin başlangıç değeri 0

END


Bu kod, verilen `x` değerini `y` değerine böler ve sonucu `z` adresine saklar. Bölme işlemi için `DIV` (divide) komutu kullanılır. `DIV` komutu, akümülatörde (A'da) bulunan değeri verilen bir sayıya bölerek sonucu akümülatöre yazar.



Örnek 4: İki Sayının Çarpımını Bulan Temel Bilgisayar Assembleri


ORG 0

LDA x      ; x'i yükle
MUL y      ; y ile çarp
STA z      ; Sonucu z'ye sakla
HLT        ; Programı durdur

x, DEC -20 ; x'in değeri -20
y, DEC 40  ; y'nin değeri 40
z, DEC 0   ; z'nin başlangıç değeri 0

END


Bu kod, verilen `x` ve `y` değerlerini çarpar ve sonucu `z` adresine saklar. Çarpma işlemi için `MUL` (multiply) komutu kullanılır. `MUL` komutu, akümülatörde (A'da) bulunan değeri verilen bir sayıyla çarpar ve sonucu akümülatöre yazar.

Yorumlar

Yorum Gönder

Sitedeki popüler yayınlar:

Algoritma Mantığı Nedir? Algoritma Türleri Nelerdir?

C++ For Döngüsü

Kontrol Sistemleri