此代码将打印“Hello,world!”在DOS中作为.COM
可执行文件:
org 100h
mov dx,msg
mov ah,9
int 21h
mov ah,4Ch
int 21h
msg db 'Hello, world!',0Dh,0Ah,'$'
然而,它不会在Windows 10 64位上运行,我见过的x86
和x64
的Helloworld程序的所有简单示例都涉及链接到某个库。
所以我的问题是,这些更高版本的Windows是否仍遵循ISR IO模型或更简单地如何将此示例转换为“更高位”?
答案 0 :(得分:1)
您不仅不能在Windows 10中这样做,而且实际上在任何以受保护模式运行应用程序的Windows(Windows NT 3和更高版本)中都不能这样做 - 应用程序无法直接访问中断和HW。此外,可执行格式本身依赖于操作系统。虽然有一些向后兼容性(例如Win10应该能够运行Win7应用程序),但它定义不会延伸到DOS天(根据定义,.COM格式仅限于Real模式,在Win NT 3之前死亡)。 / p>
没有直接的方法将此代码转换为Win10兼容。您需要使用OS提供的API来访问中断/ HW。