Assembly Language Step-by-step: Programming with DOS and Linux (with CD-ROM)