You can check this
link for books related with Assembly.
REMEMBER: Assembly does not use a compiler! It uses an assembler and a linker.
If you use linux i suggest
nasm if you are used in the Intel syntax and GAS if you are used in the AT&T syntax.
For a linker you can use
ld.
Also if you don't know about the syntaxes mentioned above, i got you a good link to read about them.
w00w00 att - vs - intel