Bevezetés az assembly nyelven, szerelő, cikkek, programozás - programozás C, Delphi, C #

Mi assembly

Assembly - alacsony szintű programozási nyelv. Mindegyik processzor saját szerelő. Programozás assembly, hogy közvetlenül a számítógép hardverével. A forráskód assembly nyelven áll utasítások (memorizálás), hogy miután a válogatás alakítjuk kódok parancs processzor.

Fejlesztési programok assembly nyelven - egy nagyon nehéz dolog. Cserébe az időt kaptunk egy hatékony programot. Programok írt assembly nyelven, fontos minden órajel ciklusban. Szerelő adsz konkrét parancsokat a processzor, és nincs felesleges szemetet. És ezt úgy érjük el a nagy sebesség a program.

Ahhoz, hogy helyesen használja a szerelő ismernie kell a programozási modell a mikroprocesszoros rendszer. A szempontból a programozó mikroprocesszoros rendszer áll:

  1. mikroprocesszor
  2. emlékezet
  3. I / O eszközök.

A programozási modell jól az irodalomban leírt [1].

assembly szintaxis

Összesen sornyi kódot assembly nyelven méret

Field címkéket. A címke állhat karakterek és aláhúzás karaktereket. Címkék használják a műveletek a feltételes és feltétel nélküli ugrást.

Operator mezőben. Ez a mező tartalmazza mnemonikot parancsokat. Például mnemonic mov

operandus mezőben. Operandusok lehetnek jelen, ha az üzemeltető van jelen (a mező operátor). Operandusok nem lehet, és nem lehet több. Az operandusok lehetnek az adatokat, amelyekre el kell végeznie néhány műveletet (előre hajtogatott, stb.)

First Assembly nyelvű program

Ez a cikk fogja használni assembler i80x86 processzor és használta a következő szoftvereket tartalmazza:

Hogy pontos legyek, a TASM 2.0.

A hagyomány szerint, az első program kimenete a „Hello world!” a képernyőn.

Mint látható, a program van felosztva: az adatok szegmens, egy kód szegmens, és van egy halom szegmensben.

Tekintsük mindent annak érdekében.

Az irányelv meghatározza a .MODEL kis memória modellt. kis modell - egy kód szegmens 1, 1 a adatok szegmens és verem azaz adatok és stack ugyanabban a szegmensben. Vannak más memória modellek, mint például: kicsi, közepes, kompakt. Attól függően, hogy a kiválasztott modell memória szegmensek a program átfedik egymást, vagy esetleg külön szegmenst a memóriában.

Irányelv .stack 100h beállítja a verem mérete. A stack kell menteni bizonyos információkat a későbbi helyreállítása. Különösen a megszakítás verem használni. Ebben az esetben a regiszterben Zászlók Zászlók regisztrációhoz CS és IP regiszterek tárolják a verem. Ezután jön végrehajtásának megszakítása a program, és akkor van egy helyreállítása értékeinek e nyilvántartások.

Egy részletesebb leírás túlmutat egy egyszerű cikket.

.data irányelv meghatározza az elején adatszegmensben a program. Az adatok meghatározott szegmens „változók”, azaz, van egy memória-redundancia a vonatkozó adatokat. Miután beszélt .data vonal
HelloMsg DB "Hello World!", 13,10, "$"

.code irányelv meghatározza az elején a kód szegmens (CS - Kód szegmens) program. Ezután jönnek a programsor utasítást tartalmazó memorizálás.

Megmondom a mov parancsot.

mov <приёмник>, <источник>

mov parancs - előre parancsot. Küld a tartalmát a forrás és a vevő. Szállítmányok register-to-nyilvántartásba, regisztrálja-memória, memória-to-regisztrálni, de az átadás memória-memória, amely nem minden átmegy a CPU regiszterek.

majd postázni az AX regiszter tartalmát egy regiszter DS.

mov ah, 09h
mov dx, offset HelloMsg
int 21h

Itt vagyunk az AH regiszter rekordszámok 09h - funkció 21. megszakítás, ami kiírja a vonal a képernyőn.

Valószínűleg van egy kérdés: Miért írunk 09h funkció számát a nyilvántartásba AH. És miért van az eltolás a sort írt a nyilvántartásban DX?
A válasz egyszerű: az egyes funkciók azonosított egyedi nyilvántartások, amelyek a bemeneti ezt a funkciót. Lásd, amely nyilvántartások szükség speciális funkciókat tudsz HELP'e.

mov ax, 4C00h
int 21h

mov ax, 4C00h - mailt a funkció számát regiszterben AX. 4C00h funkció - kilép a program.

int 21h - elvégezni megszakítás (a tényleges output)

end - a végén a program.

Miután az irányelv végén fordítóprogram figyelmen kívül hagyja mindent, így tud írni, amit akarsz :)

Ha elolvasta a végére, akkor egy hős!

Ajánlott irodalom

Kapcsolódó cikkek