如何使用 Turbo C 2.01 编写内联汇编?

myt*_*hbu 3 c assembly inline-assembly turbo-c

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

asm {
   nop
}
Run Code Online (Sandbox Code Playgroud)

编译器声称in-line assembly is not allowed in function .... 看:内联汇编错误 Turbo C 2.01

有任何想法吗?

Cli*_*ord 5

请参阅Turbo C 用户手册第 430 页:

不允许内联汇编

您的源文件包含内联汇编语言语句,并且您正在集成环境中编译它。您必须使用 TCC 命令来编译此源文件。

我相信您还需要将-B选项传递给 TCC(第 455 页)。

或者,您可以使用__emit__(第 103 页)作为机器代码而不是汇编助记符输入的相对简单的代码。

不允许在 IDE 中进行内联汇编似乎是一个奇怪的限制。您可能会考虑“升级”到 Turbo C++ 3.0,我认为这确实允许。我会想象 TC++ 会在提供 .c 文件时编译 C 代码,或者可以将 IDE 设置为显式编译 C。也有一本手册

  • 是的,内联汇编语法未被标准化是他的*下一个*问题。 (2认同)