MASM and TASM are assemblers for x86 architecture, the job of assembler is to convert the assembly language program to machine language. As far as differences are concerned its just a two different ways of doing same thing.
The code generated by these assembler can be executed only on the processor architecture they are designed for thats why MASM and TASM can be used only for x86 processors.
pay attention to read the suitable version of the book. IIRC, it has DOS version, Linux version, and Windows version. There are differences to implement your assembly code among these OSes. For example, if you use TASM and developing your program under DOS, then read the DOS version of the Art of Assembly pointed to by the link above, because it explains the DOS specific programming issues that very likely is not available in the other edition of Art of Assembly.
not much actually because the command prompt in windows environment runs on Virtual-8086 mode. However, there will be some problems if you are accessing some parts of the hardware that's not available in that mode or being prevented by Windows. I mean Windows regard the execution of the code as access violation.