Preprosti 8086 Programi jezikov za zbiranje z razlago

Preizkusite Naš Instrument Za Odpravo Težav





Programiranje na ravni sestave je za nizko raven zelo pomembno vgrajeni sistem design se uporablja za dostop do navodil procesorja za manipulacijo s strojno opremo. To je najbolj primitiven jezik na ravni stroja, ki se uporablja za izdelavo učinkovite kode, ki porabi manj urnih ciklov in zavzame manj pomnilnika v primerjavi z programski jezik na visoki ravni . Za pisanje programa je popoln strojno usmerjen programski jezik, ki ga mora programer poznati vdelano strojno opremo. Tu ponujamo osnove programiranja na ravni montaže 8086.

Programiranje na ravni sestavljanja 8086

Programiranje na ravni sestavljanja 8086



Programiranje na ravni sestavljanja 8086

The montažni programski jezik je jezik na nizki ravni, ki se razvije z uporabo mnemotehnike. Mikrokrmilnik ali mikroprocesor lahko razume le binarni jezik, kot je 0 ali 1, zato zbiralec pretvori montažni jezik v binarni jezik in mu shrani pomnilnik za izvajanje nalog. Pred pisanjem programa morajo vdelani oblikovalci imeti dovolj znanja o določeni strojni opremi krmilnika ali procesorja, zato smo najprej morali poznati strojno opremo procesorja 8086.


Strojna oprema procesorja

Strojna oprema procesorja



8086 Arhitektura procesorja

8086 je procesor, ki je zastopan za vse zunanje naprave, kot je serijsko vodilo, ter RAM in ROM, vhodno / izhodne naprave itd., Ki so z zunanjim sistemskim vodilom povezane na CPU. Mikroprocesor 8086 ima Arhitektura, ki temelji na CISC , in ima zunanje naprave, kot je 32 V / I, Zaporedna komunikacija , spomini in števci / časovniki . Mikroprocesor zahteva program za izvajanje operacij, ki zahtevajo pomnilnik za branje in shranjevanje funkcij.

8086 Arhitektura procesorja

8086 Arhitektura procesorja

Programiranje nivoja 8086 temelji na spominskih registrih. Register je glavni del mikroprocesorji in krmilniki ki se nahajajo v pomnilniku, kar omogoča hitrejši način zbiranja in shranjevanja podatkov. Če želimo podatke obdelati s procesorjem ali krmilnikom z množenjem, seštevanjem itd., Tega ne moremo storiti neposredno v pomnilniku, kjer so potrebni registri za obdelavo in shranjevanje podatkov. Mikroprocesor 8086 vsebuje različne vrste registrov, ki jih je mogoče razvrstiti v skladu z njihovimi navodili, kot so

Registri za splošne namene : CPE 8086 je sestavljen iz 8 splošnih registrov in vsak register ima svoje ime, kot je prikazano na sliki, kot so AX, BX, CX, DX, SI, DI, BP, SP. Vse to so 16-bitni registri, kjer so štirje registri razdeljeni na dva dela, kot so AX, BX, CX in DX, ki se v glavnem uporablja za ohranjanje številk.

Registri za posebne namene : CPU 8086 je bil sestavljen iz 2-ih funkcijskih registrov, kot so IP in zastavni registri. Register IP kaže na trenutno navodilo za izvajanje in vedno deluje tako, da se zbere z registrom segmentov CS. Glavna naloga registrov zastav je spreminjanje CPU operacij po končanih mehanskih funkcijah in neposrednega dostopa do njih
Segmentni registri: CPU 8086 je bil sestavljen iz 4-segmentnih registrov, kot so CS, DS, ES, SS, ki se v glavnem uporablja za shranjevanje kakršnih koli podatkov v segmentnih registrih, do bloka pomnilnika pa lahko dostopamo z uporabo segmentnih registrov.


Prosti jezikovni programi za sestavljanje 8086

Programiranje zbirnega jezika 8086 ima nekaj pravil, kot so

  • Stopnja sestavljanja programiranje 8086 koda mora biti napisana z velikimi črkami
  • Oznakam mora slediti dvopičje, na primer: label:
  • Vse nalepke in simboli se morajo začeti s črko
  • Vsi komentarji so vneseni z malimi črkami
  • Zadnja vrstica programa se mora končati z direktivo END

Procesorji 8086 imajo še dva navodila za dostop do podatkov, na primer WORD PTR - za besedo (dva bajta), BYTE PTR - za bajt.

Op-koda in operand

Op-koda in operand

Op koda: Posamezno navodilo se imenuje kot op-koda, ki jo lahko izvrši CPU. Tu je navodilo 'MOV' poklicano kot op-koda.

Operandi: Posamezni podatki se imenujejo operandi, ki jih lahko upravlja op-koda. Na primer, operacijo odštevanja izvajajo operandi, ki jih operand odšteje.
Sintaksa: SUB b, c

Programi 8086 mikroprocesorski montažni jezik

Napišite tipko za branje znaka s tipkovnice

MOV ah, 1h // podprogram za vnos tipkovnice
INT 21h // vnos znakov
// znak je shranjen v al
MOV c, al // kopiraj znak iz alto c

Napišite program za branje in prikaz znaka

MOV ah, 1h // podprogram za vnos tipkovnice
INT 21h // branje znaka v al
MOV dl, al // kopiraj znak v dl
MOV ah, 2h // podprogram za izhod znakov
INT 21h // prikaz znaka v dl

Napišite program z uporabo registrov za splošne namene

ORG 100h
MOV AL, VAR1 // preverite vrednost VAR1 tako, da jo premaknete v AL.
LEA BX, VAR1 // dobite naslov VAR1 v BX.
MOV BYTE PTR [BX], 44h // spreminjanje vsebine VAR1.
MOV AL, VAR1 // preverite vrednost VAR1 tako, da jo premaknete v AL.
PRAV
VAR1 DB 22h
KONEC

Napišite program za prikaz niza z uporabo knjižničnih funkcij

vključujejo emu8086.inc // Makro izjava
ORG 100h
TISK ‘Hello World!’
GOTOXY 10, 5
PUTC 65 // 65 - je koda ASCII za „A“
PUTC „B“
RET // vrnitev v operacijski sistem.
END // direktiva za zaustavitev prevajalnika.

Aritmetična in logična navodila

Procesi aritmetične in logične enote 8086 so se ločili v tri skupine, kot so dodajanje, deljenje in prirastek. Večina Aritmetična in logična navodila vplivajo na register stanja procesorja.

Мнеmotehnologija 8086 za programiranje zbirnega jezika je v obliki kode op, kot so MOV, MUL, JMP itd., Ki se uporabljajo za izvajanje operacij. Programiranje zbirnega jezika 8086 primeri

Dodatek
ORG0000h
MOV DX, # 07H // premakni vrednost 7 v register AX //
MOV AX, # 09H // premakni vrednost 9 v akumulator AX //
Dodaj AX, 00H // dodaj vrednost CX z vrednostjo R0 in rezultat shrani v AX //
KONEC
Množenje
ORG0000h
MOV DX, # 04H // premakni vrednost 4 v register DX //
MOV AX, # 08H // premakni vrednost 8 v akumulator AX //
MUL AX, 06H // Pomnoženi rezultat se shrani v akumulator AX //
KONEC
Odštevanje
ORG 0000h
MOV DX, # 02H // premakni vrednost 2, da registrira DX //
MOV AX, # 08H // premakni vrednost 8 v akumulator AX //
SUBB AX, 09H // Vrednost rezultata je shranjena v akumulatorju A X //
KONEC
Divizija
ORG 0000h
MOV DX, # 08H // premakni vrednost 3, da registrira DX //
MOV AX, # 19H // premakni vrednost 5 v akumulator AX //
DIV AX, 08H // končna vrednost je shranjena v akumulatorju AX //
KONEC

To je vse o skupnem programiranju na ravni skupščine 8086, arhitektura procesorjev 8086, preprosti primeri programov za procesorje 8086, aritmetična in logična navodila.