Bu gerçekten iki soru bir arada ...
İlk olarak, bir mikrodenetleyici ve bir mikroişlemci arasındaki fark nedir?
Mikroişlemci tamamen harici bir bellek veri yolundan okunan bir dizi talimatı takip eden bir CPU'dur. Harici bir çevre yolu (ekran, klavye, fare, sabit sürücü vb.) Harici bir iletişim veri yolu üzerinden kontrol eder. Bir mikroişlemci programladığınızda, programınız aygıtın dışındadır. Bir bilgisayarda, bu bellek başlangıçta işletim sistemini sabit diskten RAM belleğe okuyan ve daha sonra oradan yürütmeye devam eden önyükleme BIOS ROM'udur.
Mikrodenetleyici , dış dünyayla iletişim kurmak için bazı harici bağlantı noktalarına sahip hepsi bir arada CPU + Bellek gibidir. Bağımsızdır ve programını tutmak için harici bellek kullanmaz (gerekirse harici verileri çalışma verilerini okuyabilir ve yazabilir).
İkincisi, bir mikrodenetleyici ve mikroişlemci programlamak aynı mıdır?
Bazı açılardan evet, bazı açılardan hayır.
Montaj dili, CPU'nun doğrudan anlayabileceği bir dizi talimatı tanımlayan geniş bir terimdir. Derleme dilini 'derlediğinizde', gerçekten hiçbir şey derlemez, tüm yaptığı, onu, bazı göreli bellek konumlarındaki komutları ve fişleri temsil eden bir bayt dizisine dönüştürür. Bu hem mikroişlemciler hem de mikrodenetleyiciler için yaygındır.
Ancak, farklı CPU türleri farklı CPU talimatları setini anlar. Örneğin, bir pic 16F877 mikrodenetleyici ile çalışan bir montaj dili programı yazarsanız, 16Fxxx pic mikrodenetleyici ailesi dışında bir mikroişlemciye veya başka bir mikrodenetleyiciye tam anlamıyla saçma olacaktır.
Bu nedenle, montaj tüm mikroişlemciler ve mikrodenetleyicilerde benzer şekilde çalışsa da, yazdığınız talimatların listesi çok farklıdır. Montaj dilinde yazmak için, bir mikrodenetleyici durumunda normalde veri sayfasından alabileceğiniz cihazın mimarisi hakkında derinlemesine bilgi sahibi olmanız gerekir.