Cercherò di spiegarvi un pò di assembler di base, linguaggio di programmazzione di basso livello molto molto potente, e a mia vista simpatico.La pecca dell'assembler è quella di essere strettamente legato all'hardware della macchina, e più precisamente alla cpu.quello di cui parlerò io è l'asm (assembler) dei processori della serie x86 che è uno dei più diffusi. Prima di parlare di codice, istruzioni e altro bisogna avere qualche nozione dell'architettura di un processore, sapere come funziona il master slave ecc. ma mi dilungherei un pò tropo, quindi vi parlerò solo dei registri interni del processore, poi se più avanti ci saranno cose da aggiungere le aggiungerò, ma intanto giù con wikipedia se vi interessa!.
i registri sono delle "memorie del processore che servono per diversi scopi, questi registri sono a 16 bit.
vediamo i registri.
Si (source index) usato come puntatore (contiente l'indirizzo) della zona sorgente dei dati
DI (destination index) puntatore alla zona destinazione
SP (stack pointer) puntatore allo stack. lo stack è un'area di memoria dove vengono salvati i dati in "pila", cioè uno sopra l'altro, e funziona secondo la struttura lifo (last in first out), cioè l'ultimo dato inserito è il primo ad uscire
BP (base pointer) punta alla base dello stack
Poi ci sono dei registri che sono quelli che andremo ad usare più spesso, ad uso generico e sono:
AX accumulatore per il risultato di operazioni matematiche
BX registro generico
CX contatore di ciclo
DX contiene il resto delle divisioni e contiene dati
questi registri sono sempre a 16 bit ma ogniuno di essi può essere divis per comodità in 2 parti da 8 bit l'una, così possiamo avere ben 8 registri.
vengono divisi nella parte alta (indicaca con h cioè high) e nella parte bassa (l low)
quindi avremo
AH AL
BH BL
CH CL
DH DL
altri registri sono
IP (instruction pointer) punta alla prossima istruzione da eseguire
poi ci sono i registri di segmento che puntano a zone di memoria che contengono determinati dati
CS (code segment)
DS (data segment)
SS (stak segment)
ES (extra segment)
e queste sono grosso modo le cose base da sapere per l'assembler.
se avete correzzioni,critiche domande ecc ditemelo. byez