I have some background in Java and C programming, and I'm really interested in starting to learn x64 assembly. I believe it will help me gain a deeper understanding of my hardware and how it works. However, I'm struggling to find good resources specifically for beginners in x64 assembly on Windows. I'm ready to tackle the challenges that come with learning it if it means expanding my knowledge of computing.
3 Answers
Look into books on 8086 assembler; it's fundamental to understanding the architecture of the processor family. Even though it deals with 16-bit registers, it’s helpful for learning how registers work and the difference between big and little endian byte ordering. Once you get comfortable, you can move to newer processor variants.
You should check out "Programming from the Ground Up" by Jonathan Bartlett. While it focuses on Linux, the core concepts largely apply. The NASM website also has a solid tutorial, but be aware that resources for Windows are a bit limited. Good luck!
You might want to try FreeBasic, which lets you write assembly functions within the language. Also, the Java 25 Vector API gives you some access to SIMD CPU instructions, which can be pretty interesting to explore!
Here's a quick example of an assembly function you might write in FreeBasic... (sub hsixteen naked(x as single ptr, n as ulongint) ... etc.) This could be a unique way to blend assembly with a higher-level language!

Thanks, I’ll check them out 🙂