Not sure your time scale or starting point, but just to throw something out there: I recommend learning computer architecture first. https://archive.org/details/ComputerArchitectureAQuantitativ... I had a class in school where we had to build a simple computer on an FPGA and wrote a gcc compatible assembler for it. Passing was being able to run simple C programs on it. I felt like that project was the best experience for really understanding assembly from the bottom and from the top.
There is a game on Steam called "Turing Complete". It teaches you how to build a fully functional computer from scratch. I recommend you play this game while you work through the theory.
phba
Build yourself a 6502 microcomputer.
It’s fairly simple and there’s complete board designs available.
The reason is that the CPU is simple enough to quickly grasp all important concepts, and it is still available.
Starting with x86 might be too frustrating at the beginning.
Also you will learn much more than just assembly code - you will learn all parts and things that make assembly possible
devdude1337
Learn to program with Assembly by Jonathan Bartlett is what you’re looking for. I read the previous version and it was great.
comments (4)
An unrelated resource I thought looked good was this: https://github.com/FFmpeg/asm-lessons
greentea23
phba
devdude1337
Shosty123