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