Есть ли способ вызвать 6502 ассемблерный код из файла C? - PullRequest
0 голосов
/ 03 сентября 2018

Я использую симулятор 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 голосов
/ 04 сентября 2018

Вам необходимо экспортировать его из модуля сборки - с тем же оформлением, которое использует компилятор C:

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

Ссылка на:

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

Возможно, вам также потребуется ознакомиться с соглашениями о вызовах .

...