Programe simple de limbaj de asamblare 8086 cu explicație

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Programarea la nivel de asamblare este foarte importantă la nivel scăzut sistem incorporat designul este utilizat pentru a accesa instrucțiunile procesorului pentru manipularea hardware-ului. Este un limbaj primitiv la nivel de mașină, este folosit pentru a face cod eficient, care consumă un număr mai mic de cicluri de ceas și are mai puțină memorie în comparație cu limbaj de programare la nivel înalt . Este un limbaj de programare complet orientat spre hardware pentru a scrie un program pe care programatorul trebuie să îl cunoască despre hardware-ul încorporat. Aici oferim elementele de bază ale programării la nivel de asamblare 8086.

Programare nivel asamblare 8086

Programare nivel asamblare 8086



Programare nivel asamblare 8086

limbaj de programare asamblare este un limbaj de nivel scăzut care este dezvoltat utilizând mnemonică. Microcontrolerul sau microprocesorul pot înțelege doar limbajul binar, cum ar fi 0 sau 1, prin urmare, asamblorul convertește limbajul de asamblare în limbaj binar și îl stochează memoria pentru a îndeplini sarcinile. Înainte de a scrie programul, proiectanții încorporați trebuie să aibă cunoștințe suficiente asupra anumitor hardware ale controlerului sau procesorului, așa că mai întâi trebuie să cunoaștem hardware-ul procesorului 8086.


Hardware-ul procesorului

Hardware-ul procesorului



8086 Arhitectura procesorului

8086 este un procesor care este reprezentat pentru toate dispozitivele periferice, cum ar fi magistrala serială și RAM și ROM, dispozitivele I / O și așa mai departe, care sunt toate conectate extern la CPU utilizând o magistrală de sistem. Microprocesorul 8086 are Arhitectură bazată pe CISC și are periferice precum 32 I / O, Comunicare în serie , amintiri și contoare / cronometre . Microprocesorul necesită un program pentru a efectua operațiile care necesită o memorie pentru citire și salvarea funcțiilor.

8086 Arhitectura procesorului

8086 Arhitectura procesorului

Programarea nivelului de asamblare 8086 se bazează pe registrele de memorie. Un registru este partea principală a microprocesoare și controlere care sunt localizate în memorie care oferă un mod mai rapid de colectare și stocare a datelor. Dacă dorim să manipulăm datele către un procesor sau controler prin efectuarea multiplicării, adunării etc., nu putem face acest lucru direct în memorie, unde sunt necesare registre pentru procesare și stocare a datelor. Microprocesorul 8086 conține diferite tipuri de registre care pot fi clasificate în conformitate cu instrucțiunile lor, cum ar fi

Registrele cu scop general : Procesorul 8086 este format din 8 registre cu scop general și fiecare registru are propriul nume așa cum se arată în figură, cum ar fi AX, BX, CX, DX, SI, DI, BP, SP. Toate acestea sunt registre pe 16 biți în care patru registre sunt împărțite în două părți, cum ar fi AX, BX, CX și DX, care este utilizat în principal pentru păstrarea numerelor.

Registre cu scop special : Procesorul 8086 a fost format din 2 - registre de funcții speciale, cum ar fi registre IP și flag. Registrul IP indică instrucțiunea de executare curentă și funcționează întotdeauna pentru a se aduna cu registrul segmentului CS. Funcția principală a registrelor de semnalizare este de a modifica operațiunile CPU după finalizarea funcțiilor mecanice și nu putem accesa direct
Registre de segmente: CPU-ul 8086 este format din 4 registre de segmente, cum ar fi CS, DS, ES, SS, care este utilizat în principal pentru a stoca orice date în registrele de segmente și putem accesa un bloc de memorie folosind registre de segmente.


Programe simple de limbaj de asamblare 8086

Programarea limbajului de asamblare 8086 are câteva reguli, cum ar fi

  • Nivelul de asamblare programare 8086 codul trebuie scris cu majuscule
  • Etichetele trebuie să fie urmate de două puncte, de exemplu: etichetă:
  • Toate etichetele și simbolurile trebuie să înceapă cu o literă
  • Toate comentariile sunt tastate cu litere mici
  • Ultima linie a programului trebuie încheiată cu directiva END

Procesorii 8086 au alte două instrucțiuni pentru a accesa datele, cum ar fi WORD PTR - pentru cuvânt (doi octeți), BYTE PTR - pentru octet.

Op-Code și Operand

Op-Code și Operand

Cod op: O singură instrucțiune este apelată ca un cod op care poate fi executat de CPU. Aici instrucțiunea „MOV” este numită ca un cod op.

Operanzi: O singură bucată de date se numește operanzi care pot fi operați prin codul op. Exemplu, operația de scădere este realizată de operanzii care sunt scăpați de operand.
Sintaxă: SUB b, c

8086 programe de limbaj de asamblare a microprocesorului

Scrieți un program pentru citirea unui caracter de pe tastatură

MOV ah, 1h // subprogram de intrare tastatură
INT 21h // introducere caracter
// caracterul este stocat în al
MOV c, al // copie caracter din alto c

Scrieți un program pentru citirea și afișarea unui personaj

MOV ah, 1h // subprogram de intrare tastatură
INT 21h // citiți caracterul în al
MOV dl, al // copiați caracterul în dl
MOV ah, 2h // subprogram de ieșire a caracterelor
INT 21h // afișează caracterul în dl

Scrieți un program folosind registre de uz general

ORG 100h
MOV AL, VAR1 // verificați valoarea lui VAR1 mutându-l în AL.
LEA BX, VAR1 // obțineți adresa VAR1 în BX.
MOV BYTE PTR [BX], 44h // modificați conținutul VAR1.
MOV AL, VAR1 // verificați valoarea lui VAR1 mutându-l în AL.
DREAPTA
VAR1 DB 22h
SFÂRȘIT

Scrieți un program pentru afișarea șirului folosind funcțiile bibliotecii

include emu8086.inc // Declarație macro
ORG 100h
IMPRIMĂ „Hello World!”
GOTOXY 10, 5
PUTC 65 // 65 - este un cod ASCII pentru „A”
PUTC „B”
RET // reveniți la sistemul de operare.
END // directivă pentru a opri compilatorul.

Instrucțiuni de aritmetică și logică

Procesele 8086 ale unității aritmetice și logice s-au separat în trei grupuri, cum ar fi operația de adunare, divizare și incrementare. Cel mai Instrucțiuni de aritmetică și logică afectează registrul stării procesorului.

Programarea limbajului de asamblare 8086 mnemonice este sub formă de cod op, cum ar fi MOV, MUL, JMP și așa mai departe, care sunt utilizate pentru a efectua operațiile. Programarea limbajului de asamblare 8086 exemple

Plus
ORG0000h
MOV DX, # 07H // mutați valoarea 7 în registrul AX //
MOV AX, # 09H // mutați valoarea 9 în acumulator AX //
Adăugați AX, 00H // adăugați valoarea CX cu valoarea R0 și stocați rezultatul în AX //
SFÂRȘIT
Multiplicare
ORG0000h
MOV DX, # 04H // mutați valoarea 4 în registrul DX //
MOV AX, # 08H // mutați valoarea 8 în acumulator AX //
MUL AX, 06H // Rezultatul multiplicat este stocat în acumulatorul AX //
SFÂRȘIT
Scădere
ORG 0000h
MOV DX, # 02H // mutați valoarea 2 pentru a înregistra DX //
MOV AX, # 08H // mutați valoarea 8 în acumulator AX //
SUBB AX, 09H // Valoarea rezultatului este stocată în acumulatorul A X //
SFÂRȘIT
Divizia
ORG 0000h
MOV DX, # 08H // mutați valoarea 3 pentru a înregistra DX //
MOV AX, # 19H // mutați valoarea 5 în acumulator AX //
DIV AX, 08H // valoarea finală este stocată în acumulatorul AX //
SFÂRȘIT

Prin urmare, toate acestea sunt Programare la nivel de asamblare 8086, 8086 Arhitectura procesorului, exemple simple de programe pentru procesoare 8086, instrucțiuni aritmetice și logice. În plus, orice întrebări referitoare la acest articol sau proiecte electronice, ne puteți contacta comentând în secțiunea de comentarii de mai jos.