Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How many assembly languages are there [closed]

Tags:

x86

assembly

I was reading this article on wikipedia about list of assmeblies

http://en.wikipedia.org/wiki/List_of_assemblers

turns out there are alot of assembly languages out there.. so for example if u learn the Yasm assembly language, would be hard to read the TCCASM code? is it like completely different than all the other asem.. languages? I wana learn this language but i dont know which one to choose.. if u could recommend some good books for novice programers that covers assembly x86 in general i would be more than grateful

like image 240
John Sly Avatar asked Sep 07 '12 20:09

John Sly


1 Answers

You should not confuse the following:

  • assembly language (abstract idea with different implementations)
  • assembler (a program, a kind of a compiler (if you will) that implements the language)
  • syntax (yet another implementation-specific detail; compare AT&T and Intel syntaxes for the x86 platform)
  • instruction sets (different for different CPUs)

The general idea of the assembly language is one. But its embodiments are many and different (e.g. MASM, TASM, NASM, (G)AS, etc etc). They differ in what CPUs they support and what instruction (sub)sets, what features they support (e.g. expressions, macros, support for structured programming, object/binary file formats) and what it all looks like (syntax, mnemonics, directives, comments).

If you know how to use one assembler for a specific platform, it shouldn't be very hard to learn another one. Likewise, if you know how to write assembly code for one platform, it shouldn't be much of a deal to learn to write asm code for another one. All that, of course, is true if you have a good understanding of at least one assembler and one instruction set.

like image 166
Alexey Frunze Avatar answered Oct 11 '22 08:10

Alexey Frunze