One for the beginner is Machine Code for Beginners, from Usbourne Books. The title may deter you and you may think it is just another machine code book but it is the easiest book on the subject on the market. Using it, a child at junior school could learn the basic techniques of both Z-80 and 6502 programming. The way the subject is tackled is nothing short of brilliant. That both major types of microchip are covered is an extra bonus.
The cartoon characters, such as robots and bugs, which are included teach machine code in a subtle manner. It is possible to read the book as a comic strip, taking little account of the main text and still derive a knowledge of assembly and machine language. It is reasonably priced at £1.99.