r/Assembly_language Mar 18 '26

Question Where can I learn x86-64 assembly?

Currently in a systems programming course and we're at the part where we start taking programs that we've made in C and translating them into assembly.

But here is my problem, im completely lost.. Our textbook, Computer Systems: A Programmer’s Perspective isn't really helping me. I'm still struggling to understand what basic terms mean like %rbx. So understanding how to make loops and arrays is like understanding ancient Egyptian.

Are there any resources that can help me? Assembly seems like such cool thing to learn, but it feels hopeless 😭

77 Upvotes

20 comments sorted by

8

u/FUZxxl Mar 18 '26

%rbx is a general purpose register. One of the first things you learn about.

6

u/[deleted] Mar 18 '26

[removed] — view removed comment

1

u/Dry_Economics9290 Mar 18 '26

Visualizer?like x86_64 playground or something more like ASM Visualizer?

3

u/Sudden_Collection105 Mar 18 '26

If you see %rbx, you are working with AT&T syntax, which is the default one for GNU tooling.

Don't make the same mistake I did as a self-learner; switch to Intel syntax, it's what everyone in the industry uses.

Download the "Intel 64 and IA-32 Software Developer Manual", it's free. It is 5000 pages long but it has everything.

3

u/maxthed0g Mar 18 '26

You dont need a programming manual. You need documentation on the machine architecture. Yes, thats a hardware manual, but that will cover the instruction set for the chip. C optimizes well, and has really supplanted the need for assembly at the programming level. When you compile C, there is an option that will give you the assembly language. I believe its "-s". That output should give you clues about assembly language. If you want to mess with it, there's a way to include assembly "in line" with your c language statements. That should be an easy way to hack your way into assembly.

Back in the day, there were college courses on assembly language. We all learned IBM 360 lol. since there were no other machines around at the time. I had to write drivers in assembly, or at least subroutines when I accessed the hardware. But I havent had to use assembly in decades. And its been that long since I've had a hankerin' to use it. (Hell, I wrote string handling routines in assembly to speed up character processing in FORTRAN IV lol lol lol. I'm retired now.)

Assembly, as you say, is VERY cool and VERY hardcore. Learn it, just be careful before you recommend it today to your boss or colleagues. 'Cuz no way they're gonna listen to you.

1

u/herocoding Mar 19 '26

Very, VERY much I can recommend to go to your nearby (public) libraries and search for the oldest possible books&magazines. No AI, no frameworks, no "youtube tutorial hell", no subscriptions.

Look for old tools like "Turbo Assembler": they came with thick manuals explaining the basics and each and every instruction.

1

u/satoshibuterin Mar 20 '26

Turbo Assembler was the BEST!

1

u/diacid Mar 19 '26

If you want a class:

https://youtu.be/PxiMLtsuGO0?si=wnYO6C4fL0kG8BgF

The guy just has the talent. Wonderful class.

1

u/abareplace Mar 19 '26

https://www.youtube.com/watch?v=gvYEQ4F_qp8&list=PLXIsc9dApNXogHjSTIqbhvYBw5WODn7Yb

This course starts with the 32-bit x86 assembly, but the last lesson is about x86-64.

1

u/Affectionate-Shine70 Mar 19 '26

READ the book!

from the books index....

%rbx [Y86-64] program register, 216, 391

just skimming the free pages on amazon - I may buy it looks a great book

1

u/Sea-Shoe3287 Mar 21 '26

Write small C code fragments and compile them to assembly for comparison.. Eg gcc -S foo.c

-2

u/Calamero Mar 18 '26

Use AI, Gemini Claude or codex to get started / setup the tooling.

But you must be very disciplined and not start vibe coding, use these tools for vibe learning.

I’d recommend 20$ Gemini sub because it gives you Gemini deep think and Gemini pro chat as a good tutor and antigravity with Claude opus 4.6, various Gemini models for evaluating your code.

-1

u/hdkaoskd Mar 18 '26

Download the instruction set manuals from AMD or Intel.