Bilgisayar Sistemlerinin Elemanları: Boolean kapılardan yüksek seviyedeki uygulamalara kadar (bu sırayla) bir bilgisayarın inşasını kapsayan projeleri içeren İlkelerden Modern Bir Bilgisayar Oluşturma kitabını okuyorum . Üzerinde çalışmakta olduğum şu anki proje, Hack montaj kodundan Hack makine koduna çevirmek için kendi seçimim olan yüksek seviyeli bir dili kullanarak bir assembler yazıyor (Hack, önceki bölümlerde oluşturulan donanım platformunun adıdır). Her ne kadar donanımın hepsi bir simülatöre yerleştirilmiş olsa da, her aşamada gerçek süreçte sadece benim için mevcut olan araçları kullanarak gerçekten inşa ettiğimi iddia etmeye çalıştım.
Bu, beni düşündürdü. Benim montajcı yazmak için yüksek seviyeli bir dil kullanmak kesinlikle uygun, ancak ilk defa yazılan (yani tarihte) ilk montajcı için makine kodunda yazılması gerekmiyor, çünkü o zamanlar hepsi bu kadardı mı?
İlişkili bir soru ... peki ya bugün? Yepyeni bir işlemci mimarisi, yepyeni bir talimat seti ve yepyeni bir montaj sözdizimi ile ortaya çıkarsa, montajcı nasıl kurulur? Assembler programı için ikili dosyalar üretmek için hala mevcut bir üst seviye dil kullanabileceğinizi farz ediyorum, çünkü yeni platformunuz için hem assembly hem de makine dillerinin sözdizimini biliyorsanız, o zaman assembler yazma görevi gerçekten sadece metin analizi görevi ve kendiliğinden o platformla ilişkili değil (yani o platformun makine dilinde yazılması gerekiyor) ... bu yüzden 2012'de Hack assembler'ı yazarken "hile yapmam" ve bazı önceden var olanları kullanmamın nedeni Bana yardımcı olmak için üst düzey bir dil.