我正在考虑制作一个在裸 CPU (x86)、32 位保护模式和无操作系统上运行的硬件调试工具。由于时间限制,我不会全部使用 x86 汇编语言编写该工具。我喜欢 Ada 语言(但对此缺乏经验),并且认为在这个项目中使用 Ada 而不是 C 可能会更有趣。

使用 C,我们可以使用内联汇编或调用用汇编编写的子程序来访问 BIOS 来执行键盘 I/O 或在屏幕上显示文本等基本操作。Ada有类似的能力吗?如果是这样,有人知道调用汇编方法并与其链接的任何资源或教程吗?

有帮助吗?

解决方案

您可以在ADA中使用内联装配代码。您需要使用 System.Machine_Code 提供(超载)的软件包 Asm 功能。

其他提示

GNAT 参考手册中有一节介绍 机器代码插入, ,虽然它是 GNAT 特定的,但即使您使用的是不同的编译器,人们也应该能够大致了解它的工作原理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top