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?
Unless you are using an embedded system development environment, you are compiling with compilers that are targeted to a particular runtime. That runtime defines the conventions for the use of the hardware: argument passing, exception handling, etc. These conventions interact with the operating system, or at least with the available runtime libraries that the program needs to link with.