这主要是兼容性问题,DOS一般采用的是16进制的模式,而你编译出的exe则是32位模式下直接运行的程序,所以不能运行。
exe文件运行机制比较复杂,如果你只是一小段代码,仅使用64K之内的内存,没有代码段、数据段的区别,就编译成com文件
你的MASM不行,换一个版本或者重装。