6. lépés -, hogy az ilyen nyilvántartások

A regiszterek különleges emléket. Ez a legfontosabb dolog. Minden a varázsa, hogy a fellebbezés a nyilvántartás sokkal gyorsabb, mint a PC-RAM. Ez az oka, regiszterek használják a CPU parancsokat. Onnan, a processzor kényelmesen és gyorsan kap információt. Beszéd o PC processzor típusát 286. És mi csak egy ilyen processzor és méretét figyelembe véve a 16 bites regiszter. Minden regiszter van neve és célja. Jönnek a következő típusú.

általános célú regiszterek AX, BX, CX, DX, BP, SI, DI, SPcegmentnye regisztrálja CS, DS, SS, ESschetchik csapatok IPregistr zászlók Zászlók

Minden regiszter neve hordoz némi értelmet

A akkumulátortelep B bázis keret C counter counter D adata BP adatbázis mutató pointer Base SI forrás index Index forrás DI cél index vevő SP stack pointer pointer index stack CS kódszegmenshez részes parancsok DS adatszegmensben adatszegmenshez SS verem szegmens verem szegmens ES extra szegmens overlay IP utasítás mutató utasítás számláló

Regiszterek AX, BX, CX és DX teszi számunkra, hogy alkalmazni, hogy ne a nyilvántartásból, és a magas és alacsony byte

AX AH, ALBX BH, DLDX DH, DLCX CX, CL

Abban a pillanatban, már használt az AX regiszter lépésben „3. lépés - HelloWord program.” Állítsa be a megszakítás funkció.

mov ah, 21h mov 40hint ah, 04Ch int 21h

Ebben az esetben használjuk csak egy része a nyilvántartásban, hanem a magas byte:

H magas L alacsony Junior Senior

Miért nem használja, azt mondják, a memória? Igen, mert vannak szabályok, hogy hol kell tárolni a hívás megszakítása. Pontosabban mit és milyen legyen a nyilvántartásban. Jellemzően ezek a dokumentációban leírt. Nos, például a legújabb funkció le

Int 21H funkció 4CHAH = 4CH AL = vozvrataVozvrata nincs kód.

Ez leállítja a folyamatot, és továbbítja az operációs rendszer visszatérési kódot.

Ezen a ponton meg kell ismernünk, hogy a legtöbb a műveletek nyilvántartása, és megszakítja kifejezetten a leírásban ott van, ahol meg van írva, hogy mit és hogyan kell regisztrálni.

Szintén az „7. lépés - MOV parancsot.” Találkoztunk többször MOV utasítás. Itt egy szelet:

mov bx, 1 mov cx, 21 mov dx, offset Hellostr mov ah, 40h

MOV parancs jelenti, hogy a helyiségek egyik helyről a másikra:

MOV címzett, a fogyasztó

mov bx, 1; 1 helyezzük bx mov cx, 21; 21, helyezzük cx mov dx, offset Hellostr, tegye az elmozdulás dx mov ah vonal, 40h; ah hozott szám 40h

Vessünk egy lépést kód „3. lépés - HelloWord Program” és a tudás a lépések „6. lépés - Mi a Register” körülbelül 04Ch funkció most már tudjuk, hogy az alacsony szót regiszter AX (AL), akkor vissza a kódot a program. Próbáljuk:

MODELL TINYSTACK 256 DATASEG Hellostr DB 'Hello First Step Site CODESEG kezdet: mov ax, @ adatokat mov ds, ax mov bx, 1 mov cx, 21 mov dx, offset Hellostr mov ah, 40h int 21h mov ah, 04Ch mov al, 1h int 21hend Start

Nincs semmi sem változott a program, hogyan kell futni is elkezdeni. programot visszatérési kód lehet kezelni BAT fájlokat. Írásban run.bat:

@echo off7.exeif errorlevel 1 Goto endecho hiba: endecho végén

Hiba szó nem jelenik meg ahogy meg van írva, ha a visszatérési kód 1, akkor megy a végére. Általában a gyakorlatban elterjedt eddig. Példa bat fájlt a Windows könyvtárban (Windows 98):

választás / c: ynif errorlevel 2 Goto FORMAT_CANCELif errorlevel 1 Goto FORMAT: FORMAT_CANCEL.

Annak jelzésére, adatszegmensben regiszter DS. Azaz, a nyilvántartásban fel kell tüntetni az elején adatok a program vagy DATASEG szegmensben. Veletek vagyunk lépésben „3. lépés - HelloWord program” erre:

mov ax, @ adatokat mov ds, ax

Először is, mi @data - DATASEG ezt az azonosítót lefordítsd alkalmazása helyett a szó fogják szállítani a tényleges elmozdulás a szegmens, amelyben az adatok lakik. Végtére is, építeni a programot, nem tudjuk. Mivel ebben a modellben az adatok memória tárolja a végén a program kódot, akkor az adagolás az egyik csapat változtatni a helyét. És tulajdonképpen ez a szám ismert, csak a szerelvény.

Miért tesszük először a nyilvántartásban AX. Vannak azonban olyan egyszerű szabály - nem lehet közvetlenül módosítani a tartalmát a nyilvántartások CS, DS, SS. Vagyis, mi nem lehet írni:

Meg tudjuk változtatni ezt a nyilvántartást csak a többi nyilvántartáshoz. Tehát, az összes együtt:

mov ax, @ adatok; egy léptetőregiszter AX adatok mov ds, ax; egyenlővé tesszük a DS regisztrálja AX eszik most van egy eltolt.

Ennyi. Adok egy ablak a debugger, amely később elmagyarázom:

6. lépés -, hogy az ilyen nyilvántartások

Nézd, ez a kód a processzor utasítás végrehajtása után a parancs mov ds, ax regisztrálunk DS egyenlő lesz az AX regiszter, és ebben az esetben 1343.

Tehát van egy nyilvántartást DS. ahol nem tudjuk közvetlenül elérni, és csak a többi nyilvántartáshoz. Ez a nyilvántartás jelzi az adatokat.

Kapcsolódó cikkek