I am relatively new to all this low level stuff,assembly language.. and want to learn more detail. Why there is a difference between Linux, Windows Assembly languages?
Historically Linux assembly tends to be done using AT&T syntax, since this is what the GNU Assembler supports. Likewise, Windows assemblers tend to use the Intel syntax, as with MASM and NASM.
All x86 assemblers produce the same output -- that is, x86 machine code. And you can use NASM or the GNU Assembler on Linux to program under Intel syntax, and the GNU Assembler on Windows to program under AT&T syntax.