Learning assembly language with Programming from the Ground Up by Jonathan Bartlett