This is probably the best book on programming I've ever read. Like, I was literally spending maybe 5 minutes on each page because it was so densely packed with information. That's coming from someone with years of high-level programming experience. You learn about ASM (x64) and C, and get low enough to write an interpreter by the end of the book.
All-in-all, amazing place to start if you're going to learn ASM properly:
--Learning what registers need to be reverted after calling a function
--Learning about x64 linux syscalls
--Learning NASM syntax
--Learning about most common instructions, as well as reading Intel64 docs
--And way more.
Drop me some Green if this helps you!