I understand C fairly well, but translating C code into x86-64 GCC assembly feels completely unfamiliar. I especially struggle to understand what the registers represent and whether I'm expected to memorize their roles and ordering. I've tried online tools that show the assembly generated from C, but seeing the output without understanding how to interpret it hasn't helped much. I'm looking for a beginner-friendly video or learning resource that explains how to read and write x86-64 assembly, ideally assuming I already know C. A useful study sheet or guidance on which concepts and registers are most important would also help, although I need to understand the material well enough to recreate the information during an exam.
2 Answers
Look for a structured introductory x86-64 assembly lecture series rather than only using a C-to-assembly converter. Start with the instruction format, register sizes, moving data, arithmetic, comparisons, jumps, stack usage, function calls, and the platform’s calling convention. Then compile very small C functions and try to explain each assembly instruction yourself before checking the compiler output. That active process is usually more useful than just reading generated assembly.
A good way to study is to make your own compact reference sheet rather than relying on one you find online. Organize it by topic—calling conventions, register roles, stack frames, common instructions, and memory addressing—and rewrite it several times. The repetition helps you remember where things are and makes it easier to reconstruct the important parts during a test.
That’s helpful, but I’m still unsure which concepts deserve space on the sheet. Most reference cards assume I already understand the material, so I’m hoping for something that teaches the fundamentals first.

Learning which registers are preserved across function calls and which ones the callee is allowed to overwrite was the point where assembly started making sense for me.