Assembly

Assembly language è un linguaggio di programmazione a bassissimo livello, molto vicino al linguaggio macchina del processore. Ogni istruzione assembly corrisponde quasi sempre a una singola istruzione eseguita dalla CPU.

In pratica, invece di usare comandi “umani” come in Python o Java, in assembly si scrivono istruzioni molto elementari, come:

  1. spostare dati tra registri della CPU
  2. fare somme o sottrazioni
  3. confrontare valori
  4. saltare a un’altra istruzione (salti condizionali o incondizionati)

Come funziona

La CPU non capisce direttamente l’assembly: lo si scrive per essere poi tradotto da un assembler in linguaggio macchina (sequenze di 0 e 1).

Esempio:

MOV AX, 5
ADD AX, 3

Qui si mette il valore 5 in un registro e poi si aggiunge 3.

Caratteristiche

  1. È molto veloce ed efficiente: permette controllo diretto dell’hardware
  2. È poco portabile: cambia da architettura a architettura (x86, ARM, ecc.)
  3. È difficile da scrivere e leggere rispetto ai linguaggi ad alto livello
  4. È usato in contesti specifici: sistemi operativi, driver, embedded, reverse engineering, ottimizzazioni critiche