Matteo Basei

Una collezione di piccoli programmi realizzati a scopo didattico.

MachineCode.exe

Questo programma è un simulatore di CPU x86 a 32 bit. L'obiettivo è quello di simulare in tutti i dettagli una CPU: i registri, i flag e la memoria, tanto da poter eseguire e debuggare un vero programma a 32 bit a partire dal codice macchina. Ovviamente questo progetto (come tutti gli altri, per la verità) è a solo scopo didattico. Mi interessava imparare a fondo il funzionamento di una CPU, non creare un emulatore utile in pratica.

MachineCode 1

Durante lo sviluppo di questo progetto la cosa più interessante è stata, oltre al trovare il modo più elegante per rappresentare una CPU (funzionante!) in linguaggio ad oggetti (ho sviluppato il tutto in C#), quella di apprendere tutti i dettagli dei vari tipi di addressing mode, quindi l'interpretazione dei byte MOD-REG-R/M.

MachineCode 2