Cos'è Linguaggio Assembly?
Ogni personal computer ha un microprocessore che gestisce le attività aritmetica, logica, e il controllo del computer.

Ogni famiglia di processori ha una propria serie di istruzioni per la gestione di varie operazioni come avere un input da tastiera, la visualizzazione delle informazioni sullo schermo e l'esecuzione di vari altri posti di lavoro. Questi set di istruzioni sono chiamati 'istruzioni in linguaggio macchina.

Un processore capisce solo istruzioni in linguaggio macchina, che sono stringhe di 1 e di 0. Tuttavia, il linguaggio macchina è troppo oscuro e complesso per l'utilizzo nello sviluppo di software. Così, il linguaggio assembly di basso livello è progettato per una specifica famiglia di processori che rappresenta varie istruzioni in codice simbolico e una forma più comprensibile.

Vantaggi del Linguaggio Assembly
Avere una comprensione di linguaggio assembly rende consapevoli di -

Come interfaccia del programma con sistema operativo, processore, e il BIOS;
Come dati sono rappresentati in memoria e altri dispositivi esterni;
Come il processore accede ed esegue l'istruzione;
Come le istruzioni di accesso e dati di processo;
Come un programma accede dispositivi esterni.
Altri vantaggi di utilizzare linguaggio assembly sono -

Si richiede meno memoria e tempo di esecuzione;

Permette lavori complessi hardware-specifiche in un modo più semplice;

E 'adatto per i lavori time-critical;

È il più adatto per la scrittura di routine di interrupt e altri programmi residenti in memoria.

Funzioni di base di PC Hardware
Il principale hardware interno di un PC consiste di processore, memoria e registri. I registri sono componenti del processore che contengono i dati e l'indirizzo. Per eseguire un programma, il sistema lo copia dal dispositivo esterno nella memoria interna. Il processore esegue le istruzioni dei programmi.

L'unità fondamentale della memoria del computer è un po '; potrebbe essere ON (1) o OFF (0). Un gruppo di nove bit relativi rende un byte, di cui otto bit sono utilizzati per i dati e l'ultimo è usato per la parità. Secondo la regola di parità, il numero di bit che sono ON (1) in ogni byte dovrebbe essere sempre dispari.

Quindi, il bit di parità è usato per fare il numero di bit in un byte dispari. Se la parità è ancora, il sistema presuppone che c'era stato un errore di parità (anche se raro), che potrebbero essere stati causati a causa di guasti hardware o disturbi elettrici.

Il processore supporta i seguenti formati di dati -

Word: un elemento di dati 2 byte
Doppia parola: un byte 4 (32 bit) elemento di dati
Quadword: un 8 byte (64 bit) elemento di dati
Il paragrafo: a 16 byte (128 bit) zona
Kilobyte: 1024 byte
Megabyte: 1.048.576 byte
Sistema Binario Numero
Ogni sistema numero usa notazione posizionale, cioè, ogni posizione in cui una cifra scritta ha un valore di posizione diversa. Ogni posizione è potere della base, che è 2 per il sistema di numero binario, e queste potenze iniziano a 0 e aumentare di 1.

La seguente tabella mostra i valori di posizione per un numero binario a 8 bit, in cui tutti i bit sono impostati su ON.

Valore del bit 1 1 1 1 1 1 1 1
Valore di posizione come una potenza di base 2 128 64 32 16 8 4 2 1
Numero di bit 7 6 5 4 3 2 1 0
Il valore di un numero binario si basa sulla presenza di 1 bit e il loro valore posizionale. Quindi, il valore di un dato numero binario è -

1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255

che è uguale a 2 8 - 1.

Esadecimale Numero di sistema
Sistema numerico esadecimale utilizza la base 16. Le cifre in questa fascia di sistema da 0 a 15. Per convenzione, le lettere da A a F è utilizzato per rappresentare le cifre esadecimali corrispondenti a valori decimali da 10 a 15.

I numeri esadecimali in informatica viene utilizzato per abbreviare rappresentazioni binarie lunghe. Fondamentalmente, sistema numerico esadecimale rappresenta un dati binari dividendo ogni byte a metà e che esprime il valore di ogni mezzo byte. La seguente tabella fornisce gli equivalenti decimali, binari e esadecimali -

Numero decimale Rappresentazione binaria Rappresentazione esadecimale
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 La
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F

Per convertire un numero binario nel suo equivalente esadecimale, rompere in gruppi di 4 gruppi consecutivi ciascuno, a partire da destra, e scrivere i gruppi sulle corrispondenti cifre del numero esadecimale.

Esempio - il numero binario 1000 1100 1101 0001 equivale a esadecimale - 8CD1

Per convertire un numero esadecimale in binario, basta scrivere ogni cifra esadecimale nella sua 4 cifre equivalente binario.

Esempio - il numero esadecimale FAD8 è equivalente a binario - 1111 1010 1101 1000

Aritmetica binaria
La seguente tabella illustra quattro semplici regole per somma binaria -

(io) (ii) (iii) (iv)
1
0 1 1 1
0 0 1 1
= 0 = 1 = 10 = 11
Regole (iii) e (iv) mostrano un riporto di 1 bit nella posizione prossima a sinistra.

Esempio

Decimale Binario
60 00111100
+42 00101010
102 01100110
Un valore binario negativo è espresso in notazione complemento a due. Secondo questa regola, per convertire un numero binario nel relativo valore negativo è quello di invertire i suoi valori di bit e aggiungere 1.

Esempio

Numero 53 00110101
Invertire i bit 11001010
Aggiungere 1 0000000 1
Numero -53 11001011
Per sottrarre un valore da un altro, convertire il numero che viene sottratto in formato a complemento di due e aggiungere i numeri.

Esempio

Sottrarre 42 da 53

Numero 53 00110101
Numero 42 00101010
Invertire i bit di 42 11010101
Aggiungere 1 0000000 1
Numero -42 11010110
53-42 = 11 00001011
Overflow dello scorso 1 bit è perduto.

Affrontare i dati in memoria
Il processo attraverso il quale il processore controlla l'esecuzione delle istruzioni viene definito come il ciclo fetch-decode-esecuzione o ciclo di esecuzione. Si compone di tre fasi continue -

Recupero l'istruzione dalla memoria
Decodifica o identificare l'istruzione
Eseguire l'istruzione
Il processore può accedere a uno o più byte di memoria alla volta. Consideriamo un numero esadecimale 0725H. Questo numero richiederà due byte di memoria. Il byte di ordine superiore o byte più significativo è 07 e il byte di ordine inferiore è 25.

Il processore memorizza i dati in sequenza inversa byte, vale a dire, un byte di ordine inferiore è memorizzato in un indirizzo di memoria insufficiente e di un byte di ordine in alto indirizzo di memoria. Quindi, se il processore riporta il valore 0725H dal registro a memoria, trasferirà 25 prima l'indirizzo di memoria inferiore e 07 per l'indirizzo di memoria successivo.

Introduzione
x: indirizzo di memoria

Quando il processore riceve i dati numerici dalla memoria per la registrazione, inverte di nuovo i byte. Ci sono due tipi di indirizzi di memoria -

Indirizzo assoluto - un riferimento diretto di posizione specifica.

Indirizzo di segmento (o offset) - indirizzo iniziale di un segmento di memoria con il valore di offset.