Assembly Dili nedir?
Assembly Dili’ne Giriş
Assembly Dili, düşük seviyeli bir programlama dilidir. Programlama dilini makine koduna anlamada yardımcı olur. Bilgisayarlarda, montaj kodunu çalıştırılabilir makine koduna dönüştürmeye yardımcı olan bir montajcı vardır. Assembly dili, talimatı anlamak ve daha sonraki işlemler için makine diline sağlamak için tasarlanmıştır. İşletim sistemi mi yoksa bilgisayar mimarisi mi olduğu, esas olarak sistemin mimarisine bağlıdır.
Assembly Dili esas olarak anımsatıcı işlemci talimatları veya verileri ve diğer ifadeler veya talimatlardan oluşur. C, C++ gibi üst düzey dil kaynak kodlarının derlenmesi yardımı ile üretilir. Assembly Dili, programa ince ayar yapılmasına yardımcı olur.
Assembly Dili Neden Yararlıdır?
Assembly dili, programcıların neredeyse makine diline benzeyen insan tarafından okunabilir kodlar yazmasına yardımcı olur. Makine dili sadece bir dizi sayı olduğu için anlaşılması ve okunması zordur. Assembly dili, bir bilgisayarın gerçekleştirdiği görevlerin tam kontrolünü sağlamaya yardımcı olur.
Örnek:
Windows’ta “Merhaba dünya” yazdırmak için aşağıdaki adımları bulun
- Not defterini açın.
- Aşağıdaki kodu yazın
global _main
extern _printf
section .text
_main:
push message
call _printf
add esp, 4
ret
message:
db 'Hello, World!', 10, 0
- Dosyayı herhangi bir adla kaydedin örnek XYZ.asm; uzantısı “.asm” olmalıdır.
- Yukarıdaki dosyanın NASM (Netwide Assembler) olan bir montajcı yardımıyla derlenmesi gerekiyor.
- nasm –f win32 XYZ.asm komutunu çalıştırın
- Bundan sonra Nasm, makine kodunu içeren ancak XYZ.obj olan yürütülebilir kodu içermeyen bir nesne dosyası oluşturur.
- Windows için yürütülebilir dosya oluşturmak için GCC derleyicisini sağlayan Minimal GNU kullanılır.
- gcc –o XYZ.exe XYZ.obj komutunu çalıştırın
- Yürütülebilir dosyayı şimdi “XYZ” olarak çalıştırın.
- Çıktıyı “Merhaba dünya” olarak gösterecektir.
Neden Assembly Dili öğrenmelisiniz?
Assembly dilinin öğrenilmesi programcılar için hala önemlidir. Sistem ve kaynakları üzerinde tam kontrol sahibi olmaya yardımcı olur. Assembly dilini öğrenerek, programcı kayıtlara erişmek için kodu yazabilir ve işaretçilerin ve değerlerin bellek adresini alabilir. Esas olarak verimliliği ve performansı artıran hız optimizasyonuna yardımcı olur.
Assembly dili öğrenimi, işlemci ve bellek işlevlerinin anlaşılmasına yardımcı olur. Programcı derleyici olması gereken herhangi bir program yazıyorsa, bu programcının işlemciyi tam olarak anlaması gerektiği anlamına gelir. Assembly dili, işlemcilerin ve belleğin çalışmasını anlamada yardımcı olur. Şifreli ve sembolik bir dildir.
İlgili DerslerYazılım Test Eğitimi (9 Kurs, 2 Proje)Selenyum Otomasyon Test Eğitimi (9 Kurs, 4+ Proje, 4 Kısa Sınav)Appium Eğitimi (2 Kurs)JMeter Test Eğitimi (3 Kurs)
Assembly Dili, donanımla doğrudan iletişim kurmanıza yardımcı olur. Bu dil temel olarak bilgisayar mimarisine dayanır ve belirli bir işlemci türünü ve farklı CPU’lar için farklı olanı tanır. Assembly dili, diğer üst düzey dillere kıyasla şeffaflığı ifade eder. Az sayıda işlemi vardır, ancak algoritmaları ve diğer kontrol akışını anlamada yardımcı olur. Kodu daha az karmaşık hale getirir ve hata ayıklamayı da kolaylaştırır.
Özellikleri
Assembly dilinin özellikleri aşağıda belirtilmiştir:
- Sayısal işlem kodundan çok anımsatıcı kullanabilir ve ayrıca koddaki herhangi bir hatanın bilgisini sağlar.
- Bu dil, sembolik işlenenin belirlenmesine yardımcı olur, yani o işlenenin makine adresini belirtmesine gerek yoktur. Bir sembol şeklinde temsil edilebilir.
- Veriler ondalık gösterim kullanılarak bildirilebilir.
Montajcılar
Montajcılar, montaj dilini makine diline çevirmek için kullanılır. İki tür montajcı vardır:
- Tek geçişli birleştirici: Tek geçişli bir montajcı geçişi, kaynak program girişinin birleştiriciye tam olarak taranması veya tek geçişli birleştirici veya tek geçişli çeviri olarak adlandırılan ifade temelinde ifade tarafından eşdeğer temsil ve çeviri olarak adlandırılır. Sistemin etiketini, anımsatıcılarını ve işlenen alanını izole eder. Bir anımsatıcı kod tablosunda arayarak kod talimatlarını doğrular. Etiket alanında bulunan sembolü girer ve metnin mevcut makine kelimesini sembol tablosuna yönlendirir. Bu geçiş hızlı ve etkilidir ve ara kodu oluşturmaya gerek yoktur.
- Çok geçişli montajcı: Bunda , bir montajcı birkaç kez montaj dilinden geçer ve nesne kodunu üretir. Bu son geçişe sentez geçişi denir ve bu birleştirici, her geçişte her geçişi oluşturmak için herhangi bir ara kod biçimi gerektirir. Tek geçişli bir derleyiciden nispeten daha yavaştır, ancak birden fazla kez gerçekleştirilebilen bazı eylemler çoğaltılmış anlamına gelir.
Avantajlar ve dezavantajlar
Bahsedilen bazı avantajlar ve dezavantajlar:
Avantajlar
Avantajları aşağıdadır:
- Karmaşık işlerin daha basit bir şekilde yürütülmesini sağlar.
- Daha az bellek gerektirdiğinden bellek açısından verimlidir.
- Yürütme süresi daha kısa olduğu için daha hızlıdır.
- Esas olarak donanım odaklıdır.
- Sonucu almak için daha az talimat gerektirir.
- Kritik işler için kullanılır.
- Bellek konumlarını takip etmek gerekli değildir.
- Düşük seviyeli gömülü bir sistemdir.
Dezavantajları
Aşağıda belirtilen dezavantajlar şunlardır:
- Aynı kodu yazmak çok zaman ve çaba gerektirir.
- Çok karmaşık ve anlaşılması zor.
- Sözdizimini hatırlamak zordur.
- Farklı bilgisayar mimarileri arasında program taşınabilirliği eksikliği vardır .
- Assembly Dili ile yazılmış uzun programları çalıştırmak için daha fazla bilgisayar boyutuna veya hafızasına ihtiyaç duyar.
Çözüm
Assembly dili, programcılar için bilgisayar mimarisini ve programlarını anlamak için çok önemlidir. Programcılar, uygulama geliştirme ve yazılım için çoğunlukla diğer birçok programlama dilini kullandılar, ancak montaj dili de önemlidir. Assembly dilini uygularlarsa programcıların çok şey başarmalarına yardımcı olur. Derlemeler, sürüm numarası, yerelleştirme ayrıntıları ve diğer ürün ayrıntıları gibi birçok meta veri içerir. Önemli bir parçadır ve dijital olarak imzalandıktan sonra kullanıcıya sunulur.
Bir kişi sistemin nasıl çalıştığını ve işlemciyi de bilmek istiyorsa, amacı çözen montaj dilidir. Programın algoritmasını anlamaktan işlemcinin çalışmasına ve bilgisayarın kayıtlarını kaydetmeye kadar her konuda yardımcı olur. Hangi dilin devam edeceği bireysel seçime bağlıdır.