Enkle 8086 forsamlingssprogprogrammer med forklaring

Prøv Vores Instrument Til At Fjerne Problemer





Programmering på monteringsniveau er meget vigtigt for lavt niveau integreret system design bruges til at få adgang til processorinstruktionerne til at manipulere hardware. Det er et mest primitive maskinniveau sprog bruges til at fremstille effektiv kode, der bruger mindre antal urcyklusser og tager mindre hukommelse sammenlignet med programmeringssprog på højt niveau . Det er et komplet hardwareorienteret programmeringssprog at skrive et program, som programmøren skal være opmærksom på integreret hardware. Her leverer vi det grundlæggende i programmering 8086 på forsamlingsniveau.

Programmering på monteringsniveau 8086

Programmering på monteringsniveau 8086



Programmering på monteringsniveau 8086

Det monteringsprogrammeringssprog er et sprog på lavt niveau, der er udviklet ved hjælp af mnemonics. Mikrocontrolleren eller mikroprocessoren kan kun forstå det binære sprog som 0'er eller 1'er, og derfor konverterer samleren monteringssproget til det binære sprog og gemmer det hukommelsen til at udføre opgaverne. Før de skriver programmet, skal de integrerede designere have tilstrækkelig viden om controllerens eller processorens bestemte hardware, så vi krævede først at kende hardware fra 8086-processoren.


Processorens hardware

Processorens hardware



8086 Processorarkitektur

8086 er en processor, der er repræsenteret for alle perifere enheder såsom seriel bus og RAM og ROM, I / O-enheder og så videre, som alle er eksternt forbundet til CPU ved hjælp af en systembus. 8086 mikroprocessoren har CISC-baseret arkitektur , og den har perifert udstyr som 32 I / O, Seriel kommunikation , minder og tællere / timere . Mikroprocessoren kræver et program til at udføre de operationer, der kræver en hukommelse til at læse og gemme funktionerne.

8086 Processorarkitektur

8086 Processorarkitektur

Samlingsniveau programmering 8086 er baseret på hukommelsesregistrene. Et register er hoveddelen af mikroprocessorer og controllere som er placeret i hukommelsen, der giver en hurtigere måde at indsamle og lagre dataene på. Hvis vi vil manipulere data til en processor eller controller ved at udføre multiplikation, tilføjelse osv., Kan vi ikke gøre det direkte i hukommelsen, hvor behovet registreres for at behandle og lagre dataene. 8086 mikroprocessoren indeholder forskellige slags registre, der kan klassificeres i henhold til deres instruktioner som f.eks

Generelle registre : 8086-CPU'en har bestået 8-generelle registre, og hvert register har sit eget navn som vist i figuren, såsom AX, BX, CX, DX, SI, DI, BP, SP. Disse er alle 16-bit-registre, hvor fire registre er opdelt i to dele som AX, BX, CX og DX, som hovedsageligt bruges til at beholde numrene.

Registre til specielle formål : 8086 CPU'en har bestået af 2 specielle funktionsregistre såsom IP- og flagregistre. IP-registeret peger på den aktuelle udførelsesinstruktion og arbejder altid med at samle med CS-segmentregistret. Flagregistrernes hovedfunktion er at ændre CPU-operationerne, efter at de mekaniske funktioner er afsluttet, og vi ikke kan få direkte adgang
Segmentregistre: 8086 CPU'en har bestået af 4-segmentregistre som CS, DS, ES, SS, som hovedsagelig bruges til at gemme alle data i segmentregistrene, og vi kan få adgang til en hukommelsesblok ved hjælp af segmentregistre.


Enkel samling sprogprogrammer 8086

Samlingens sprogprogrammering 8086 har nogle regler som f.eks

  • Monteringsniveau programmering 8086 koden skal skrives med store bogstaver
  • Etiketterne skal følges af et kolon, for eksempel: label:
  • Alle etiketter og symboler skal begynde med et bogstav
  • Alle kommentarer er skrevet med små bogstaver
  • Den sidste linje i programmet skal afsluttes med END-direktivet

8086-processorer har to andre instruktioner til at få adgang til dataene, såsom WORD PTR - for word (to bytes), BYTE PTR - for byte.

Op-kode og Operand

Op-kode og Operand

Op kode: En enkelt instruktion kaldes som en op-kode, der kan udføres af CPU'en. Her kaldes 'MOV' instruktionen som en op-kode.

Operander: Data i et stykke kaldes operander, der kan betjenes af op-koden. Eksempel, subtraktionsoperation udføres af de operander, der trækkes af operanden.
Syntaks: SUB b, c

8086 sprogprogrammer til mikroprocessorsamling

Skriv et program til at læse et tegn fra tastaturet

MOV ah, 1h // subprogram til tastaturindgang
INT 21h // tegninput
// karakter er gemt i al
MOV c, al // kopier tegn fra alt c

Skriv et program til læsning og visning af et tegn

MOV ah, 1h // subprogram til tastaturindgang
INT 21h // læs karakter i al
MOV dl, al // kopier tegn til dl
MOV ah, 2h // tegn output underprogram
INT 21h // vis tegn i dl

Skriv et program ved hjælp af generelle formålsregistre

ORG 100 timer
MOV AL, VAR1 // kontroller værdien af ​​VAR1 ved at flytte den til AL.
LEA BX, VAR1 // få adresse til VAR1 i BX.
MOV BYTE PTR [BX], 44h // ændre indholdet af VAR1.
MOV AL, VAR1 // kontroller værdien af ​​VAR1 ved at flytte den til AL.
RET
VAR1 DB 22h
ENDE

Skriv et program til visning af strengen ved hjælp af biblioteksfunktioner

inkluderer emu8086.inc // Makroerklæring
ORG 100 timer
PRINT 'Hello World!'
GOTOXY 10, 5
PUTC 65 // 65 - er en ASCII-kode til 'A'
PUTC 'B'
RET // vende tilbage til operativsystemet.
END // direktiv om at stoppe compileren.

Aritmetiske og logiske instruktioner

8086-processerne for aritmetisk og logisk enhed har adskilt sig i tre grupper såsom addition, opdeling og inkrementoperation. Mest Aritmetiske og logiske instruktioner påvirke processorstatusregistret.

Samlingens sprogprogrammering 8086 mnemonics er i form af op-kode, såsom MOV, MUL, JMP og så videre, som bruges til at udføre operationerne. Samling sprog programmering 8086 eksempler

Tilføjelse
ORG0000h
MOV DX, # 07H // flyt værdien 7 til registeret AX //
MOV AX, # 09H // flyt værdien 9 til akkumulator AX //
Tilføj AX, 00H // tilføj CX-værdi med R0-værdi, og gem resultatet i AX //
ENDE
Multiplikation
ORG0000h
MOV DX, # 04H // flyt værdien 4 til registret DX //
MOV AX, # 08H // flyt værdien 8 til akkumulator AX //
MUL AX, 06H // Multiplikeret resultat gemmes i Akkumulator AX //
ENDE
Subtraktion
ORG 0000h
MOV DX, # 02H // flyt værdien 2 for at registrere DX //
MOV AX, # 08H // flyt værdien 8 til akkumulator AX //
SUBB AX, 09H // Resultatværdi er gemt i akkumulator A X //
ENDE
Division
ORG 0000h
MOV DX, # 08H // flyt værdien 3 for at registrere DX //
MOV AX, # 19H // flyt værdien 5 til akkumulator AX //
DIV AX, 08H // endelig værdi er gemt i Akkumulator AX //
ENDE

Derfor er dette alt sammen om monteringsniveau-programmering 8086, 8086 processorarkitektur enkle eksempelprogrammer til 8086-processorer, aritmetiske og logiske instruktioner. Desuden kan spørgsmål vedrørende denne artikel eller elektronikprojekter kontaktes ved at kommentere i kommentarfeltet nedenfor.