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.