[[oktatas:programozás:assembly|< Assembly]]
====== Gépi kód ======
* **Szerző:** Sallai András
* Copyright (c) 2011, Sallai András
* Szerkesztve: 2011, 2014
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== A gépi kódról =====
A Neumann János szerint az utasításokat a memóriában kell tárolni. Volt amikor csak az adatok voltak a memóriában.
Az utasítások olyan parancsok, amelyet a processzor hajt végre. Az utasításokat memóriában tároljuk, a processzor
a végrehajtás idejére a regisztereibe tölti azokat. Az adatokkal vagy a memóriában számol vagy azokat is
a regiszterbe tölti, ez programtól függ.
Mivel a processzor hajtja végre az utasításokat, beszélhetünk egy processzor utasításkészletéről. Ezek azok az
utasítások, amelyeket a processzor ismer. A gépi programok, ilyen utasítások sorozatából állnak.
Egy gépi kódú utasítás két részből áll:
| műveleti kód | címrész |
A címrész egy-, két, vagy háromcímű.
Az utasítást mindig úgy értelmezzük, hogy hajtsuk végre a műveletei kódot, a megadott címeken.
A regiszterek egyike egy utasítás számláló, amely mindig a következő utasításra mutat.
===== A gépi kódú programozás =====
A következőkben a debug program segítségével ismerkedünk a gépi kódú programozással.
Gépi kódú programozás során két dologgal dolgozunk, a processzor és a memória.
| processzor | memória |
A memória szegmensekre van osztva.
Memória
0-dik szegmens
| 0000 |
| 0000 |
| 0000 |
| 0000 |
1419 szegmens
| 0000 |
| 0000 |
| 0000 |
| 0000 |
Indítsuk el a Debug programot. Minden Windowsban megtalálható,
vagy Linux esetén egy FreeDOS telepítése után használhatjuk.
A Debug az indítás után a várakozási jelnek egy "-" (kötőjelet)
jelenít meg.
-
A Debugban minden utasítás egyetlen karakterből áll.
Az első parancs amit érdemes megismerni, az "r".
Az "r" parancs a regiszterek tartalmát mutatja meg,
de ezzel lehet megváltoztatni egy regiszter tartalmát is.
A regiszterek tartalmának megtekintéséhez írjuk be az "r"
parancsot.
-r
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=1419 ES=1419 SS=1419 CS=1419 IP=0100 NV UP EI PL NZ NA PO NC
1419:0100 29D8 SUB AX,BX
-
Az Enter lenyomás után a fentieket látjuk. Konkrétan a processzor
regisztereit, tartalmukkal látjuk.
A regiszter a processzorban egy gyors elérésű tároló.
hexadecimális számokat tudunk elhelyezni benne.