The x86 PC: Assembly Language, Design, and Interfacing