Datuve :: Forums :: Arhīvs :: atšķirība linux mašīnkodi / windows mašīnkodi

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 106

Reģistrētie lietotāji online: 0

Viesi online: 106

Datuve.lv video
Top.LV

atšķirība linux mašīnkodi / windows mašīnkodi

Ievietoja: nutshell @ 2008.03.31 15:10  

Vai eksistē atšķirība starp mašīnkodiem ko ģenerējis asemblera kompilators Windows un asemblera kompilators Linux?

Noteikti ka eksistē, jo ja ģenerētie faili būtu vienādi, tad Windows *.exe ietu arī uz kādas no linux distribucijām. NU a kā sanāk... vai mašīnkodi ir piesaistīti konkrētai arhitektūrai (piemēram x86), vai OS?

Nu iedomājies triviālu programmu "dod pieci" kur reģistram EAX piešķirsim 3, bet EBX piešķirsim 2, tad programma tos abus saskaita un tur pat arī darbu beidz. ja šādu programmu kompilē uz linux (gcc dodpieci.s -o dodpieci) un tad uz windows... vai tur vispār var būt kāda atšķirība? Un kāda tad ir nozīme vai tev windows vai linux, ja raksti mašinkodā? Kāpēc mašīnkodi atšķiras?

Komentāri:

#1 drunk_lizard @ 2008.03.31 15:32

masjiinkodi vienaadi, mhhh
interpretaacija dazjaada :D

#2 nutshell @ 2008.03.31 15:41

Paldies par atbildi.
Bet ja mašīnkodi vienādi, kāpēc tad es nevaru palaist calc.exe uz sava Ubuntu?

tb - procesoram liek izpildīt tās pašas darbības, rezultātam tač arī jābūt tādam pašam.

#3 flexxx @ 2008.03.31 15:46

kā jau d_l teica - interpretācija dažāda. Tavs windows exe fails ir interpretēts pavisam savādāk nekā linux palaižamie faili.