有没有办法从C文件调用6502汇编代码?

时间:2018-09-03 01:13:47

标签: c 6502

我正在使用cc65 6502模拟器,该模拟器可以编译6502的代码。我希望将6502代码和C代码链接起来,并生成一个可以执行的二进制文件。

我的C代码“ main.c”:

 #include<stdio.h>
 extern void foo(void);

 int main() {
    foo();
    return 0;
 }

我的6502代码“ foo.s”:

 foo:
      LDA #$00
      STA $0200

代码似乎很简单,但是我只是在尝试实现成功的链接。但是我无法摆脱以下错误:

Unresolved external '_foo' referenced in: main.s(27) ld65: Error: 1 unresolved external(s) found - cannot create output file

1 个答案:

答案 0 :(得分:5)

您需要从汇编模块中导出它-使用C编译器使用的相同修饰:

_foo:
.export _foo
      LDA #$00
      STA $0200

此链接与:

cl65 -t sim6502 main.c foo.s -o foo

您可能还需要查看calling conventions