Bu iletişim insanlar gibi konuşarak olmasada makine birşekilde bizim istediklerimizi anlayıp uygulamaya koyuyor. Peki nasıl yapıyor bunu ?
Assembly desem !. Hadi birlikte inceleyelim neymiş bu assembly ?...

Assembly programlama dili, kullanılan bilgisayar sisteminin yapısına ve işletim sistemi gibi platformlara sıkı-sıkıya bağımlı bir dildir. Assembly programlama dili düşük seviyeli bir dil olup C, C++, Pascal, C# gibi yüksek seviyeli programlama dillerine göre anlaşılması biraz daha zordur. Assembly dili ile program yazarken kullanılan bilgisayarın donanımsal özelliklerinin bilinmesi gerekir. Yazılan program kullanılan mikroişlemcinin yapısına bağlıdır. Assembly dili ile program yazarken programcı doğrudan bilgisayarın işlemcisi ve hafızası ile uğraşır. Anabellekteki (RAM‟deki ) ve işlemci kaydedicilerindeki değerleri doğrudan değiştirebilme imkanı vardır. Mikroişlemci sadece ikili sayı sisteminde yazılan komut kodlarını, başka bir ifade ile makine dilinden anlar. Assembly dilinde yazılan programları makine diline çevirmek için Assembler adı verilen çevirici(derleyici) programlar kullanılır.

Çoğu derleyici kaynak kodunu doğrudan makine koduna dönüştürdüğünden, yazılım geliştiricileri genellikle derleme dili kullanmadan programlar oluşturur. Bununla birlikte, bazı durumlarda, bir programın ince ayarını yapmak için montaj kodu kullanılabilir. Örneğin, bir programcı, mümkün olduğu kadar verimli çalıştığından emin olmak için assembly dilinde belirli bir işlem yazabilir.

Bir montaj dili, herhangi bir işlemci için mevcut olan en temel programlama dilidir. Assembly dili ile, bir programcı yalnızca doğrudan fiziksel CPU'da uygulanan işlemlerle çalışır.

Assembly dilleri genellikle değişkenler ve fonksiyonlar gibi üst seviye kolaylıklardan yoksundur ve çeşitli işlemci aileleri arasında taşınabilir değildir. Makine dili ile aynı yapıya ve komut dizisine sahipler, ancak bir programcının numaralar yerine isimler kullanmasına izin veriyorlar. Bu dil, hızın gerekli olduğu veya üst seviye dillerde mümkün olmayan bir işlem yapılması gerektiğinde programcılar için hala yararlıdır.

Peki biz assembly kodu nasıl ve hangi ortamda yazabiliriz gibi sorular duyar gibiyim.

Assembly dilinde program yazmak için Windows altında yer alan notepad, wordpad gibi herhangi bir text editör kullanılabilir. Text editör yardımı ile Assembly dilinde program yazılır. Yazılan program TASM veya MASM assembler çevirici programları yardımı ile .obj uzantılı olarak makine diline çevrilir. Bu halde elde edilen program işletim sisteminin anladıgı bir formatta değildir. TLINK bağlayıcı programı kullanılarak .exe veya .com uzantılı hale dönüştürülür. Bu haldeki program işletim sistemi üzerinde ismi yazılarak DOS ortamında çalıştırılabilir

yazılım geliştiricileri 8086 adında emülatör yapmışlar bu ortamda assembly dilini yazıp öğrenmek oldukça kolay ve anlaşılır. 8086 emülatörünü anlattığım makaleyi okuyarak detaylı bilgi sahibi olabilirsiniz.