Jednoduché 8086 montážne jazykové programy s vysvetlením

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





Programovanie na úrovni zostavy je veľmi dôležité pre nízku úroveň vstavaný systém dizajn sa používa na prístup k pokynom procesora na manipuláciu s hardvérom. Jedná sa o najprimitívnejší jazyk na úrovni stroja, ktorý sa používa na výrobu efektívneho kódu, ktorý spotrebuje menší počet cyklov hodín a zaberá menej pamäte v porovnaní s programovací jazyk na vysokej úrovni . Jedná sa o kompletný hardvérovo orientovaný programovací jazyk na napísanie programu, ktorý musí programátor poznať vstavaný hardvér. Tu poskytujeme základy programovania na úrovni zostavy 8086.

Programovanie na úrovni zostavy 8086

Programovanie na úrovni zostavy 8086



Programovanie na úrovni zostavy 8086

The montážny programovací jazyk je jazyk nízkej úrovne, ktorý sa vyvíja pomocou mnemotechniky. Mikrokontrolér alebo mikroprocesor rozumejú iba binárnemu jazyku ako sú 0 alebo 1, preto zostavovateľ prevádza montážny jazyk na binárny jazyk a ukladá mu pamäť na vykonávanie úloh. Pred napísaním programu musia mať integrovaní dizajnéri dostatočné znalosti o konkrétnom hardvéri radiča alebo procesora, preto sme najskôr potrebovali poznať hardvér procesora 8086.


Hardvér procesora

Hardvér procesora



Architektúra procesora 8086

Model 8086 je procesor, ktorý je zastúpený pre všetky periférne zariadenia, ako sú sériová zbernica a RAM a ROM, I / O zariadenia atď., Ktoré sú všetky externe pripojené k CPU pomocou systémovej zbernice. Mikroprocesor 8086 má Architektúra založená na CISC , a má periférie ako 32 I / O, Sériová komunikácia , spomienky a počítadlá / časovače . Mikroprocesor vyžaduje program na vykonávanie operácií, ktoré vyžadujú pamäť na čítanie a ukladanie funkcií.

Architektúra procesora 8086

Architektúra procesora 8086

Programovanie 8086 na úrovni zostavy je založené na pamäťových registroch. Register je hlavnou súčasťou mikroprocesory a radiče ktoré sa nachádzajú v pamäti, ktorá poskytuje rýchlejší spôsob zhromažďovania a ukladania údajov. Ak chceme manipulovať s údajmi do procesora alebo radiča vykonaním násobenia, sčítania atď., Nemôžeme to urobiť priamo v pamäti, kde je potrebné registre na spracovanie a uloženie údajov. Mikroprocesor 8086 obsahuje rôzne druhy registrov, ktoré je možné klasifikovať podľa ich pokynov, ako napr

Registre na všeobecné účely : CPU 8086 má 8 registrov na všeobecné účely a každý register má svoje vlastné meno, ako je znázornené na obrázku, napríklad AX, BX, CX, DX, SI, DI, BP, SP. Jedná sa o 16-bitové registre, kde sú štyri registre rozdelené na dve časti, ako napríklad AX, BX, CX a DX, ktoré sa používajú hlavne na uchovanie čísel.

Registre na špeciálne účely : CPU 8086 pozostával z 2 registrov špeciálnych funkcií, ako sú registre IP a vlajky. Register IP ukazuje na aktuálnu vykonávaciu inštrukciu a vždy pracuje na zhromaždení s registrom segmentu CS. Hlavnou funkciou príznakových registrov je modifikácia operácií CPU po dokončení mechanických funkcií a nemožnosti priameho prístupu
Segmentové registre: CPU 8086 pozostával zo 4-segmentových registrov, ako sú CS, DS, ES, SS, ktoré sa používajú hlavne na možné ukladanie akýchkoľvek údajov do segmentových registrov a pomocou segmentových registrov môžeme pristupovať k bloku pamäte.


Jednoduché jazykové programy pre montáž 8086

Programovanie montážneho jazyka 8086 má niektoré pravidlá, ako napr

  • Úroveň zostavy programovanie 8086 kód musí byť napísaný veľkými písmenami
  • Za štítkami musí nasledovať dvojbodka, napríklad: štítok:
  • Všetky štítky a symboly musia začínať písmenom
  • Všetky komentáre sú písané malými písmenami
  • Posledný riadok programu musí byť ukončený smernicou END

Procesory 8086 majú ďalšie dve inštrukcie na prístup k údajom, napríklad WORD PTR - pre slovo (dva bajty), BYTE PTR - pre bajt.

Operačný kód a operand

Operačný kód a operand

Operačný kód: Jediná inštrukcia sa nazýva operačný kód, ktorý môže vykonať procesor. Tu sa inštrukcia „MOV“ nazýva ako operačný kód.

Operandy: Jednodielne dáta sa nazývajú operandy, ktoré možno prevádzkovať operačným kódom. Napríklad operáciu odčítania vykonávajú operandy, ktoré sú operandom odčítané.
Syntax: SUB b, c

8086 mikroprocesorových montážnych jazykových programov

Napíšte program na čítanie znakov z klávesnice

MOV ah, 1h // podprogram vstupu klávesnice
INT 21 h // zadávanie znakov
// znak je uložený v al
MOV c, al // kopírovanie znaku z alt c

Napíšte program na čítanie a zobrazovanie znakov

MOV ah, 1h // podprogram vstupu klávesnice
INT 21h // načítanie znaku do al
MOV dl, al // skopírovanie znaku do dl
MOV ah, 2h // podprogram výstupu znakov
INT 21h // zobraziť znak v dl

Napíšte program pomocou registrov na všeobecné účely

ORG 100 h
MOV AL, VAR1 // skontroluje hodnotu VAR1 presunutím do AL.
LEA BX, VAR1 // získa adresu VAR1 v BX.
MOV BYTE PTR [BX], 44 h // úprava obsahu VAR1.
MOV AL, VAR1 // skontroluje hodnotu VAR1 presunutím do AL.
SPRÁVNY
VAR1 DB 22 h
KONIEC

Vytvorte program na zobrazenie reťazca pomocou knižničných funkcií

zahrnúť emu8086.inc // Makro vyhlásenie
ORG 100 h
TLAČ „Hello World!“
GOTOXY 10, 5
PUTC 65 // 65 - je kód ASCII pre „A“
PUTC „B“
RET // návrat do operačného systému.
END // smernica na zastavenie kompilátora.

Aritmetické a logické pokyny

8086 procesov aritmetickej a logickej jednotky sa rozdelilo do troch skupín, ako je operácia pridania, rozdelenia a prírastku. Väčšina Aritmetické a logické pokyny ovplyvniť stavový register procesora.

8086 mnemotechnických pomôcok v montážnom jazyku je vo forme operačného kódu, ako sú MOV, MUL, JMP atď., Ktoré sa používajú na vykonávanie operácií. Programovanie montážneho jazyka 8086 príkladov

Dodatok
ORG0000h
MOV DX, # 07H // presunie hodnotu 7 do registra AX //
MOV AX, # 09H // presunie hodnotu 9 na akumulátor AX //
Pridajte AX, 00H // pridajte hodnotu CX s hodnotou R0 a výsledok uložte do AX //
KONIEC
Násobenie
ORG0000h
MOV DX, # 04H // presunie hodnotu 4 do registra DX //
MOV AX, # 08H // presunie hodnotu 8 do akumulátora AX //
MUL AX, 06H // Vynásobený výsledok sa uloží do akumulátora AX //
KONIEC
Odčítanie
ORG 0000h
MOV DX, # 02H // posuňte hodnotu 2 a zaregistrujte DX //
MOV AX, # 08H // presunie hodnotu 8 do akumulátora AX //
SUBB AX, 09H // Výsledná hodnota je uložená v akumulátore A X //
KONIEC
Divízia
ORG 0000h
MOV DX, # 08H // posuňte hodnotu 3 a zaregistrujte DX //
MOV AX, # 19H // presunie hodnotu 5 na akumulátor AX //
DIV AX, 08H // konečná hodnota je uložená v akumulátore AX //
KONIEC

Preto je toto všetko o programovaní na úrovni 8086, 8086 architektúry procesorov jednoduchých príkladov programov pre procesory 8086, aritmetických a logických pokynoch. Ak máte akékoľvek otázky týkajúce sa tohto článku alebo elektronických projektov, môžete nás kontaktovať komentovaním v sekcii komentárov nižšie.