这是整个装配程序:
.model small
.stack 256
.code
start:
call printer
mov ax, 3 ; store 3 into ax
mov ah, 76 ; back to DOS
mov al, 0 ; no errors
int 21h ; interupt -> DOS
end start
Run Code Online (Sandbox Code Playgroud)
这就是我定义C函数的地方printer
#include <stdio.h>
void printer()
{
printf("Hello!\n");
}
Run Code Online (Sandbox Code Playgroud)
编译汇编代码时,出现错误:undefined symbol: printer.在C我做的时候#include "file.h",我如何在这里获得相同的结果?
问题不在于编译,而在于链接.您必须链接(ld在Unix/Linux上使用if)您的可执行文件,包括带有汇编代码的目标文件和带有C代码的目标文件.
或者使用"asm"块将汇编代码放入C文件中.