Delphi - 关于在Windows 10上运行16位程序集编写sys文件的谣言

时间:2017-09-02 22:44:55

标签: windows delphi assembly driver 16-bit

我听到一个谣言:一个人可以在Delphi 7中运行,写一个驱动程序(Sys文件)并加载它,一个程序,使用IN和OUT指令可以使用主板发出哔哔声,并使它听起来有点旋律。 / p>

有趣的是,在使用Delphi 7 IDE的Windows 10中!

我是否可以运行16位汇编应用程序,Windows 10中的BIOS中断和IN和OUT指令正在写入驱动程序并加载它?怎么样?

1 个答案:

答案 0 :(得分:3)

  

16位汇编

     

编写驱动程序(Sys文件)

你正在混淆两件事:

在16位Windows程序中,可以使用IN和OUT指令以及调用(大多数)BIOS中断。

在某些(或所有?)32位版本的“经典”Windows系列(Win32s,Windows 95,98,ME)中,使用IN和OUT指令甚至可以从32位应用程序中使用。

在“NT”Windows系列(Windows NT,XP,Vista,7,8,10)中,IN和OUT指令只能用于内核驱动程序,而不能用于应用程序。

在这些(“NT”行)Windows版本中根本无法调用BIOS中断。

  

一个程序,使用IN和OUT指令可以使用主板发出的蜂鸣声,并使它听起来有点旋律。

在Windows 95中,许多编程语言都存在类似的程序。

因此很可能这样的程序也存在于Delphi中。

  

我可以在Windows 10中运行16位汇编应用程序吗

据我所知,编写支持64位和16位应用程序的操作系统非常困难。

现代操作系统(Windows,Linux,...)都不再支持16位应用程序。

  

BIOS中断...在Windows 10中

明确答案:否。

我怀疑任何64位操作系统都能调用BIOS中断。

Linux'图形驱动程序有一个80386仿真器(!),它模拟一个80386 CPU来执行显卡的INT 0x10中断,因为对显卡的访问是非常特定于供应商的,因此BIOS(由图形编写)卡供应商)。

  

Windows 10中的IN和OUT指令

对于32位Windows,这种驱动程序可以在互联网上免费下载。

64位Windows版本不支持32位驱动程序,因此您必须找到此驱动程序的64位版本...

顺便说一下

有许多主板(通常在笔记本电脑中找到),不再有任何蜂鸣器了!