A decimális szám konvertálásának programja; bináris és hexadecimális rendszerek; alapszám

Általános információk az ASSEMBLER-ről

A számítógépes eszközök működését biztosító eszközök két részre oszthatók: hardver és szoftver.

A hardver tartalmaz olyan eszközöket, mint:

A fenti eszközök mindegyike integrált áramkörökre (IC-kre) épül.

Az integrált áramkör egy mikroelektronikai termék végez bizonyos konverziós funkciók, amelyek nagy tömörítési sűrűsége elektromosan összekapcsolt elemek és alkatrészek képviselő egyetlen egységet alkot a követelmények átvételekor és működését.

Példák az IP-re a digitális eszközök áramkörei: regiszterek, számlálók, félösszegek, számlálók, kódolók, dekóderek stb.

A program része tartalmaz egy sor programot és szabályt az összes kapcsolódó dokumentációval, amely lehetővé teszi számítógép használatát különböző problémák megoldásához.

A program a gép utasításainak vagy a programozási nyelvek operátorainak teljes sorrendje, amely meghatározza az egyes feladatok megoldásához szükséges műveletek sorrendjét.

Általános információk az összeszerelő nyelvéről

Az összeszerelő szimbolikus nyelve lehetővé teszi, hogy nagyrészt kiküszöbölje a gépi nyelv programozásának hátrányait.

Ennek fő előnye, hogy az assembler nyelvben a program összes eleme szimbolikus formában jelenik meg. Átalakítása szimbolikus nevek parancsok a saját bináris kódok vannak rendelve egy különleges program - összeállító, amely megszabadítja a programozó a fárasztó munka, és megszünteti az elkerülhetetlen hibák ebben az esetben.

A szimbolikus nevek, amelyek bevezetésre kerülnek az assembler nyelvben való programozás során, általában a program szemantikáját tükrözik, és a parancsok rövidítése a fő funkciója. Például: PARAM - paraméter, TABLE - táblázat, MASK - maszk, ADD - addicionálás, SUB - kivonás stb. stb. Az ilyen neveket könnyen megjegyzi a programozó.

A programozáshoz assembler kell kifinomult eszközöket, mint amikor a programozás gépi kódban: szükségünk számítástechnikai rendszerek alapuló mikro - számítógépek, vagy a PC egy sor perifériák (alfanumerikus billentyűzet, karakteres kijelző, a hajlékonylemez-meghajtó és egy nyomtató). valamint a szükséges típusú mikroprocesszorok számára rezidens vagy rendszeren keresztüli programozás. Az Assembler nyelv lehetővé teszi, hogy hatékonyan írjon és debugolja a sokkal összetettebb programokat, mint a gépi nyelv (akár 1 - 4 KB).

Assembly nyelv gép orientált, t. E. Attól függően, hogy a gépi nyelv és a szerkezet a megfelelő mikroprocesszor, mivel minden mikroprocesszor parancs van rendelve egy bizonyos szimbolikus nevet.

Az összeállítási nyelvek jelentősen megnövelik a programozók termelékenységét a gépi nyelvekhez képest, és ugyanakkor megtartják a mikroprocesszor összes szoftverhez hozzáférhetõ hardverforrásának használatát. Ez lehetővé teszi a képzett programozók számára, hogy rövidebb idő alatt futó programokat írjanak, és kevesebb memóriát vegyenek igénybe, mint a magas szintű nyelven létrehozott programok.

Ebben a tekintetben szinte minden program a bemeneti / kimeneti eszközök (illesztőprogramok) vezérléséhez assembly nyelvben íródott, annak ellenére, hogy elegendően sokféle magas szintű nyelv létezik.

Az assembler nyelv segítségével a programozó beállíthatja a következő paramétereket:

a mikroprocesszor számítógépes nyelvének egyes parancsainak mnemonikus (szimbolikus neve);

Az összeszerelőben leírt programsorok szabványos formátuma;

Formátum a karakterkonstansok és az egész típusú típusú állandók meghatározására különböző számrendszerekben;

pszeudo-parancsok, amelyek szabályozzák a program összeszerelésének (fordításának) folyamatát.

A telepítési nyelvben a program soronként soronként van írva, azaz minden egyes parancshoz egy sort hozzárendelnek.

A mikro - számítógépek, épül alapján a legáltalánosabb mikroprocesszorok, lehet, hogy több lehetőség assembly nyelven, de a gyakorlati eloszlása ​​általában egy - az úgynevezett standard assembly nyelvű. A jövőben megfontoljuk a standard összeszerelő nyelveket.

A program összeszerelő nyelvén írt minden sor négy mezőt tartalmaz:

A címke mezőben minden címkét csak egyszer kell megadni, de a hivatkozások ráadásul annyiszor használhatók, ahányszor szükséges. Ellenkező esetben az összeszerelő diagnosztikai üzenetet fog kiadni az ismételten meghatározott címkével kapcsolatban.

A CODE mező tartalmazza a végrehajtható parancs vagy áljel parancs szimbolikus nevét. A legtöbb csapat mnemonikusa olyan angol mondatok rövidítése, amelyek jellemzik fő funkciójukat.

MOV (MOVE) - előre, előre

ADD (ADDITION)

SUB (SUBSTRACT) - Kivonás

LDA (LOAD DIRECT

ACCUMULATOR) - közvetlen letöltés

INR (INSCREMENT akkumulátor

REGISZTRÁLAT) - regisztrációs növekmény

REGISZTRÁLAT) a nyilvántartás csökkentése

A parancsmemonikusok összeszerelő kulcsszavak, és ha nem szerepelnek a megengedhető mnemonikus rendszerekben, akkor az összeszerelő üzenetet küld az érvénytelen parancsról.

Az OPERAND mező általában a parancskód mezőtől függ. Egy vagy több operandust is tartalmazhat, vesszővel elválasztva, vagy nem tartalmazhat operandusokat a belső munkarendszeren működő parancsok számára.

Az operandus olyan kifejezés, amely egy memóniakímélést, konstansokat és operátorokat tartalmaz.

A legegyszerűbb operandusok egy mnemonikus jelölést vagy egy konstansot tartalmaznak.

Mnemonikus megnevezésként a belső munkarészlet-azonosítókat, címkéket és a szoftveres számláló aktuális értékét használhatja.

A konstansokat számos számrendszerben lehet képviselni.

Ebben a cikkben megvizsgáljuk az egyik módot arra, hogy a számot a tizedesből a bináris és a hexadecimális értékre konvertáljuk az Assembler nyelv segítségével. Mielőtt létrehoznánk egy programot, részletesen megvizsgáljuk, hogy milyen lépéseket kell tennünk, azaz írjunk algoritmust a problémánk megoldására. Annak érdekében, hogy a számítógép feldolgozza az adatokat, meg kell adnia ezeket az adatokat. így az első lépés a probléma megoldásában. A munka második lépése az üzenet kimenete a beírt számról. Ezt követően a decimális számot egy bináris rendszerré alakítjuk, és a számunkat binárisan egyenértékűvé tesszük a képernyőn. A következő lépés az, hogy a számot hexadecimális egyenértékre konvertáljuk, és az utolsó lépés egy olyan hurok, amely lehetővé teszi számunkra egy új decimális szám megadását. Most összegyűjtjük az összes elemet:

1. Írja be a számot a billentyűzetből.

2. Az üzenet kimenete a megadott számról.

3. A szám fordítása bináris egyenértékre.

4. Mutassa be a bináris számot a képernyőn.

5. Szám konvertálása hexadecimális rendszerré.

6. Megjeleníti a hexadecimális számot.

7. A ciklus (folytatjuk?) Ha YES majd az 1. tétel, különben a 8. tételt

8. Lépjen ki a programból. Ez a program természetes nyelvű algoritmusa.

az összeszerelő programok fejlődésének szakaszai

1. A probléma feltárása. Magában foglalja a probléma értelmes leírását és az algoritmus fejlesztését.

2. A program szövegének fejlesztése.

4. Összeszerelés vagy összeszerelés. A * kiterjesztéssel rendelkező szövegfájlt konvertálja. ASM objektum A programot tartalmazó program a gép kódjában a kiterjesztéssel *. OBJ. Ezen a ponton egy programlista is létrehozható. Fájl kiterjesztéssel *. LST. amely a programra vonatkozó alapinformációkat tartalmaz, valamint egy kiterjesztéssel ellátott kereszthivatkozási fájlt. CRF. Ebben a szakaszban a program szövegét hibákra hegesztik. A összeszerelés a TASM fordítóprogrammal történik. EXE (ASM. EXE - összeszerelőben, MASM. EXE - makroegységben). TASM [opciók] *. ASM [. ] - parancs a fordítás elvégzésére. Ha vessző van megadva a parancsban, akkor a listázási fájl kerül elhelyezésre. A TASM-ban két lehetőség van: / ZI és / N. Ezek a következők: TASM.

5. Elrendezés. Ebben a szakaszban egy áthelyezhető program jön létre, amely betölthető és bármilyen memóriaterület. A fájl a kiterjesztéssel * tárolódik. EXE vagy * .COM. Ehhez használja a TLINK szolgáltatást. exe (a LINK.EXE makró összeállítóhoz). Vannak lehetőségek: / T és / X.

6. Végrehajtás és hibakeresés (DEBUG).

7. A program gépi kódjának megadása ROM-ban (hiányozhat) Most megnézzük programunk blokkvázlatait, vagyis a megrendelt műveleteket.

Az alábbiakban a programban használt csapat feltételei:

sub - bináris kivonás. A második operandus tartalmát kivonjuk az első operandusból

Mnemonika: sub<операнд 1>,<операнд 2>

Mnemonikus: hívás<имя процедуры>

ret - visszatérés az eljárásba

shr - logikailag jobbra mozog

xor - exkluzív VAGY

Mnemonika: xor<операнд 1>,<операнд 2>

lea - letöltés EA

push - a veremre

Mnemonika: push<операнд>

pop - kivonat a veremről

Mnemonika: pop<операнд>

Mnemonika: mov<приемник>,<источник>

inc - növekedés 1-tel

Mnemonika: inc<операнд>

dec - csökkenés 1-tel

Mnemonikus: dec<операнд>

stosb - továbbítja a regiszter al vagy axe csatlakozását, amelyhez a regiszter di jelzi

hurok - a hurok számlálóval, rövid átmenetekkel (127b) történő létrehozására vonatkozó parancs, a parancs csökkenti a cx számláló értékét. zászlók megváltoztatása nélkül, ha a kapcsolat cx> 0, akkor a megadott címkére ugrik, különben a hurok megszűnik.

.KÓD - megnyitja a kódszegmenst

.DATA - Megnyitja az adatszegmenst

.STACKN - meghatározza a szegmensköteget (a); ebben az esetben a szegmenszáró szegmenseket nem használják; N - a verem (a) bájtban jelenik meg

Megjegyzés: ilyen irányelvek használatakor a ds regiszter a következőképpen kezdõdik: movax, @ data

feltételezzük, hogy ebben az esetben nem használjuk

Kapcsolódó cikkek