I understand C fairly well, but translating C into x86-64 GCC assembly still feels completely unfamiliar. I especially struggle to understand what the registers represent, how they're used, and whether I'm expected to memorize their roles and ordering. I've tried online tools that show the assembly generated from C, but simply looking at the output hasn't helped me learn how to read or write it. Are there any clear videos or learning resources that explain x86-64 assembly for someone who already knows C?
2 Answers
A useful way to prepare is to make your own compact reference sheet while studying, then rewrite it from memory several times. Organize it spatially into sections for instruction syntax, register names, calling conventions, stack layout, and common patterns such as function calls and loops. The goal isn’t just to memorize an existing chart—it’s to understand what each section means well enough to recreate the parts you need.
Learning which registers are preserved across function calls and which ones a function is allowed to overwrite was especially helpful for understanding how the calling convention works.
A structured video series on x86-64 assembly can help more than a compiler-output viewer, especially if it introduces registers, the stack, calling conventions, and instruction patterns in that order. Once those basics make sense, compare small C functions with their compiler output and explain each instruction yourself instead of only reading the generated code.

That makes sense, but I’m not sure what information is important enough to put on the sheet yet. I’m looking for a resource that teaches the underlying concepts first, rather than just giving me a list of registers and instructions.