我正在学习汇编,才知道你不能从 32 位 linux 运行 16 位读取模式代码。您必须设置适当的环境才能从 32 位 Linux 运行 16 位代码。
所以我在 Ubuntu 上安装了 DOSBOX 并且能够运行 16 位代码,但我现在遇到了另一个问题。我想使用printf
DOSBOX 中的功能。下面是代码:
section .data
x dw "value is =%d"
section .text
extern printf
global main
main:
push x
call printf
add sp,2
ret
但是当我组装这段代码时,我收到以下错误:
binary output format does not support external references
现在我想知道printf
在 DOSBOX 环境中调用的正确方法是什么。