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
![Smiley :)](http://forum.nasm.us/Smileys/default/smiley.gif)
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...