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

User Tag List

Страница 13 из 22 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 213

Тема: Компилятор языка Паскаль - планы на будущее

  1. #121
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Уместил demo_z в 48k. Занимает всю доступную память, для уменьшения кода закомментировал анимацию флагов, прописал вручную адреса некоторых переменных, ну и ещё есть несколько мелких костылей.

    demo_z_48k.zip

  2. #121
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #122
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хорошо! Значит, оптимизация нормально идет.
    У тебя еще отсутствует анимация рек, флажков, и часики на фабриках не ходят Ну это так...

  4. #123
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про часики и флажки знаю, надо же было как-то на 48k перейти, поэтому закомментировал. А реки текут, их я не трогал
    Оптимизация да, идёт. "Простые" оптимизации в кодогенераторе закончились, надо теперь "сложные" делать, вроде свёртки констант.

  5. #124
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    версия 0.4
    Оптимизирован кодогенератор.

    examples.tap уменьшился с 14401 до 9732 байт.
    demo_lode_runner.tap уменьшился с 11896 до 6601 байт.
    life.tap уменьшился с 9237 до 5886 байт, длительность итерации сократилась с 60 до 23 секунд.
    demo_z.tap уменьшился с 54656 до 32587 байт и теперь запускается на 48K.

    Не знаю удастся ли уменьшить код ещё в три раза, но потенциал есть. Например оптимизация выражений "A:=A+B", сокращение разрядности вычислений, глобальные переменные, переменные в регистрах, автоматическое вынесение кода в подпрограммы...

    bmpascal_v0.4.zip

  6. #125
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,858
    Спасибо Благодарностей отдано 
    130
    Спасибо Благодарностей получено 
    104
    Поблагодарили
    62 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Фигово, что скомпилированный асм-файл не работает в асме эмулятора EmuZWin. Не понимает он директивы db (ну это легко заменить вручную поиском/заменой), а также всяческие include. Пытался вручную вставить текст из библиотек, но фиг вам.

  7. #126
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну с include понятно что делать, а директива db ему чем не угодила? На что её заменить?

  8. #127
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,041
    Спасибо Благодарностей отдано 
    931
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DEFB
    Если запустить EmuZWin, два раза нажать F12, потом мышкой вопросик в углу, откроется страница помощи.
    Там ещё и про ENTRYPOINT DEFM DEFW DEFS
    DEFG DEFD ENCODE можно почитать.

  9. #128
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А, ну да, DEFB. Я уже в ассемблерах запутался.
    Директива include используется только один раз, для системной библиотеки. Уберу.
    Ассемблер EmuZWin не понимает 0x1234, надо 1234h

    TODO список изменений, необходимых для EmuZWin:
    - заменить строку include ... на текст системной библиотеки;
    - заменить db на defb;
    - заменить числа вида 0x?? на 0??h.

  10. #129
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Ассемблер EmuZWin не понимает 0x1234, надо 1234h
    Можно попробовать ублажить Дениса, он вроде недавно правленую версию с обновлённым ассемблером сотворил.
    Ветка тут.

  11. #130
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    608
    Спасибо Благодарностей отдано 
    70
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    48 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    версия 0.4.1
    Адаптировал под ассемблер EmuZWin.
    demo_z.asm в EmuZWin собирается и запускается.

    Обнаружил две ошибки: не работает оператор NOT и иногда выводятся несуществующие ошибки при вызове подпрограмм с параметрами. То есть на самом деле всё правильно, а компилятор пишет ошибку.
    Ну и на отладочный вывод не обращайте внимание

    Так, стоп. Архив собрал неправильно. И танк не движется в EmuZWin.

    bmpascal_v0.4.1.zip

    - - - Добавлено - - -

    Подскажите правильный ассемблер, который может выдавать листинг после трансляции вот в таком виде:
    Код:
    a120                    label080loop:
    a120 fd 2a e8 82           ld iy,(parentframe1)
    a124 fd 5e f1              ld e,(iy+-15)
    a127 fd 56 f2              ld d,(iy+-14)
    a12a eb                    ex de,hl
    a12b 23                    inc hl
    a12c eb                    ex de,hl
    a12d fd 2a e8 82           ld iy,(parentframe1)
    a131 fd 73 f1              ld (iy+-15),e
    a134 fd 72 f2              ld (iy+-14),d
    Последний раз редактировалось Bolt; 11.06.2018 в 17:14.

Страница 13 из 22 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Пожелания и планы по эмулятору Башкирия-2М
    от b2m в разделе Эмуляторы отечественных компьютеров
    Ответов: 823
    Последнее: 01.07.2019, 21:19
  2. Пожелания и планы по эмулятору MESS
    от shattered в разделе Эмуляторы отечественных компьютеров
    Ответов: 57
    Последнее: 02.08.2017, 22:14
  3. Планы на новые создаваемые игры
    от TomCaT в разделе Игры
    Ответов: 67
    Последнее: 21.03.2012, 14:44
  4. Назад в будущее?
    от Sonic в разделе Оси
    Ответов: 27
    Последнее: 19.07.2005, 16:56

Ваши права

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