To my knowledge, there are several types of environment in learning/teaching Assembly Language:
1. Custom 8086/8088 machine
It is used in my university, students do their course project on their own configurable machines.
Students can do programming for their projects on their own GNU/Linux boxes or Macintoshes if NASM is used
2. PC with MS-DOS (actually Microsoft Windows in most case)
Most textbooks I saw use this.
Most students are not interested in DOS, I guess.
NASM does not support Memory Models. I'm not sure about the consequence...
3. PC with Protected Mode OS (GNU/Linux, Mac OS X, Microsoft Windows, ...)
Some books and online documents use this.
Can interest students more, I guess.
How to replace BIOS/DOS interrupts? Call C standard library? I prefer POSIX API, but majority use Microsoft Windows...
I think translating (from 2 to 3) existing textbooks' examples and producing some supplements are better than writing new textbooks. Not every professor really has time to change textbook
Please correct my classification and tell me some widely used textbooks. Maybe I can start doing code examples translation some day.
I'm sorry for not mentioning BSD, BeOS, FreeDOS or other cool Operating Systems...