Semplici programmi in linguaggio assembly 8086 con spiegazione

Prova Il Nostro Strumento Per Eliminare I Problemi





La programmazione a livello di assemblaggio è molto importante per il livello basso sistema incorporato design viene utilizzato per accedere alle istruzioni del processore per manipolare l'hardware. È un linguaggio a livello di macchina più primitivo viene utilizzato per creare codice efficiente che consuma meno cicli di clock e richiede meno memoria rispetto al linguaggio di programmazione di alto livello . È un linguaggio di programmazione completo orientato all'hardware per scrivere un programma che il programmatore deve conoscere dell'hardware incorporato. Qui vengono fornite le basi della programmazione a livello di assembly 8086.

Programmazione a livello di assieme 8086

Programmazione a livello di assieme 8086



Programmazione a livello di assieme 8086

Il linguaggio di programmazione assembly è un linguaggio di basso livello sviluppato utilizzando mnemonici. Il microcontrollore o il microprocessore può comprendere solo il linguaggio binario come 0 o 1, quindi l'assemblatore converte il linguaggio assembly in linguaggio binario e lo memorizza nella memoria per eseguire le attività. Prima di scrivere il programma i progettisti embedded devono avere una conoscenza sufficiente su un particolare hardware del controller o processore, quindi prima abbiamo richiesto di conoscere l'hardware del processore 8086.


Hardware del processore

Hardware del processore



Architettura del processore 8086

L'8086 è un processore che è rappresentato per tutti i dispositivi periferici come bus seriale, e RAM e ROM, dispositivi I / O e così via che sono tutti collegati esternamente alla CPU utilizzando un bus di sistema. Il microprocessore 8086 ha Architettura basata su CISC e dispone di periferiche come 32 I / O, Comunicazione seriale , ricordi e contatori / timer . Il microprocessore richiede un programma per eseguire le operazioni che richiedono una memoria per leggere e salvare le funzioni.

Architettura del processore 8086

Architettura del processore 8086

La programmazione a livello di assembly 8086 si basa sui registri di memoria. Un registro è la parte principale di microprocessori e controller che si trovano nella memoria che fornisce un modo più veloce di raccogliere e archiviare i dati. Se vogliamo manipolare i dati a un processore o controllore eseguendo la moltiplicazione, l'addizione, ecc., Non possiamo farlo direttamente nella memoria dove sono necessari i registri per elaborare e memorizzare i dati. Il microprocessore 8086 contiene vari tipi di registri che possono essere classificati in base alle loro istruzioni come

Registri di uso generale : La CPU 8086 è composta da 8 registri di uso generale e ogni registro ha il proprio nome, come mostrato nella figura, come AX, BX, CX, DX, SI, DI, BP, SP. Questi sono tutti registri a 16 bit in cui quattro registri sono divisi in due parti come AX, BX, CX e DX che viene utilizzato principalmente per mantenere i numeri.

Registri per scopi speciali : La CPU 8086 è composta da 2 registri di funzioni speciali come i registri IP e flag. Il registro IP punta all'istruzione in esecuzione corrente e funziona sempre per raccogliere con il registro del segmento CS. La funzione principale dei registri flag è quella di modificare le operazioni della CPU dopo che le funzioni meccaniche sono state completate e non possiamo accedervi direttamente
Registri di segmento: La CPU 8086 è composta da registri a 4 segmenti come CS, DS, ES, SS che viene utilizzato principalmente per memorizzare qualsiasi dato nei registri di segmento e possiamo accedere a un blocco di memoria utilizzando i registri di segmento.


Programmi in linguaggio assembly semplice 8086

La programmazione in linguaggio assembly 8086 ha alcune regole come

  • Il livello di assemblaggio programmazione 8086 il codice deve essere scritto in lettere maiuscole
  • Le etichette devono essere seguite da due punti, ad esempio: label:
  • Tutte le etichette e i simboli devono iniziare con una lettera
  • Tutti i commenti sono scritti in minuscolo
  • L'ultima riga del programma deve essere terminata con la direttiva END

I processori 8086 hanno altre due istruzioni per accedere ai dati, come WORD PTR - per parola (due byte), BYTE PTR - per byte.

Codice operativo e operando

Codice operativo e operando

Codice operativo: Una singola istruzione viene chiamata come un codice operativo che può essere eseguito dalla CPU. Qui l'istruzione 'MOV' è chiamata come un codice operativo.

Operandi: I dati di un singolo pezzo sono chiamati operandi che possono essere gestiti dal codice operativo. Esempio, l'operazione di sottrazione viene eseguita dagli operandi che vengono sottratti dall'operando.
Sintassi: SUB b, c

8086 programmi in linguaggio assembly per microprocessore

Scrivi un programma per leggere un carattere dalla tastiera

MOV ah, 1h // sottoprogramma di input da tastiera
INT 21h // immissione di caratteri
// il carattere è memorizzato in al
MOV c, al // copia il carattere da contralto c

Scrivi un programma per leggere e visualizzare un carattere

MOV ah, 1h // sottoprogramma di input da tastiera
INT 21h // legge il carattere in al
MOV dl, al // copia il carattere in dl
MOV ah, 2h // sottoprogramma di output di caratteri
INT 21h // visualizza il carattere in dl

Scrivere un programma utilizzando i registri per uso generico

ORG 100h
MOV AL, VAR1 // controlla il valore di VAR1 spostandolo in AL.
LEA BX, VAR1 // ottiene l'indirizzo di VAR1 in BX.
MOV BYTE PTR [BX], 44h // modifica il contenuto di VAR1.
MOV AL, VAR1 // controlla il valore di VAR1 spostandolo in AL.
GIUSTO
VAR1 DB 22h
FINE

Scrivere un programma per visualizzare la stringa utilizzando le funzioni di libreria

include emu8086.inc // Dichiarazione macro
ORG 100h
STAMPA 'Hello World!'
GOTOXY 10, 5
PUTC 65 // 65 - è un codice ASCII per 'A'
PUTC 'B'
RET // torna al sistema operativo.
END // per arrestare il compilatore.

Istruzioni aritmetiche e logiche

I processi 8086 di unità aritmetica e logica sono stati separati in tre gruppi come operazioni di addizione, divisione e incremento. Maggior parte Istruzioni aritmetiche e logiche influenzare il registro di stato del processore.

I mnemonici di programmazione in linguaggio assembly 8086 sono sotto forma di codice operativo, come MOV, MUL, JMP e così via, che vengono utilizzati per eseguire le operazioni. 8086 esempi di programmazione in linguaggio Assembly

Aggiunta
ORG0000h
MOV DX, # 07H // sposta il valore 7 nel registro AX //
MOV AX, # 09H // sposta il valore 9 nell'accumulatore AX //
Aggiungi AX, 00H // aggiunge il valore CX con il valore R0 e memorizza il risultato in AX //
FINE
Moltiplicazione
ORG0000h
MOV DX, # 04H // sposta il valore 4 nel registro DX //
MOV AX, # 08H // sposta il valore 8 nell'accumulatore AX //
MUL AX, 06H // Il risultato moltiplicato viene memorizzato nell'Accumulator AX //
FINE
Sottrazione
ORG 0000h
MOV DX, # 02H // sposta il valore 2 per registrare DX //
MOV AX, # 08H // sposta il valore 8 nell'accumulatore AX //
SUBB AX, 09H // Il valore del risultato viene memorizzato nell'accumulatore A X //
FINE
Divisione
ORG 0000h
MOV DX, # 08H // sposta il valore 3 per registrare DX //
MOV AX, # 19H // sposta il valore 5 nell'accumulatore AX //
DIV AX, 08H // il valore finale viene memorizzato nell'accumulatore AX //
FINE

Pertanto, questo è tutto sulla programmazione a livello di assemblaggio 8086, 8086 Processor Architecture semplici programmi di esempio per processori 8086, istruzioni aritmetiche e logiche.Inoltre, qualsiasi domanda riguardante questo articolo o progetti di elettronica, puoi contattarci commentando nella sezione commenti qui sotto.