Which syntax and architecture of assembly is most useful to know?

Viewed 4938

I've always wanted to learn assembly, but there seems to be a jungle of assembly-related information out there that is difficult to interpret. I haven't just been able to google "learn assembly" and get going.

First, there are two types of syntax: Intel and AT&T. What's the difference? Why are there still two in use? When would I need to use one versus the other?

Second, there's a multitude of chips out there. Intel vs AMD, 32-bit versus 64-bit, x86 vs other architectures... even x86 is really a whole family of chips. So, how can I know whether the assembly I'm learning from a certain web page will work for my machine?

There exist even more variations (operating system even plays a role in determining how code will run.

So, the big question is, with all these variables, how can I know what type I should learn? What's most common? How is it possible for people to "know assembly" when there are all of these variations?

11 Answers

FAsm

Comes as an executable for Windows ready to run out of the box; decompress its archive and have at it from the command line. Linux version is similar coming as a compiled ELF executable while the BSD/Unix version comes as an object file that you compile with your native C compiler and done -ready to rollout your assembler code. Currently, work is underway to develop an almost vm assembler evolving FAsm that will also include native support for ARM chips as well.

IDEs supporting FAsm include WinAsm Studio with FAsm plugins titled WAFasm by Shoorick packaged in an archive that, once decompressed, is ready to run immediately. There is also Fresh IDE built with and targeting FAsm by an independent developer and FAsm forum member (John Found) and many other alternatives.

FAsm supports COFF, 32 & 64bit PE as well as ELF for Linux and FreeBSD in both .exe & .dll/linked libraries file formats. It provides macro support as well as headers following its format. For a complete listing of executable file formats supported by FAsm check out the official web site because there are many.

FAsm is now just around 20 years old and it's still just over 1 megabyte in size.

FAsm has a pretty large user forum addressing topics regarding all the platforms it serves as well as topics ranging from openGL to developing homebrew PNG image transparency systems and GUI applications -pretty awesome stuff.

Highly recommended.

Remember that assembler, contrary to idiot speculation, will never die because every compiler has to do the same -just a friendly FYI --compile, link, assemble ... right?

Thread may be a bit aged, but the topic is still relevant and on this note in closing enjoy!

Related