Важная информация

User Tag List

Показано с 1 по 10 из 111

Тема: Кросскомпилятор Си под 8080

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #21

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Замена for(a;b;c) на a; do ... c; while(b); ? Я не думал об этом, так как это может сделать программист, но сделаем.

    ---------- Post added at 01:15 ---------- Previous post was at 01:10 ----------

    Цитата Сообщение от predatoralpha Посмотреть сообщение
    И боюсь, ещё не раз придётся всё переписать...
    Слово переписывтаь не совсем корректное. Я сейчас подключаю новые блоки поверх простых конструкций. Расширяем

    Можно было бы давно оставить в покое кодогенератор, добить синтаксис Си, добавить оптимизатор. Но хочется, что бы потом пальцем не показывали, что бы компилятор работал на уровне или даже лучше компиляторов для Z80.

    ---------- Post added at 01:31 ---------- Previous post was at 01:15 ----------

    Цитата Сообщение от predatoralpha Посмотреть сообщение
    Нужно на каждую переменную вести её последнее значение, на этапе компиляции анализировать условия (y<8 в данном случае).
    Это будет отдельный блок компилятора. Сначала программа сваливается в буфер. Я для этого удобный способ офомил: w.ld_hl_ref(b).ld_d_HL().ld_a_c();

    А уже потом, несколько алгоритмов оптимизации будут сверху-вниз и снизу-верх обрабатывать программу.

    ---------- Post added at 03:18 ---------- Previous post was at 01:31 ----------

    Добавил замену команды LD A на INC A, DEC A в зависимости от состояния A. Вам очень этого хотелось Еще добавлю CPL туда же и для всех регистров сделаю. Сделал нормальную поддержку операторов && || !

    Надо еще расписать все варианты для 16-битной арифметики.

    Код:
    startGame:
      push bc
      ; 375 enemyCount     = 0;
      xor a
      ld (enemyCount), a
      ; 376 playerX        = SPRITE_WIDTH;
      ld a, 4
      ld (playerX), a
      ; 377 playerY        = SPRITE_HEIGHT;
      ;o a=4
      ld (playerY), a
      ; 378 gameOver       = 0;
      xor a
      ld (gameOver), a
      ; 379 fireSize       = 2;
      ld a, 2
      ld (fireSize), a
      ; 380 fireMax        = 2;
      ;o a=2
      ld (fireMax), a
      ; 381 bombCount      = 0;
      xor a
      ld (bombCount), a
      ; 382 prevFire       = 1;
      inc a ;o a=1
      ld (prevFire), a
      ; 383 gameOver       = 0;
      xor a
      ld (gameOver), a
      ; 385 memset(map1, 0xFF, MAP_WIDTH*MAP_HEIGHT);
      ld hl, map1
      ld (memset_dest), hl
      dec a ;o a=255
      ld (memset_v), a
      ld hl, 208
      call memset
      ; 386 memcpy(map, lvd, MAP_WIDTH*MAP_HEIGHT);
      ld hl, map
      ld (memcpy_dest), hl
      ld hl, lvd
      ld (memcpy_src), hl
      ld hl, 208
      call memcpy
      ; 387 memset(times, 0, MAP_WIDTH*MAP_HEIGHT);
      ld hl, times
      ld (memset_dest), hl
      xor a
      ld (memset_v), a
      ld hl, 208
      call memset
      ; 389 p = map;
    Последний раз редактировалось vinxru; 22.09.2012 в 03:21.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ассемблер 8080
    от Kakos_nonos в разделе Утилиты
    Ответов: 0
    Последнее: 21.09.2011, 23:35
  2. Продам пару платок с процами 8080
    от RedLine в разделе Барахолка (архив)
    Ответов: 15
    Последнее: 23.12.2010, 18:39
  3. схема АОН на 8080/z80
    от sergey2b в разделе Разный софт
    Ответов: 7
    Последнее: 07.02.2010, 22:43
  4. An 8080/Z80 C Compiler
    от breeze в разделе Программирование
    Ответов: 1
    Последнее: 18.08.2005, 06:54

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •