Felvételi programok assembly nyelven

Fields kényelmesen elválasztott fülek.

Nevek az adatok, eljárások, utasítások szegmenseket vagy a címkék nem tartalmazhat több mint 255 latin betűk vagy számok, ahol az első karaktert kell írni szükséges. Alapértelmezésben a név értelme az első 32 karakter. Kis- és nagybetűk szerelő változhat vagy nem változik (billentyűk: / ML, / MU és / MX). Címkék gép parancsokat kell végződnie vastagbélben.







A közvetített minden név van társítva attribútumok számát.

Ez a mező tartalmazza a művelet gépi utasítás emlékeztető, igazgató-tivy vagy makrók. A kis- és nagybetűk, a Mnemonic kód szerelő műveletek nem különböznek.

operandus mező használható felvétel operandus amennyiben igénylő.

Ha több operandust általában elválasztva-ötödik.

Az assembly programokban megengedett többféle állandók:

· Decimális - egy számsorozat 0-9;

· Hex - egy sor hexadecimális számjegyek 0-9 és AF vagy a vagy f, megszűnik a H betű vagy h kell, hogy legyen az első tizedes jegyre;

· Oktális - sorszámokat 0-7, amelynek végén betűk Q, q, O vagy O;

· Bináris - sorszámok 0 vagy 1, megszűnik a B betű, vagy b.

Az alábbiakban egy tipikus felépítése egy egyszerű programot assembly nyelven.

QUIT: kilépési kód 0

Irányelv verem, dataseg codeseg és arra szolgálnak, hogy a szegmensek.

Macro startupcode tartalmaz inicializálás kódot, amely betöltése DS és SS szegmens regiszterek.

makró kilépési kód <код возврата> végzi a program befejezése és átadása a környezeti menedzsment. Opcionális paraméter-ny <код возврата> Ez visszatérési értéke, ahol ellenőrizni tudja a Team OS fájlokat.

irányelv vége <метка точки входа> Ez jelzi a végén a szöveg pro-gramm, és azt mondja a szerelő, hogy hol töltse a fordítást. Ezért az irányelv végén jelen kell lennie mind a pro-gramm. az opcionális <метка точки входа> Ez azt jelzi, használati utasítás, amelynek meg kell kezdeni a programot.

<имя> DW <выражение>,<выражение>. és

<имя> DB <выражение>,<выражение>.

meghatározására szolgálhatnak az adatok szavak vagy bájt, ill.

<выражение> Ez lehet állandó, vagy ha az érték nem meghatározott, akkor a kérdőjellel.

tervezés <число> dup (<выражение>,<выражение>. ) Ispol'uet-továbbítja leolvasások ismétlődő sorozatából kifejezések zárójelben <число> időben.

Kezelési programok DOS

Kezelési programok assembly nyelven a DOS áll nem-hány szakaszból áll:

· Broadcast használó programokat TASM szerelő;

· Fuss és programok hibáinak.

Lefordítani a forrás fájlt meg kell adni a parancssorban a következő formában:

TASM [[] [, [] [, []]]] [<ключи>]

Megjegyzés. A fájl neve NULL azt jelzi, hogy az adott fájl nem jön létre.

TASM bemeneti és kimeneti fájlokat használja a következő alapértékeket:

· A forrás file kiterjesztés - ASM;

· Object file: ugyanaz a neve, mint az eredeti fájl kiterjesztését - OBJ;

· Listing fájlnév - NULL, ha meg a / l vagy / LA - a nevét a lista fájl neve megegyezik az eredeti fájl, ha a név megadva, vagy állítsa be a / l és / LA, az alapértelmezett kiterjesztés - LST;

· Határon referencia fájl nevét - NULL, ha meg a gombot / C - a név a kereszthivatkozások fájl neve megegyezik az eredeti fájl, ha a név megadva, vagy meghatározott kulcs / C, az alapértelmezett kiterjesztés - CRF.

Assembly különféle broadcast módok beállítása a gombokkal, a leggyakrabban használt a következők:

· / L és / LA - létrehoz egy listát fájllistázást vagy hosszabb;

· / C - alkotnak egy fájlt a kereszthivatkozások asztal, Lie-lé forrás modul azonosítója programot jelző sorszámok, amelyek megemlítik az azonosító-tor;

· / ZI - elhelyezett tárgy modul teljes információt hibakeresés: az adatok és azonosítók címkék, sorszámok, stb

TASM alapozó / L / ZI

Broadcast PRIMER.ASM létrehozott fájlok PRIMER.LST tőzsdei fájlt, és ha nincs hiba, a tárgy PRIMER.OBJ fájlt. Az objektum fájl tartalmazza a teljes információt a debugger.

Összekapcsolni az objektum fájlt, adjon meg egy parancssort, amely hasonlít a következő:

tlink [[] [, [] [, [<библиотеки>]]]] [<ключи>]

TLINK bemeneti és kimeneti fájlokat használja a következő alapértékeket:

· Object file: kiterjesztés - OBJ;

· Végrehajtható fájl neve megegyezik a neve az objektum fájl kiterjesztését - EXE;

Modul terv fájl neve - NULL, ha beállítja a kulcs / M - modul terv fájl neve megegyezik az objektum nevét fájlt, ha van megadva, vagy meghatározott kulcs / M, az alapértelmezett kiterjesztés - MAP.

A linker különböző módok a műsorszórás, set-MYE nyomógombokkal, a leggyakrabban használt a következők:

· A / V -, hogy egy végrehajtható átfogó tájékoztatás a debugger: adat azonosítók és címkék, sorszámok, stb

tlink alapozó / M / V

Építsd tárgy PRIMER.OBJ fájlt. Execu-nyaemy fájl van neve - PRIMER.EXE, hogy információkat fog tartalmazni a debugger. fájl jön létre a modul neve terv PRIMER.MAP.

A program futtatása elvégzésére lehet tenni beírja a parancsot a program fájl neve (kiterjesztés EXE AUC-kötő opcionális):

Futtatni alatt debugger, futtatni kell a hibakereső nevével a program files:

A hibakereső TD

A teljesség igénye nélkül leírja a teljességet, ad leírást az alapokat értékű függvények és TD debugger képességeit.

Hogyan fut a program keretében egy hibakereső

Alatt futó hibakereső program végzi parancssoros

Mit lehet és mit nem lehet hibakereső TD

· Trace (léptető) - végezhető pro-gram egy operátor, kihagyva (vagy kihagyva) ugyanabban az időben felhívja eljárások és függvények;

· Töréspont - a program végrehajtásához, a programban meghatározott pont;

· Change - Meg lehet változtatni a tartalmát a változó;

· Nyomon követése - lehet kiosztani néhány változót, és a változások nyomon követése az értékek a futás során.







· Nem újrafordítani a programot. Ehhez szükség van egy fordító vagy assembler (pl TASM);

· És ami a legfontosabb, a hibakereső nem helyettesítheti a folyamat obdu-myvaniya. Turbootladchik egy hatékony eszköz, de ennek hiányában a gondolatait, nem kíméli sem idő, sem erőfeszítést.

A modul (modul) jelenít meg szöveget, hogy debug a programot. Mozoghat a szöveget, a program vonal és adatok megtekintését és a kódot.

Ablak CPU (CPU) jelzi az aktuális állapotát a központi feldolgozó egység (CPU). A dobozban öt panel (nak), ahol:

· Memóriakép (jellemzően adatszegmens);

· A tartalma CPU regiszterek;

· Tartalom CPU zászlókat.

Helyi Watch Window menüben (Alt + F10 vagy a Ctrl + F10) a következő elemeket tartalmazza:

· Edit (Szerkesztés) lehetővé teszi, hogy módosítsa a kifejezést a Órák ablakban. Meg lehet változtatni a tény, hogy van, vagy adjon meg egy új értéket;

· Eltávolítása (törlése) eltávolítja a Órák ablakban kijelölt rekord;

· Összes törlése (Delete all) törli a Órák ablak minden rekordot;

· Vizsgálja (Test) megnyitja a négyzetet (Inspector ablak), amely megjeleníti a tartalmát a jelenleg kiemelte az órák ablakban belépést;

· Change (Módosítás) értékét megváltoztatja a kijelölt bejegyzéseket jelenleg a Órák ablak egy értéket, amit válaszként beírni a parancssorba.

Az ablak Dump (Dump) jelenik formájában közvetlen zhimoe tartalmaznak memória területeken. (Ez az ablak megfelelő terület a CPU ablak lerakó.) Lehet megjeleníteni az adatokat formájában karakterek, hex-dtsaterichnyh bájtok, szavak, szavak kettős, vagy bármilyen lebegőpontos formátumban. Ez az ablak is használható pro-direct show formájában néhány adat, akkor nem kell a többi CPU ablakot. Ebben az ablakban a helyi menü olyan parancsokat tartalmaz, amely lehetővé teszi, hogy módosítsa vyvo-séges adatokat, változtatni a kimeneti formátum, valamint a kád manipulált adatokat blokkokat.

Helyi menü Dump ablakban (Alt + F10 vagy a Ctrl + F10) a következő elemeket tartalmazza:

· Display As (Output Mode) - beállítja a lerakó kimeneti mód: bájt, stb

a felhasználó képernyőjén - jelenik meg a programban. Ez a képernyő pontosan ugyanabban a formában, ahogy kellett volna, ha egy állapot Zárt a programot anélkül, hogy a hibakereső (közvetlenül DOS alatt).

Akkor használja ezt a képernyőt, hogy ellenőrizze rét, legyen veszi a program, és ez megfelel annak, amit kellene a képernyőn. Váltani a felhasználó a képernyő Mondd válassza ki az Ablak + felhasználói képernyő (vagy az Alt + F5).

Indítási parancs (bevitel, F9) indítja el a programot futtatni. Ha az alábbi események történnek, a vezérlés a debugger:

· A program befejeződött végrehajtása;

· Az észlelt töréspont megszakítás a keresetet;

· A leállnak a Ctrl + szünet.

Csapat lépés kurzor

Csapat lépés kurzor (Menj a kurzort, az F4) ellátja pro-gramm a sort, ahol a kurzor található (az aktuális ablakot vagy területet modul kód CPU ablakban).

Csapat Trace Into

Trace Into parancs (Trace mélység, F7) végez az egyik vonal a forráskód vagy gépi utasítást. Ha az aktuális sor tartalmaz egy hívást egy eljárás vagy függvény, a hibakereső-tölti meg nyomon követni ezt az eljárást. Azonban, ha a jelenlegi kb Mr. CPU mezőbe, majd futás egy gépi utasítás.

Command átlépni (Step hagyja, F8) végez az egyik vonal a forráskód vagy gépi utasítás, megkerülve Trace összpontosítva a hívott eljárás vagy függvény. Ez rendszerint egy sor forráskódot. Azonban, ha az aktuális ablak egy CPU mezőbe, majd az egyetlen gépi utasítás.

Ha ez a parancs kerül végrehajtásra egy gépi utasítás, Turbootladchik értelmezi néhány utasítást, mint egy, akkor is, ha vezetnek végrehajtásának MULTI-cal utasításokat:

· Hívás - szubrutinhívás;

· Int - interrupt hívás;

· Hurok, LOOPZ, LOOPNZ --menedzsment;

· Rep, repnz vagy repz, majd CMPS utasítást, LOD, movs, SCAS, rövid távra kirendelt megfigyelő.

A csapat Instruction Trace

A csapat Instruction Trace (Trace utasítás, Alt + F7) tölti meg egy utasítás. Ezt fel lehet használni, ha a követni kívánt megszakítás, vagy ha az ablak Modul és szeretné nyomon követni az eljárás vagy függvény, amely található a modul hibakeresési információk nélkül (például könyvtári rutinok).

Csapat program visszaállítása

Csapat Program reszet (program Ctrl + F2) Reboot-zhaet hibamentesített program azt a lemezt.

Példa feladat elvégzésekor

Mivel egy sor tíz szót tartalmazó egész számok. Megkövetelése etsya megtalálják a maximális értéket.

MASS dw 10h, 20h, 30h, 5 óra, 40 óra, 15 óra, 20 óra, 70 óra, 35h, 34h

ÖÈÊËÈ×ÅÑÊÈÅ È ÐÀÇÂÅÒÂËßÞÙÈÅÑß ÏÐÎÃÐÀÌÌÛ

E munka -, hogy dolgozzon készségek fejlesztése egyszerű ciklusú programok assembly nyelven.

Fejleszteni a feltétel kódot használhatja Coma sorok CMP teszt. Ezen túlmenően, a feltételeket a kódok által termelt Arif-meticheskimi és logikai utasításokat.

A szervezet a ciklikus számítás is van-használni a Feltételes átmeneti csoport, de abban az esetben a szervezet egy ciklus a számláló sokkal kényelmesebb használni a parancsokat ciklusba.

Példa feladat elvégzésekor

Mivel egy sor tíz szót tartalmazó egész számok. Megkövetelése etsya megtalálják a maximális értéket.

MASS dw 10h, 20h, 30h, 5 óra, 40 óra, 15 óra, 20 óra, 70 óra, 35h, 34h

Példák a logikai parancsok

Set 3, 0 bit regiszter AL, a többi bit nem módosítja

vagy AL, 00001001b.

Reset 4 és 6 bit a regisztrációhoz AL, a többi bit nem módosítja

AL, 10101111b.

Invert 4 és 2 bit regiszter AL, a többi bit nem módosítja

xor AL, 00010100b.

Ide LAB címkére, ha van egy 4 bites regiszter AL, egyébként továbbra is a program végrehajtása

teszt AL, 00010000b
JNZ LAB
; folytatódik
.
LAB:

Számoljuk ki a pincék közül egy byte - regisztrálja AL

mov CX, 8
xor BX, BX
LL: shl AL, 1
JNC NO
inc BX
NO: loop LL

Példa feladat elvégzésekor

Mivel egy sor 10 bájt. Minden byte nulla magas bit. Meg kell minden byte, amely 1 a 0. bit, terjeszteni páros számú egység a telepítés 7-edik bit bájt, minden byte, amely 0 a 0. bit, hozzáadni páratlan számú egység a telepítés 7-edik bit bájt.

MB db 04h 07h, 11h, 23h, 04h, 38h, 3Fh, 2Ah, 0Dh, 34h

mov CX, 10; CX - számolja az iterációk

mov AL, [BX]; fontolja meg a következő byte tömböt

tesztelni AL, 00000001b; telepítve, ha a bit 0-ra?

JZ BIT0CLR; Nem, bit 0 törlődik

; 0. bit be van állítva

tesztelni AL, 0FFh; páros számú is?

jp OK; Igen, több mit tenni

vagy AL, 80H; páratlan, páros terjeszteni

BIT0CLR :; bit 0 törlődik

tesztelni AL, 0FFh; páros számú is?

JNP OK; Többé nem kell csinálni semmit

vagy AL, 80H; páros, páratlan kiegészítője

mov [BX], AL; Írja változások bájttömböt

QUIT: kilépési kód 0

1. Mivel egy sor 10 bájt. Számoljuk ki a bájtok számát, amelyekben az alaphelyzetbe 6 és 4 bit.

2. Tekintettel tömb 8 byte. Ami azt tömbként 64 bit, hogy számolja meg az egységek számát.

3. Mivel egy sor 8 bájt. Ami azt tömbként 64 bit, hogy számít a hossza a leghosszabb szekvencia egység.

4. mivel egy sor 8 bájt. Ami azt tömbként-nek logikai értékek x0 x1 x2 x3 x4 x5 x6 x7 (igaz - nem nulla bit egy bájt, hamis - minden bit nulla) kiszámításához logikai vor öszvér f = (x7

x6x3x1) V (x6x4x2x1

5. Tekintettel egy sor 5 bájt. Kezelést, mint egy sor 10 tetrád, keresse meg a „kizáró vagy” mind a 10 notebook.

6. Mivel a tömb 10 byte. Számoljuk ki a bájtok számát koto-reset ryh 5 vagy 1 bit.

7. Figyelembe véve, bájt, mint egy sor logikai értékek x7 X6 X5 x4 x3 x2 x1 x0 (igaz - 1, hamis - 0), számítjuk logikai-iai f = (x7

x6x3x1) V (x6x4x2x1

8. Adott egy tömb 10 byte. Számítsuk ki a bájtok számát a Koto-ryh készlet 3 és 7 bit.

1. Mi a különbség a csapatok között tesztelni DST, SRC és és DST, SRC?

2. Hogyan állíthatom vissza az 5. bit változó - Byte BB?

3. Hogyan kell beállítani az 5. bit változó - Byte BB?

4. Hogyan fordítsa az 5. bit változó - Byte BB?

5. Hogyan ellenőrizheti, hogy van az 5. bit változó - Byte BB?

6. Mivel a csekket páratlan vagy páros számú készlet bit egy byte változó-BB?

7. Mik a feltételei a zászlók után módosítottak parancsok végrehajtása és, vagy, xor?

8. Mi a fő különbség a csapatok, logikai és aritmetikai műszakban?

9. Adja meg a maximális számú bitet az operandus betolható csak egy műszakban csapat?

10. A sorpárt
mov CL, 8
"Shift" BL, CL
mely parancsok lehet helyettesített helyett a „shift”, hogy a tartalmát a BL nem változik?

11. A sorpárt
"Balra tolódását" BL, 1
"Jobb irányú eltolódást" BL, 1
mely parancsokat lehet helyettesíteni, hanem a „eltolódás balra” és „jobb shift”, hogy a tartalmát a BL nem változik?




Kapcsolódó cikkek