Цитата Сообщение от EARL Посмотреть сообщение
Еще не делал. Однако это позволит делать inline подстановки на асме прямо в код Си. Можно даже дизассемблер туда пристроить
насколько я знаю есть binutils с поддержкой z80
сейчас буду искать

---------- Post added at 20:56 ---------- Previous post was at 19:55 ----------

В общем так.

1. Собрал binutils-2.22.tar.bz2
./configure --prefix=$PREFIX --target=z80-unknown-coff --disable-static --with-gnu-ld --with-gnu-as --enable-install-libbfd --disable-werror

(Опции нагло взяты из дебианоского скрипта)

2. Попытался откомпилировать программу на ассемблере, полученную clang'ом.

НИ ФИГА НЕ ВЫШЛО!

Причина: Неверно работает кодогенератор:

Исходный код.
Код:
int a;

int b;

int c;

int main(int argc, char* argv[]){
        c = a+b;
        return(0);
}
Полученный ассемблер (оптимизация -Os)

Код:
.file   "test.c"
        .text
        .globl  main
        .type   main,@function
main:
        push    ix
        push    de
        push    bc
        ld      ix, 0
        add     ix, sp
        ld      sp, ix
        ld      hl, b
        inc     hl
        ld      b, (hl)
        ld      a, (b)
        ld      c, a
        ld      hl, a
        inc     hl
        ld      d, (hl)
        ld      a, (a)
        ld      e, a
        ld      h, b
        ld      l, c
        add     hl, de
        ld      b, h
        ld      c, l
        ld      hl, c
        inc     hl
        ld      (hl), b
        ld      a, c
        ld      (c), a
        ld      hl, 0
        pop     bc
        pop     de
        pop     ix
        ret
.tmp0:
        .size   main, .tmp0-main

        .type   a,@object
        .comm   a,2,1
        .type   b,@object
        .comm   b,2,1
        .type   c,@object
        .comm   c,2,1
Обрати внимание на команды:

Код:
        ld      hl, b
...
        ld      hl, a
...
        ld      a, (a)
Без оптимизации картина та же.

Надо бы привести генерируемые команды к стандарту, пониемому бинутилсами.
тогда будем тестить дальше, уже на реале.