我想在使用 Turbo C 2.01 编译的 DOS 程序中编写一些内联程序集。当我写

asm {
   nop
}

编译器声称 in-line assembly is not allowed in function ... 。参见:c - 如何使用 Turbo C 2.01 编写内联汇编?-LMLPHP

有任何想法吗?

最佳答案

参见 Turbo C user manual 第 430 页:

我相信您还需要将 -B 选项传递给 TCC(第 455 页)。
或者,您可以将 __emit__(第 103 页)用于作为机器代码而不是汇编助记符输入的相对简单的代码。
不允许在 IDE 中进行内联汇编似乎是一个奇怪的限制。您可能会考虑“升级”到 Turbo C++ 3.0,我认为这确实允许。我会想象 TC++ 会在提供 .c 文件时编译 C 代码,或者可以将 IDE 设置为显式编译 C。也有一个 manual

关于c - 如何使用 Turbo C 2.01 编写内联汇编?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47580731/

10-11 15:31