>>2There are a lot of nuances, like out of order execution, stack-vs-register, CPU caches and common idioms (xor ax ax). Although I don't remember any good book on assembly.
SICP would teach you all the basics. One of SICP assignments is a virtual machine for a simplified pseudo-assembly DSL, an interpreter for Scheme written in this pseudo-assembly, and finally, a compiler for Scheme that spits out pseudo-assembly code.