Dlaczego program wykonywalny dla określonego procesora nie działa w systemie Linux i Windows?

Problem wykonywalny, taki jak exe, nie działa w systemie Linux (bez wina). Podczas kompilacji kodu źródłowego kompilator tworzy kod obiektowy, który jest specyficzny dla konkretnej architektury procesora. Ale ta sama aplikacja nie działa na innym systemie operacyjnym z tym samym procesorem. Wiem, że kod może zawierać instrukcje specyficzne dla systemu operacyjnego, które uniemożliwią uruchomienie programu. Ale co z prostym programem 2 + 2? Myląca część jest tym, co do diabła, ten kod maszynowy uniemożliwia działanie. Właściwy kod maszynowy dla procesora? Jeśli usuniemy plik wykonywalny, czy możemy zobaczyć ten sam kod maszynowy (jak 2 + 2) dla obu systemów operacyjnych?

Jeszcze jedno pytanie: co z językiem asemblera? CZY Windows i Linux używają innego języka asemblera dla tego samego procesora ?.

questionAnswers(6)

yourAnswerToTheQuestion