Jednoduché 8086 jazykové programy pro montáž s vysvětlením

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





Programování na úrovni sestavy je velmi důležité pro nízkou úroveň vestavěný systém design se používá pro přístup k instrukcím procesoru pro manipulaci s hardwarem. Jedná se o nejprimitivnější jazyk na úrovni stroje, který se používá k výrobě efektivního kódu, který spotřebovává menší počet hodinových cyklů a ve srovnání s programovací jazyk na vysoké úrovni . Jedná se o kompletní programovací jazyk orientovaný na hardware, který umožňuje program, který si programátor musí být vědom zabudovaného hardwaru. Zde poskytujeme základy programování na úrovni sestavení 8086.

Programování na úrovni sestavy 8086

Programování na úrovni sestavy 8086



Programování na úrovni sestavy 8086

The montážní programovací jazyk je jazyk nízké úrovně, který je vyvinut pomocí mnemotechniky. Mikrokontrolér nebo mikroprocesor rozumí pouze binárnímu jazyku jako 0 nebo 1, proto assembler převede montážní jazyk na binární jazyk a uloží jej do paměti pro provádění úkolů. Před napsáním programu musí mít vestavění návrháři dostatečné znalosti o konkrétním hardwaru řadiče nebo procesoru, takže jsme nejprve potřebovali znát hardware procesoru 8086.


Hardware procesoru

Hardware procesoru



Architektura procesoru 8086

8086 je procesor, který je zastoupen pro všechna periferní zařízení, jako je sériová sběrnice a RAM a ROM, I / O zařízení atd., Která jsou všechna externě připojena k CPU pomocí systémové sběrnice. Mikroprocesor 8086 má Architektura založená na CISC , a má periferie jako 32 I / O, Sériová komunikace , vzpomínky a čítače / časovače . Mikroprocesor vyžaduje program pro provádění operací, které vyžadují paměť pro čtení a uložení funkcí.

Architektura procesoru 8086

Architektura procesoru 8086

Programování 8086 na úrovni sestavy je založeno na paměťových registrech. Rejstřík je hlavní součástí mikroprocesory a řadiče které se nacházejí v paměti, která poskytuje rychlejší způsob sběru a ukládání dat. Pokud chceme manipulovat s daty do procesoru nebo řadiče prováděním násobení, sčítání atd., Nemůžeme to udělat přímo v paměti, kde je potřeba se zaregistrovat ke zpracování a uložení dat. Mikroprocesor 8086 obsahuje různé druhy registrů, které lze klasifikovat podle jejich pokynů, například

Registry pro všeobecné účely : Procesor 8086 sestával z 8 univerzálních registrů a každý registr má svůj vlastní název, jak je znázorněno na obrázku, například AX, BX, CX, DX, SI, DI, BP, SP. Jedná se o 16bitové registry, kde jsou čtyři registry rozděleny do dvou částí, jako jsou AX, BX, CX a DX, které se používají hlavně k udržení čísel.

Registry zvláštního určení : CPU 8086 obsahuje 2 speciální funkční registry, jako jsou registry IP a vlajky. Registr IP ukazuje na aktuální prováděcí instrukci a vždy pracuje na shromáždění s registrem segmentu CS. Hlavní funkcí příznakových registrů je upravit operace CPU po dokončení mechanických funkcí a my nemůžeme přistupovat přímo
Segmentové registry: CPU 8086 se skládal ze 4segmentových registrů, jako jsou CS, DS, ES, SS, které se používají hlavně pro možné ukládání jakýchkoli dat do segmentových registrů a pomocí segmentových registrů můžeme přistupovat k bloku paměti.


Jednoduché jazykové programy pro montáž 8086

Programovací jazyk 8086 pro montážní jazyk má některá pravidla, například

  • Úroveň sestavy programování 8086 kód musí být napsán velkými písmeny
  • Za štítky musí následovat dvojtečka, například: štítek:
  • Všechny štítky a symboly musí začínat písmenem
  • Všechny komentáře jsou psány malými písmeny
  • Poslední řádek programu musí být ukončen směrnicí END

Procesory 8086 mají k přístupu k datům další dvě pokyny, například WORD PTR - pro slovo (dva bajty), BYTE PTR - pro bajt.

Operační kód a operand

Operační kód a operand

Operační kód: Jedna instrukce se nazývá jako op-kód, který může vykonat CPU. Zde se instrukce „MOV“ nazývá jako operační kód.

Operandy: Jednodílná data se nazývají operandy, které lze obsluhovat operačním kódem. Příklad, operaci odčítání provádějí operandy, které jsou operandem odečteny.
Syntax: SUB b, c

8086 mikroprocesorových montážních jazykových programů

Napište program pro čtení postavy z klávesnice

MOV ah, 1h // podprogram vstupu klávesnice
INT 21h // zadávání znaků
// znak je uložen v al
MOV c, al // kopírování znaků z alt c

Napište program pro čtení a zobrazení znaku

MOV ah, 1h // podprogram vstupu klávesnice
INT 21h // načte znak do al
MOV dl, al // kopírování znaků do dl
MOV ah, 2h // podprogram výstupu znaků
INT 21h // zobrazení znaku v dl

Napište program pomocí registrů pro obecné účely

ORG 100h
MOV AL, VAR1 // zkontrolujte hodnotu VAR1 přesunutím do AL.
LEA BX, VAR1 // získat adresu VAR1 v BX.
MOV BYTE PTR [BX], 44 h // upravit obsah VAR1.
MOV AL, VAR1 // zkontrolujte hodnotu VAR1 přesunutím do AL.
ŽE JO
VAR1 DB 22h
KONEC

Napište program pro zobrazení řetězce pomocí knihovních funkcí

zahrnout emu8086.inc // Makro prohlášení
ORG 100h
TISK ‚Hello World! '
GOTOXY 10, 5
PUTC 65 // 65 - je ASCII kód ​​pro „A“
PUTC „B“
RET // návrat do operačního systému.
END // směrnice k zastavení kompilátoru.

Aritmetické a logické pokyny

Procesy 8086 aritmetické a logické jednotky se rozdělily do tří skupin, jako je operace sčítání, dělení a přírůstek. Většina Aritmetické a logické pokyny ovlivnit stavový registr procesoru.

8086 mnemotechnických pomůcek pro sestavování jazyka má podobu op-kódu, jako jsou MOV, MUL, JMP atd., Které se používají k provádění operací. Programování montážního jazyka 8086 příkladů

Přidání
ORG0000h
MOV DX, # 07H // přesunout hodnotu 7 do registru AX //
MOV AX, # 09H // přesune hodnotu 9 do akumulátoru AX //
Přidejte AX, 00H // přidejte hodnotu CX s hodnotou R0 a výsledek uložte do AX //
KONEC
Násobení
ORG0000h
MOV DX, # 04H // přesune hodnotu 4 do registru DX //
MOV AX, # 08H // přesunout hodnotu 8 do akumulátoru AX //
MUL AX, 06H // Vynásobený výsledek je uložen v akumulátoru AX //
KONEC
Odčítání
ORG 0000h
MOV DX, # 02H // přesuňte hodnotu 2 a zaregistrujte DX //
MOV AX, # 08H // přesunout hodnotu 8 do akumulátoru AX //
SUBB AX, 09H // Výsledná hodnota je uložena v akumulátoru A X //
KONEC
Divize
ORG 0000h
MOV DX, # 08H // přesuňte hodnotu 3 a zaregistrujte DX //
MOV AX, # 19H // přesune hodnotu 5 na akumulátor AX //
DIV AX, 08H // konečná hodnota je uložena v akumulátoru AX //
KONEC

Proto je to všechno o programování na úrovni 8086, 8086 Processor Architecture, jednoduché ukázkové programy pro procesory 8086, aritmetické a logické pokyny. Kromě toho nás můžete v případě, že budete mít jakékoli dotazy týkající se tohoto článku nebo projektů elektroniky, kontaktovat komentářem v sekci komentářů níže.