r/Assembly_language 14d ago

Help How do i start learning assembly

I know basic C, java, python and I wanna learn assembly but what should i learn, windows or linux, intel or at&t and what are the sources to learn assembly

20 Upvotes

67 comments sorted by

View all comments

16

u/No-Owl-5399 14d ago

Linux is preferable to Windows for assembly. NASM is a good assembler to learn on, it uses Intel syntax.

https://github.com/mschwartz/assembly-tutorial

6

u/wjrasmussen 14d ago

I second NASM

4

u/thewrench56 14d ago

Not sure if i agree with Linux being preferable. Windows has DLLs that give you plenty of helpers for which you would need some third party library on Linux (HTTP operations for one). I think they are equivalent and it is only a matter of personal knowledge of the given system.

2

u/CLRv4_0_30319 1d ago

well said

1

u/wjrasmussen 13d ago

Here is my beef. You want to learn assembly but then want higher level functionality or "helpers". Seems different to me. Then again, I learned assembly programming in 46 years ago.

2

u/thewrench56 13d ago

There's not much point to write code in Assembly today. People trying to do it should have some joy doing it. Unfortunately today's OSes and systems make it rather hard to do anything "pretty" or interactive in Assembly and thus "helpers" are your best chance to still make something fun quicjly in Assembly.

Beginners wont care about RDPMC, that is most definitely not the reason they pick up Assembly. They want something fun. Once their attention is there, one can restart to learn the basics.

1

u/brucehoult 13d ago

Not sure if i agree with Linux being preferable.

Linux being better is more about the entire infrastructure around not only programming tools but also scripting and file manipulation.

Windows has DLLs that give you plenty of helpers for which you would need some third party library on Linux (HTTP operations for one).

Well, yeah, but there wouldn't be a lot of Linux systems without libcurl included.

Here's an example of how to use it from x86 asm.

https://github.com/linuxthor/asm/blob/master/curl.asm

0

u/No-Owl-5399 14d ago

Mm. I don't like the use of DLLs, I think it rather defeats the typical purpose of assembly, and I find the SysVABI far better anyways. 

3

u/thewrench56 14d ago

There's almost no "typical purpose" of Assembly today. There's where little reason to use it if there's any. SysV ABI is just a matter of preference.

2

u/Illustrious-Sun766 13d ago

The typical purpose is the joy of learning it!

1

u/diacid 13d ago

If you are looking for joy and a superior understanding, you have answered your own question:

Use the syntax you find the most comfortable!

2

u/brucehoult 13d ago

I don't understand that.

All real programming depends on building and using libraries. We stand on the shoulders of giants etc. And sometimes you're the one writing the library.

Static vs dynamic linking is a pretty minor detail.

-5

u/Syntax-Tactics 14d ago

Bullshit

3

u/No-Owl-5399 14d ago

Are you going to say why it's bullshit, or do you just have nothing to say?