2

我正在做一个比较不同编程语言的课程项目。是否可以在 Forth 语言中使用 BIOS 中断?我似乎找不到任何这样的信息。如果是这样,那会是什么例子?

4

1 回答 1

5

我认为您错误地认为那里有一个包罗万象的“Forth”。没有。有许多 Forth 实现。那些运行“基本系统”(没有操作系统)或在 DOS 下运行的程序当然可以被诱骗访问 BIOS API。那些在 32 位或 64 位操作系统(如 Windows 或 Linux)下运行的操作系统不太可能提供此类功能,因为操作系统使得一开始就很难运行 BIOS API。

在 Windows 下运行时,使用 16 位 BIOS API(与在不运行 BIOS 代码的情况下读取数据相反)很麻烦。现代 BIOS 还提供 32 位 API,但在所有情况下,您都受限于可以访问的硬件(无)——这是由操作系统而非 BIOS 代码强制执行的。

一般来说,BIOS API 很繁琐,当您有一个成熟的操作系统可供您使用时,使用它们是没有意义的。

现在,如果您不太关心 BIOS 调用是访问真实硬件还是模拟硬件,您当然可以使用 Forth 访问DOSBox之类的东西并在模拟硬件上运行真实 BIOS。哎呀,DOSBox提供了自己的BIOS实现:)

于 2014-07-20T16:39:58.767 回答