Egyszerű 8086-os összeállítási nyelvprogramok magyarázattal

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Az összeszerelési szintű programozás nagyon fontos az alacsony szintű számára beágyazott rendszer A design a processzor utasításainak elérésére szolgál a hardver kezeléséhez. Ez a legprimitívebb gépi nyelv, amelyet hatékony kódok készítésére használnak, amelyek kevesebb óraciklust fogyasztanak és kevesebb memóriát igényelnek, mint a magas szintű programozási nyelv . Komplett hardverorientált programozási nyelv, ha programot írunk, a programozónak tisztában kell lennie a beágyazott hardverrel. Itt a 8086 szerelési szintű programozás alapjait nyújtjuk.

Összeszerelési szintű programozás 8086

Összeszerelési szintű programozás 8086



Összeszerelési szintű programozás 8086

A összeállítás programozási nyelv egy alacsony szintű nyelv, amelyet a mnemónia segítségével fejlesztettek ki. A mikrovezérlő vagy mikroprocesszor csak a bináris nyelvet képes megérteni, például a 0 vagy 1 értékét, ezért az assembler átalakítja az összeállítási nyelvet bináris nyelvvé, és tárolja a memóriát a feladatok elvégzéséhez. A program megírása előtt a beágyazott tervezőknek elegendő ismerettel kell rendelkezniük a vezérlő vagy a processzor bizonyos hardvereiről, ezért először meg kellett ismernünk a 8086 processzor hardverét.


A processzor hardvere

A processzor hardvere



8086 processzor architektúra

A 8086 egy olyan processzor, amely minden perifériás eszközhöz, például soros buszhoz, RAM és ROM, I / O eszközökhöz, és így tovább tartozik, amelyek mind külsőleg csatlakoznak a CPU-hoz egy rendszerbusz használatával. A 8086 mikroprocesszor rendelkezik CISC alapú architektúra , és olyan perifériákkal rendelkezik, mint a 32 I / O, Soros kommunikáció , emlékek és számlálók / időzítők . A mikroprocesszornak programra van szüksége a memóriát igénylő műveletek végrehajtásához a funkciók olvasásához és mentéséhez.

8086 processzor architektúra

8086 processzor architektúra

A 8086 összeszerelési szintű programozás a memória regisztereken alapul. A nyilvántartás a fő része a mikroprocesszorok és vezérlők amelyek az adatgyűjtés és -tárolás gyorsabb módját biztosító memóriában helyezkednek el. Ha manipulálni akarjuk az adatokat egy processzorral vagy vezérlővel szorzás, összeadás stb. Végrehajtásával, akkor ezt nem tehetjük meg közvetlenül a memóriában, ahol regisztrációra van szükség az adatok feldolgozásához és tárolásához. A 8086 mikroprocesszor különféle típusú regisztereket tartalmaz, amelyek az utasításaik szerint osztályozhatók, mint pl

Általános célú nyilvántartások : A 8086 CPU 8 általános célú regiszterből állt, és mindegyik regiszternek megvan a saját neve, amint az az ábrán látható, például AX, BX, CX, DX, SI, DI, BP, SP. Ezek mind 16 bites regiszterek, ahol négy regiszter két részre oszlik, például AX, BX, CX és DX, amelyek elsősorban a számok megőrzésére szolgálnak.

Speciális célú nyilvántartások : A 8086 CPU két speciális funkció regiszterből állt, például IP és flag regiszterekből. Az IP regiszter az aktuális végrehajtó utasításra mutat, és mindig a CS szegmens regiszterrel gyűjt. A zászlóregiszterek fő feladata a CPU-műveletek módosítása a mechanikus funkciók befejezése után, és nem tudunk közvetlenül hozzáférni
Szegmensregiszterek: A 8086 CPU 4 szegmens regiszterből állt, mint például CS, DS, ES, SS, amelyeket főleg arra használnak, hogy bármilyen adatot tárolhassanak a szegmensregiszterekben, és a memóriablokkhoz hozzáférhetünk szegmensregiszterek segítségével.


Egyszerű szerelési nyelvi programok 8086

A 8086 programozási nyelv programozásának vannak olyan szabályai, mint pl

  • Az összeszerelés szintje programozás 8086 kódot nagybetűvel kell írni
  • A címkéket kettőspontnak kell követnie, például: label:
  • Minden címkét és szimbólumot betűvel kell kezdeni
  • Az összes megjegyzés kisbetűvel van begépelve
  • A program utolsó sorát az END irányelvvel kell befejezni

A 8086 processzor két további utasítással rendelkezik az adatok eléréséhez, például a WORD PTR - szó (két bájt), a BYTE PTR - a bájt.

Op-kód és operandus

Op-kód és operandus

Op kód: Egyetlen utasítást hívnak op-kódként, amelyet a CPU végrehajthat. Itt a „MOV” utasítást hívják op-kódként.

Operandusok: Az egy darabból álló adatokat operandusoknak nevezzük, amelyeket az op-kód működtethet. Például kivonási műveletet azok az operandusok hajtanak végre, amelyeket az operandus kivon.
Szintaxis: B, c

8086 mikroprocesszoros összeállítási nyelvi program

Írjon programot egy karakter olvasásához a billentyűzetről

MOV ah, 1h // billentyűzetbeviteli alprogram
INT 21h // karakterbevitel
// karaktert az al tárolja
MOV c, al // karakter másolása alto c-ből

Írjon programot egy karakter olvasására és megjelenítésére

MOV ah, 1h // billentyűzetbeviteli alprogram
INT 21h // karakter olvasása al-ba
MOV dl, al // karakter másolása dl-be
MOV ah, 2h // karakter kimeneti alprogram
INT 21h // karakter megjelenítése dl-ben

Írjon programot általános célú regiszterek használatával

ORG 100h
MOV AL, VAR1 // ellenőrizze a VAR1 értékét az AL-ba való áthelyezéssel.
LEA BX, VAR1 // a VAR1 címének lekérése BX-ben.
MOV BYTE PTR [BX], 44h // módosítsa a VAR1 tartalmát.
MOV AL, VAR1 // ellenőrizze a VAR1 értékét az AL-ba való áthelyezéssel.
JOBB
VAR1 DB 22 óra
VÉGE

Írjon egy programot a karakterlánc megjelenítésére a könyvtárfunkciók használatával

tartalmazza az emu8086.inc // Makró nyilatkozatot
ORG 100h
NYOMTATJA „Hello World!”
GOTOXY 10, 5
PUTC 65 // 65 - az „A” ASCII kódja
„B” PUTC
RET // visszatér az operációs rendszerhez.
END // utasítás a fordító leállításához.

Számtani és logikai utasítások

Az aritmetikai és logikai egység 8086-os folyamata három csoportra oszlik, például összeadási, osztási és növekményes műveletekre. A legtöbb Számtani és logikai utasítások befolyásolja a processzor állapotregiszterét.

A 8086 mnemonika programozási nyelv programozása op-kód formájában van, például MOV, MUL, JMP és így tovább, amelyeket a műveletek végrehajtására használnak. Összeszerelési nyelv programozása 8086 példa

Kiegészítés
ORG0000h
MOV DX, # 07H // helyezze át a 7 értéket az AX regiszterbe //
MOV AX, # 09H // mozgassa a 9 értéket az AX akkumulátorba //
Add AX, 00H // add hozzá a CX értéket R0 értékkel, és az eredményt eltárolja AX // fájlban
VÉGE
Szorzás
ORG0000h
MOV DX, # 04H // helyezze át a 4 értéket a DX regiszterbe //
MOV AX, # 08H // helyezze át a 8 értéket az AX akkumulátorra //
MUL AX, 06H // A szorzott eredményt az AX akkumulátor tárolja //
VÉGE
Kivonás
ORG 0000h
MOV DX, # 02H // mozgassa a 2. értéket a DX regisztrálásához //
MOV AX, # 08H // helyezze át a 8 értéket az AX akkumulátorra //
SUBB AX, 09H // Az eredmény értéke az A X akkumulátorban van tárolva
VÉGE
Osztály
ORG 0000h
MOV DX, # 08H // mozgassa a 3. értéket a DX regisztrálásához //
MOV AX, # 19H // mozgassa az 5 értéket az AX akkumulátorba //
DIV AX, 08H // a végső érték az AX akkumulátorban van tárolva
VÉGE

Ezért ez az összeszerelés 8086-os, 8086-os processzor-architektúra egyszerű példaprogramja a 8086-os processzorok számára, számtani és logikai utasítások. Ezenkívül a cikkel vagy az elektronikai projektekkel kapcsolatos bármilyen kérdéseivel kapcsolatba léphet velünk az alábbi megjegyzések szakaszában kommentálva.