Sembra semplice, ma partendo così da zero bisognerebbe scrivere un trattato su cos'è una CPU, come funziona, sulla RAM, sulle rappresentazioni numeriche etc etc
Provo ad esemplificare, anche con qualche imprecisione, giusto per aggiungere qualcosa in più a quanto ti ha già correttamente detto Naraj.
Intanto puoi leggerti
Architettura di von Neumann - Wikipedia
e
CPU - Wikipedia
Letto questo, avrai chiaro che la CPU legge delle celle di memoria, per semplicità supponiamo formate da 8 bit. Questi 8 bit formano un numero da 00000000 a 11111111.
Lo stesso numero lo puoi scrivere in tanti modi, a seconda della base che utilizzi; la base indica il numero di simboli che utilizzi per scrivere il numero.
I numeri di cui sopra, in base 10 (quella che usiamo correntemente), sono equivalenti a 0 e 255. I numeri son sempre gli stessi, cambia la maniera di scriverli.
In base 16 (16 cifre, da 0 a 9 poi A, B, C, D, E ed F) si scrivono 00 e FF; in base 8 sono 000 e 377 etc etc
(in base 255,se trovassi 255 cifre diverse, sarebbero 0 e 10)
La CPU legge dalla memoria questo numero e a seconda del suo valore compie una ben precisa operazione (istruzione).
Per esempio, incrementa il contenuto di una locazione di memoria di 1; oppure lo confronta con 0 e così via.
In generale nelle architetture memory mapped I/O, dove appunto ingressi e uscite sono mappati in memoria, alcuni indirizzi di memoria corrispondono in realtà a dispositivi di ingresso /uscita. Per sempio, scriveno un valore in una locazione di memoria, si attiva o meno un certo dispositivo.
Nei PIC succede una cosa del genere.
Mi fermo qui, altrimenti passa la nottata...