arkadaşlar merhaba C ile kod yazınca ilk önce makina diline çevriliyor. bu makina dilini herhangi bir dosyada tutuyor mu? Ben bir program yazdım diyelim C dilinde. Bunun makina dili kodlarını nasıl görebilirim
Follow along with the video below to see how to install our site as a web app on your home screen.
Not: This feature may not be available in some browsers.
Debuggerlar ile bakabilirsiniz ;
https://x64dbg.com/#start
öncelikle teşekkür ederimancak direkt olarak 0 ve 1 kodlarını göremem mi bunun ile
Hayır , göremezsiniz.
Bahsettiğin dosya verilerin Binary olarak tutulduğu dosyalar sanırım. Bunlar .hex dosyalarıdır. Bunlara ulaşman için farklı editörler kullanabilirsin. Derledikten sonra .hex dosyasını çıkartıyor.MikroC Pro bunu yapıyor.
arkadaşlar merhaba C ile kod yazınca ilk önce makina diline çevriliyor. bu makina dilini herhangi bir dosyada tutuyor mu? Ben bir program yazdım diyelim C dilinde. Bunun makina dili kodlarını nasıl görebilirim
int
main (int argc, char *argv[])
{
return argc;
}
Evet, derleyici tarafından işlenip CPU'nun assembly diline dönüştürülüyor. Daha sonra assembler tarafından makine (nesne) koduna dönüştürüldükten sonra yürütülebilir dosya olarak kaydediliyor. Bu dosya yükleyici (işletim sistemi) tarafından belleğe yüklenip işlemci tarafından yürütülüyor. Dosyayı açarsanız garip karakterler görürsünüz çünkü ekrana sayıların unicode ya da ascii karşılıkları bastırılıyor. Bunun için basit bir program yazabiliriz. Kodu aşağıya bırakırım. Basit bir program üstünde deneyebiliriz:
![]()
Yukarıdaki program, aldığı komut satırı argümanı sayısını döndürüyor. Programı 'cat' ile ve yazdığım program ile açarsak sonucu görebiliriz:Kod:int main (int argc, char *argv[]) { return argc; }
![]()
Buradan makine kodunu gösterme programının kaynak kodlarına ulaşabilirsiniz.
NOT: Çalıştırılabilir dosyalarda sadece makine dili opcode'ları değil, ELF ya da PE header'ları, .text vs kısımlar da bulunabilir.