我最近发现64位窗口不会运行16位应用程序(在这种情况下为.com),因为64位窗口没有16位子系统(或者互联网上说的那样).当我尝试执行一个调用EDIT的.bat文件时,我遇到了这个问题.
我对x86程序集有很多经验,但从未编写程序在windows(或任何其他操作系统)下运行.由于x86系列的向后兼容性,我从来没有真正关注我的程序有多少.只要它没有使用程序必须运行的CPU中没有引入的指令,就可以了.
我的问题是:究竟是什么使代码16,32或64位,是什么触发了16位应用程序显然具有的不兼容问题?
有可能拆卸小型16位应用程序并改变一点以使其正常工作,还是真的不明智?
更新:我不是在寻找一种方法来运行这些类型的应用程序,即通过模拟器或其他程序,我可以自己解决.我只想了解使Windows接受或拒绝程序的基础机制.
我写了一个小的16位汇编程序,它在一些内存位置写入了一些值.有没有办法可以在Linux上以32位保护模式测试它?