Docente
|
COPPA EMILIO
(programma)
- Struttura generale dell'hardware di un sistema di calcolo: macchina di Von Neumann; porte logiche AND, OR, NOT, NOR, NAND, XOR e tabelle di verità; realizzazione porte logiche mediante resistenze e transistor con demo pratica in aula; cenni a tecnologie VLSI; visualizzazione al microscopio di un wafer al silicio reale. logica combinatoria, addizionatore, logica sequenziale, flip-flop, clock; introduzione ai sistemi operativi: obiettivi di design e funzionalità principali - Toolchain compilazione gcc (-E, -c, -S, -o); assembly vs. linguaggio macchina, objdump -d, istruzioni giustapposte con formato variabile, esempio di scrittura di file .s, direttiva .globl, istruzione movl, letterali costanti $, istruzione ret, registro %eax come valore di ritorno a 32 bit, corrispondenza suffissi IA32 e tipi (b, w, l). Comando file per analizzare il tipo di file. nozione ISA, registri general-purpose. - Istruzioni aritmetico-logiche (incluso idiv), espressioni aritmetiche, %esp, stack frame e accesso ai parametri mediante modo di indirizzamento registro con spiazzamento d(%esp), endianness. - Selezione e cicli in x86 - Puntatori, array e stringhe in x86 - Istruzione call e passaggio dei parametri, ABI, caller-save/callee-save, push, pop, type cast - Variabili locali in stack, array allocati in stack, lea, espr booleane (and, or, not, setcc) - Consultazione manuale Intel e ABI 386, allineamento e padding nelle strutture in C, strutture allocate in stack - Shift, cmov, estensione a 64 bit, uso di gdb
Dispensa del corso (liberamente disponibile sul sito del corso).
|