# Assembly

Assembly
Copertina Tutti i moduli · Sviluppo
* IntroduzioneAssembly/Introduzione
** Perché non studiare l'AssemblyAssembly/Introduzione/Perché non studiare l'Assembly
** Perché studiare l'AssemblyAssembly/Introduzione/Perché studiare l'Assembly
* Rappresentazione datiAssembly/Rappresentazione dati
* Algebra Booleana
* Organizzazione di sistema (tanta noiosa teoria)
** Componenti base di sistema
** Il tempo del Sistema
** La famiglia 80x86
** Input/Output
* Organizzazione e accesso alla memoria
** Introduzione
** Organizzazione della memoria in un x86
** Organizzazione dei segmenti in un x86
** Indirizzi di memoria in un x86
** Registri di segmento in un x86
** Metodi di indirizzamento di un x86
** L'istruzione MOV
** Commenti finali sull'istruzione MOV
* ConvenzioniAssembly/Convenzioni
    Indice
Modifica il sommario
Il linguaggio Assembly è il linguaggio di programmazione più vicino all'hardware. Per questo motivo è anche il più macchinoso.
Per consultare questo libro è possibile usare il sommario qui sotto, consultare la categoria o servirsi dell'indice analitico.
Propedeutico è avere già confidenza con gli algoritmi di base (ordinamento, ricerca, ecc...), in modo da potersi concentrare in modo diretto sullo studio della sintassi e delle dinamiche strettamente legate all'interazione tra hardware e software (tipo la gestione della memoria, uso appropriato dei registri, ecc...) facendo pratica con programmi non banali.
Per questo motivo la conoscenza di un linguaggio ad alto livello (compilato tipo C, C++, Java, o di scripting come Ruby o Python) e la relativa implementazione degli algoritmi citati, sebbene non necessaria è fortemente consigliata. Il C o il C++ sono le scelte più popolari perché, vista l'assenza di un Garbage Collector, lasciano al programmatore il compito di gestire la memoria dinamica, preparandolo in parte all'assembly.

## Sommario

    Copertina
* Introduzione
** Perché non studiare l'Assembly
** Perché studiare l'Assembly
* Rappresentazione dati
** Struttura binaria e organizzazione dei dati
** Operazioni aritmetiche con i numeri binari ed esadecimali
** Operazioni logiche con bit e bytes
** Operazioni di shift su bits
** Numeri positivi e negativi
** Campi di bit e Packed Data
** Il set di caratteri ASCII
* Algebra Booleana
* Organizzazione di sistema (tanta noiosa teoria)
** Componenti base di sistema
*** Il Bus di sistema
**** Il Bus Dati
**** Il Bus Address
**** Il Bus di Controllo
*** Il sottosistema Memoria
*** Il sottosistema di Input/Output
** Il tempo del Sistema
*** Il Clock di Sistema
*** Tempi di accesso alla memoria
*** Memoria Cache
** La famiglia 80x86
*** I registri della CPU
*** La ALU
*** LA BIU
*** L'unita di controllo e Set di Istruzioni
*** Set di istruzioni di un x86
*** Modi di indirizzamento su un x86
*** La codifica di istruzioni di un x86
*** Esecuzione delle istruzioni
*** Differenze tra i processori x86
*** Processore 8086 (886)
*** Processore 80286 (286)
*** Processore 80386 (386)
*** Processore 80486 (486)
**** La coda di un 486
** Input/Output
* Organizzazione e accesso alla memoria
** Introduzione
*** Registri General Pourpose
*** Registri di Segmento
*** Registri Special Pourpose
*** I registri dell' 80286
*** I registri del 386/486
** Organizzazione della memoria in un x86
** Organizzazione dei segmenti in un x86
** Indirizzi di memoria in un x86
** Registri di segmento in un x86
** Metodi di indirizzamento di un x86
*** Addressing Mode dei registri di un 8086
*** Addressing Mode della memoria di un 8086
**** Direct Addressing Mode
**** Indirect Addressing Mode
**** Indexed Addressing Mode
**** Based Indexed Addressing Modes
**** Based Indexed Plus Displacement Addressing Mode (che razza di nome, eh?)
**** Un modo facile per ricordare gli Addressing Mode di un 8086
**** Commenti finali sugli Addressing Mode di un 8086
*** Addressing Mode dei registri di un 386
*** Addressing Mode della memoria di un 386
**** Register Indirect Addressing Mode
**** Indexed, Base/Indexed, e Base/Indexed/Disp Addressing Mode
**** 80386 Scaled Indexed Addressing Modes
**** Note finali sul Memory Addressing Modes del 386
** L'istruzione MOV
** Commenti finali sull'istruzione MOV
* Convenzioni

## Altri progetti

Altri progetti
* Wikipedia
* Wikimedia Commons
* Wikipedia contiene una voce su il linguaggio Assembly
* Wikimedia Commons contiene immagini o altri file su linguaggio assembly

## Collegamenti esterni

* Giobe2000: in questo sito, potrete trovare una guida su come lavora un processore, oltre a utili tavole degli interrupt, dei colori e delle porte.
* drpaulcarter.com: il linguaggio PC Assembly (libro completo in italiano e inglese, PDF)
* quequero.org: piccola guida all'Assembly
Ada | Assembly | C | C++ | C# | CSS | HTML | Java | JavaScript | Lisp | LOGO | Lua | Pascal | Perl | PHP | Prolog | Python | XML