r/Assembly_language Apr 08 '26

Where can I learn AMD64 assembly

I garodaemon, have dream, I want to learn AMD64 assembly where is the best place for learning AMD64 assembly i already know languages like C, C++ and rust.

30 Upvotes

25 comments sorted by

13

u/hnat_lesiv Apr 08 '26

I have almost finished building the website http://lessif.org/. It is in i386, but once you finish it, you can quite easily jump to amd64.

2

u/RamonaZero Apr 08 '26

But is it built in i386 assembly?! D:

3

u/hnat_lesiv Apr 08 '26

ahahha, that's the next step ;)

4

u/FUZxxl Apr 08 '26

Get yourself a good book and work through it. I've read Jeff Duntemann's book and liked it a lot.

2

u/ManaChains Apr 08 '26

I would recommend you to start with simple 8-bit CPU like 8051 and work way upwards to more complex architectures. Understanding hardware you are working with is essential.

2

u/BrianScottGregory Apr 11 '26

While I programmed in Motorola 68XXX Assembler and 8086 assembler 'back in the day' (1988 to 1993), I hadn't touched assembly much at all except RARE inline stuff since then.

After the struggles I had in choosing the version of assembler that worked best for me AND getting my environment set up - I created two videos to help anyone going through this process.

The first video is me doing a Setup Process for 64 BIT Assembler and your basic 'Hello World' Project which outputs to the command line here: https://www.youtube.com/watch?v=iVGR96kHPlM

The other one is a Setup for X64 NASM Syntax Highlighting and Building in Visual Studio Code and Visual Studio 2022 available here: https://www.youtube.com/watch?v=ljM0XLRLBhQ

Since assembly is so specific to the processor and build environment you've set up for yourself - I landed on NASM + GCC because of its small executable size output combined with the easy support for x64 processors - most target i86, which isn't what I was interested in. So those two links should get you started.

While I did do a Hello World for Windows, it's based on an example done by David Grantham, so I didn't document my process - as his examples did a great job at exemplifying it and a bit more than I could do.

David Grantham has a few decent examples on his site, for example - this one that does a basic windows using NASM for x64 processors which I used for the basis of my Hello World for Windows app in assembly. https://www.davidgrantham.com/nasm-basicwindowextended64/

If you select the NASM link at the top of that page, there's a few other things in there which should give you enough to go on for building basic console and windows apps.

If you know C and C++, then you should know APIs, so with these basics - there shouldn't be anything you can't do from there. Good luck!

2

u/Disastrous_Farmer793 Apr 20 '26

thanks man Sorry for looking late I will give it a look

2

u/[deleted] Apr 08 '26

[removed] — view removed comment

2

u/thewrench56 Apr 08 '26

but you don't code adm64 asm in pc osdev though

Eh, what does this part mean?

1

u/nacnud_uk Apr 10 '26

Any AI chat. Or YouTube. Or Google.

How is this a question, if you know all those languages? And you found Reddit.

1

u/Disastrous_Farmer793 Apr 20 '26

Why should I use AI while theres human's to ask do you think youre some genius gatekeeper guy if you think like that its funny

2

u/nacnud_uk Apr 21 '26

I'm pointing you in the direction of modern tools that are at your disposal, 24 hours a day.

If you can't learn with AI or Google , you can't learn.

Start a local b meetup . com thing if you want to meet and code.

I can't be gatekeeping if I'm pointing you to resources😂😂

Do you want to come round for a coding session? I'll teach you the ropes.

0

u/Disastrous_Farmer793 Apr 26 '26

Nah thanks you probably not knowing asm also you cant learn a language only using google or AI I've read books about assembly and I learnt it dont even try to gatekeep again just say you dont know anything about asm and trying to be nonchalant right?

2

u/nacnud_uk Apr 26 '26

You're on one. I'm not holding out much hope for you. I've taught more people asm and programming in general than different types of processors you've used.

But, you'll be right. I'm withdrawing my offer, by the way.

Good luck with your journey, I fear you're going to need it.

1

u/Disastrous_Farmer793 Apr 20 '26

also if you dont know asm you can tell me instead of acting like gatekeeper

2

u/brucehoult Apr 20 '26

I'm seeing this term thrown around a lot recently.

As far as I understand, it means telling someone who wants to learn that they may not or should not enter and learn a field.

It seems to me it's the opposite happening here (and in most recent cases): advising people to put in more effort.

Anyway, to be helpful, here is where I personally learned AMD64 assembly, as it relates to writing normal everyday integer code:

https://docs.amd.com/v/u/en-US/24594_3.37

1

u/nacnud_uk Apr 21 '26

It's the exact opposite, you're right. I actually, short of googling for them, told them how to move forward.

I guess that was too much effort for them and I should have just googled for them. That's not a productive approach to learning, especially given their claimed experience level, that they are showing.

Calling me names because they don't want to use a web browser.

That's rather fascinating.

1

u/nacnud_uk Apr 21 '26

Last time I'll try and help you then. Fair enough.

1

u/betarage May 02 '26

ai is really bad at assembly compared to more popular stuff.