The following should not be confused:
- assembly language (abstract idea with various implementations)
- assembler (a program, a kind of compiler (if you want) that implements the language)
- (another specific specific specific specific detail, compare AT & T and Intel syntax for x86 platform).
- instruction sets (different for different CPUs)
The general idea of ββassembly language is one. But its embodiments are numerous and varied (e.g., MASM, TASM, NASM, (G) AS, etc. Etc.). They differ in what processors they support and what sets of commands (under), what functions they support (for example, expressions, macros, support for structured programming, object-binary file formats) and everything that looks like it (syntax, mnemonics, directives, comments).
If you know how to use one assembler for a particular platform, it should not be very difficult to learn another. Similarly, if you know how to write assembler code for one platform, it should not be a big problem to learn how to write asm code for another. All this, of course, is true if you well understand at least one assembler and one set of commands.
source share