„Gépi kód” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
[nem ellenőrzött változat][nem ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
VsBot (vitalap | szerkesztései)
a Robot: következő hozzáadása: ml:യന്ത്രതല ഭാഷ
SieBot (vitalap | szerkesztései)
a Robot: következő hozzáadása: gl:Código máquina
37. sor: 37. sor:
[[fi:Konekieli]]
[[fi:Konekieli]]
[[fr:Langage machine]]
[[fr:Langage machine]]
[[gl:Código máquina]]
[[he:שפת מכונה]]
[[he:שפת מכונה]]
[[hr:Strojni jezik]]
[[hr:Strojni jezik]]

A lap 2007. október 12., 14:36-kori változata

A gépi kód a számítástechnikában használt műveletek és adatok (általában bináris – kettes számrendszeren alapuló – vagy hexadecimális – tizenhatos számrendszeren alapuló – számokkal ábrázolt) olyan sora, amely a számítógép processzora számára közvetlen utasításként értelmezhető.

A gépi kód az egyetlen "nyelv", amit a számítógép központi parancsvégrehajtó egysége, a processzor megért, ezért minden programozási nyelvet gépi kóddá kell alakítani ahhoz, hogy a program végrehajtható legyen. Ezt az átalakítást végzik a fordítóprogramok. Ezek az utasítások általában csak egy processzortípusra vonatkoznak, és azon belül is generációnként változhatnak (az újabb processzorokban az előzőnél több utasítás szokott lenni). Az egyes processzortípusok utasításkészletei egymással egyáltalán nem kompatibilisek. Ez azt jelenti, hogy egy másik processzorra készített programot (ez alól az operációs rendszerek se kivételek) nem tudnak végrehajtani (pl. Alpha-s Windows-ot nem lehet PC-kre feltenni és fordítva, vagy PC-s Linux-ot nem lehet SPARC-ra feltenni és fordítva stb.).

A gépi kódhoz legközelebb álló programozási nyelv az assembly. (A közel állás itt azt jelenti, hogy az assembly utasításokból álló program és a gépi kódú lefordított program között a legnagyobb a kölcsönösen egyértelmű megfelelés, vagyis az assembly utasítások, programsorok nagy részéhez egy gépi kód csoport tartozik, és ez igaz fordított irányban is.)

Példa gépi kódú programra

Az alábbi program egy gépi kódú programpélda. Az adatokat tizenhatos számrendszerben, byte-onként csoportosítva ábrázolja. (Ez egy "tetszőlegesen választott" ábrázolási forma, mivel jelölhetnénk például bináris számrendszerben vagy tízes számrendszerben is: a program ugyanaz lenne.)

B8 D4 07 00 00 90 48 75 FC C3

A példa assembly eredetije

A fenti gépi kód az alábbi GNU/as assembly forrásprogramból készült (de készülhetett volna természetesen tetszőleges más programnyelven írt programból is; az assembly programozási nyelv mindössze a gépi kódhoz eső „legközelebbi” nyelv, így a legjobban láthatóak a programnyelv utasításai és a gépi kódú végeredmény közötti kapcsolatok):

.globl main
       .type main,@function
main:
       movl    $2004,%eax
loop1:
       nop
       decl    %eax
       jnz     loop1
       ret