SaM is divided into four packages: user interface (ui), core, utilities (utils), and input-output (io). The user interface package contains the SaM front ends, which are used to execute SaM assembly programs. The io package contains a tokenizer, used to properly parse such programs. The core package contains components that emulate real-world hardware and software. The utililities package contains common pieces of code used that should be reused. There are also some subpackages.