machine code

Üdvözlöm, Ön a machine code szó jelentését keresi. A DICTIOUS-ban nem csak a machine code szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a machine code szót egyes és többes számban mondani. Minden, amit a machine code szóról tudni kell, itt található. A machine code szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. Amachine code és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

Főnév

machine code (tsz. machine codes)

  1. (informatika) gépi kód

A machine code (gépi kód) a számítógépek legalacsonyabb szintű, közvetlenül a CPU által végrehajtható utasításkészlete. Ez a programok lefordított, bináris formája, amely csak 0 és 1 sorozatából áll, és közvetlenül vezérli a hardvert.



🧠 Mi az a gépi kód?

A gépi kód egy olyan utasítássorozat, amit a CPU értelmez és végrehajt. Minden utasítás egy bináris kód, amely tartalmazza:

  • Műveletkódot (opcode) – pl. összeadás, ugrás, betöltés
  • Operandusokat – pl. regiszterek, memóriacímek, konstansok

Minden CPU-architektúrának saját gépi kódja van (pl. x86, ARM, MIPS – ezek nem kompatibilisek egymással).


📦 Példa (x86 gépi kód)

Gépi kód hexadecimális formában:

B8 04 00 00 00

Ez az x86 utasítás:

mov eax, 4

A B8 a MOV utasítás kódja (opcode), az 04 00 00 00 pedig az operandus (4, kis endian formában).



🧩 Hol jön létre gépi kód?

A fordító (compiler) vagy assembler generálja:

C forráskód → assembly → gépi kód (bináris) → CPU futtatja

Példa folyamat:

int main() {
    return 0;
}

Ez a gcc fordítóval .exe vagy .out formában gépi kóddá alakul.



🔍 Formák és megjelenés

  • Hexadecimális nézet: gépi kód gyakran így jelenik meg (pl. disassemblerrel)
    • E8 83 00 00 00CALL 0x83
  • Bináris nézet:
    • 10111000 00000100 00000000 00000000 00000000 (nehezen olvasható)



⚙️ Gépi kód jellemzői

Tulajdonság Jelentés
Nagyon gyors A CPU közvetlenül hajtja végre
Nehezen olvasható Emberi szemnek nem értelmes
Platformfüggő Architektúrához kötött (pl. ARM ≠ x86)
Nem hordozható Egy másik CPU-n nem fut el



🏗️ Miért nem írunk közvetlenül gépi kódot?

  • Nehezen olvasható, hibásan értelmezhető
  • Hosszú és bonyolult programokhoz gyakorlatilag lehetetlen manuálisan kezelni
  • Ezért írunk forráskódot magasabb nyelven (C, C++, Python), amit gépi kóddá fordítanak



🛠️ Disassembler/Debugger példák

  • objdump, gdb, IDA Pro, Radare2, x64dbg
  • Ezek gépi kódot visszaalakítanak assembly nyelvre, amit könnyebb értelmezni



🧪 Érdekesség – saját gépi kód beírása

Unix/Linux alatt például egy futtatható bináris létrehozható kézzel:

echo -ne "\xB8\x01\x00\x00\x00\xCD\x80" > mybinary
chmod +x mybinary
./mybinary

Ez egy exit(1) utasítást tartalmazó gépi kód Linux x86-on.



📚 Összefoglalás

Fogalom Jelentés
Gépi kód Bináris utasítások, amiket a CPU ért
OPCODE Műveletkód (pl. MOV, ADD, JMP)
Operandus Regiszter, memória, szám
Disassembler Gépi kód → assembly visszafejtés
Compiler Forráskód → gépi kód fordító
Platformfüggő Egy gépi kód csak adott CPU-n értelmes