Lihtsad 8086 assamblee keeleprogrammid koos selgitusega

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Assamblee tasemel programmeerimine on madalale tasemele väga oluline sisseehitatud süsteem disaini kasutatakse riistvara manipuleerimiseks protsessori juhistele juurdepääsemiseks. See on kõige primitiivsem masinataseme keel, mida kasutatakse efektiivse koodi valmistamiseks, mis võtab vähem taktsükleid ja võtab vähem mälu kui kõrgetasemeline programmeerimiskeel . Programmi kirjutamiseks on täielik riistvarale orienteeritud programmeerimiskeel, mida programmeerija peab teadma sisseehitatud riistvarast. Siin pakume montaaži taseme programmeerimise põhitõdesid 8086.

Assamblee taseme programmeerimine 8086

Assamblee taseme programmeerimine 8086



Assamblee taseme programmeerimine 8086

The assamblee programmeerimiskeel on madala taseme keel, mis on välja töötatud mnemotehnika abil. Mikrokontroller või mikroprotsessor saab aru ainult binaarsest keelest nagu 0 või 1, seetõttu teisendab assamblee assamblee keele binaarkeeleks ja salvestab selle ülesannete täitmiseks mällu. Enne programmi kirjutamist peavad manustatud disainerid omama piisavalt teadmisi kontrolleri või protsessori konkreetse riistvara kohta, nii et kõigepealt pidime teadma 8086 protsessori riistvara.


Protsessori riistvara

Protsessori riistvara



8086 Protsessori arhitektuur

8086 on protsessor, mis on esindatud kõigi välisseadmete jaoks, nagu jadasiin ning RAM- ja ROM-, sisend- / väljundseadmed jne. Kõik need on süsteemibusi kasutades protsessoriga väliselt ühendatud. Mikroprotsessoril 8086 on CISC-põhine arhitektuur ja sellel on välisseadmeid nagu 32 sisend / väljund, Järjestikune suhtlus , mälestused ja loendurid / taimerid . Mikroprotsessor nõuab programmi toimingute sooritamiseks, mis nõuavad funktsioonide lugemiseks ja salvestamiseks mälu.

8086 Protsessori arhitektuur

8086 Protsessori arhitektuur

Koostetaseme programmeerimine 8086 põhineb mäluregistritel. Register on registri peamine osa mikroprotsessorid ja kontrollerid mis asuvad mälus, mis võimaldab andmete kogumist ja salvestamist kiiremini. Kui soovime andmetega töötleja või kontrolleri abil manipuleerida korrutamise, liitmise jne abil, ei saa me seda teha otse mällu, kus andmete töötlemiseks ja salvestamiseks on vaja registreeruda. Mikroprotsessor 8086 sisaldab mitmesuguseid registreid, mida saab klassifitseerida vastavalt nende juhistele

Üldotstarbelised registrid : 8086 protsessor on koosnenud 8 üldotstarbelisest registrist ja igal registril on oma nimi, nagu joonisel näidatud, näiteks AX, BX, CX, DX, SI, DI, BP, SP. Need kõik on 16-bitised registrid, kus neli registrit on jagatud kaheks osaks, näiteks AX, BX, CX ja DX, mida kasutatakse peamiselt numbrite hoidmiseks.

Eriotstarbelised registrid : 8086 protsessor on koosnenud 2 erifunktsioonide registrist, näiteks IP ja lipuregistrid. IP-register osutab käimasolevale käsule ja töötab alati CS-segmendiregistriga. Lipuregistrite põhiülesanne on protsessori toimingute muutmine pärast mehaaniliste funktsioonide lõpuleviimist ja me ei pääse otse juurde
Segmentide registrid: 8086 protsessor koosneb 4 segmendi registrist nagu CS, DS, ES, SS, mida kasutatakse peamiselt võimalike andmete salvestamiseks segmentide registritesse ja me pääseme juurde mälu plokile segmentide registrite abil.


Lihtsad assamblee keeleprogrammid 8086

Assamblee keele programmeerimisel 8086 on mõned reeglid, näiteks

  • Koostetase programmeerimine 8086 kood tuleb kirjutada suurtähtedega
  • Siltidele peab järgnema koolon, näiteks: silt:
  • Kõik sildid ja sümbolid peavad algama tähega
  • Kõik kommentaarid on kirjutatud väiketähtedega
  • Programmi viimane rida tuleb lõpetada END direktiiviga

8086 protsessoril on andmetele juurdepääsemiseks veel kaks juhist, näiteks WORD PTR - sõna (kaks baiti), BYTE PTR - bait.

Op-kood ja operand

Op-kood ja operand

Op-kood: Ühte käsku nimetatakse op-koodiks, mida protsessor saab käivitada. Siin nimetatakse käsku MOV op-koodina.

Operandid: Üheosalisi andmeid nimetatakse operanditeks, mida saab op-koodiga juhtida. Näide, lahutamistoimingu teostavad operandid, mis lahutatakse operandist.
Süntaks: SUB b, c

8086 mikroprotsessori assamblee keeleprogrammid

Kirjutage programm klaviatuurilt märgi lugemiseks

MOV ah, 1h // klaviatuuri sisendi alamprogramm
INT 21h // tähemärgi sisestus
// märk on salvestatud al
MOV c, al // kopeerib tähemärgi alt c-st

Kirjutage programm märgi lugemiseks ja kuvamiseks

MOV ah, 1h // klaviatuuri sisendi alamprogramm
INT 21h // loe märk al-iks
MOV dl, al // kopeerige märk dl-sse
MOV ah, 2h // märkide väljundi alamprogramm
INT 21h // tähemärgi kuvamine dl-s

Programmi kirjutamine üldotstarbeliste registrite abil

ORG 100h
MOV AL, VAR1 // kontrollige VAR1 väärtust, liigutades selle AL-i.
LEA BX, VAR1 // hankige VX-i aadress BX-is.
MOV BYTE PTR [BX], 44h // modifitseerige VAR1 sisu.
MOV AL, VAR1 // kontrollige VAR1 väärtust, liigutades selle AL-i.
PAREM
VAR1 DB 22h
LÕPP

Kirjutage stringide kuvamise programm raamatukogu funktsioonide abil

lisada emu8086.inc // Makrodeklaratsioon
ORG 100h
PRINDI ‘Tere maailm!’
GOTOKSIA 10, 5
PUTC 65 // 65 - on A-i ASCII-kood
PUTC „B”
RET // operatsioonisüsteemi naasmine.
END // käsk kompilaatori peatamiseks.

Aritmeetika ja loogika juhised

Aritmeetika ja loogikaüksuse 8086 protsessid on jagatud kolme rühma, nagu liitmis-, jagamis- ja juurdekasvuoperatsioonid. Enamik Aritmeetika ja loogika juhised mõjutada protsessori olekuregistrit.

Montaažikeele programmeerimine 8086 mnemotehnika on op-koodi kujul, näiteks MOV, MUL, JMP ja nii edasi, mida kasutatakse toimingute sooritamiseks. Assamblee keele programmeerimine 8086 näidet

Lisamine
ORG0000h
MOV DX, # 07H // teisaldage väärtus 7 registrisse AX //
MOV AX, # 09H // teisaldage väärtus 9 akumulaatorisse AX //
Lisage AX, 00H // lisage CX väärtus R0 väärtusega ja salvestage tulemus AX-i //
LÕPP
Korrutamine
ORG0000h
MOV DX, # 04H // teisaldage väärtus 4 registrisse DX //
MOV AX, # 08H // teisaldage väärtus 8 akumulaatorisse AX //
MUL AX, 06H // Korrutatud tulemus salvestatakse aku AX //
LÕPP
Lahutamine
ORG 0000h
MOV DX, # 02H // teisaldage väärtus 2 DX registreerimiseks //
MOV AX, # 08H // teisaldage väärtus 8 akumulaatorisse AX //
SUBB AX, 09H // Tulemuse väärtus salvestatakse akumulaatorisse A X //
LÕPP
Jaotus
ORG 0000h
MOV DX, # 08H // teisaldage väärtus 3 DX registreerimiseks //
MOV AX, # 19H // teisaldage väärtus 5 aku AX //
DIV AX, 08H // lõplik väärtus salvestatakse aku AX //
LÕPP

Seetõttu on see kõik montaaži taseme programmeerimise 8086, 8086 protsessori arhitektuuri lihtsad näidisprogrammid 8086 protsessoritele, aritmeetika ja loogika juhised. Lisaks võite selle artikliga või elektroonikaprojektidega seotud küsimustega meiega ühendust võtta, kommenteerides allpool kommentaaride jaotist.