User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 41

Тема: Sphinx C-- для Z80

Комбинированный просмотр

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

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    Тогда как вызывать фрагменты ассемблера? музыку, например.
    С-- позволяет свободно сочетать Си-шный код с ассемблерным. Прямо в ассемблерном коде могут быть Си-шные конструкции и наоборот. При этом, в Си-шном коде можно обращаться с регистрами как с обычными переменными.

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

  3. #2

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Шынни Посмотреть сообщение
    Тогда как вызывать фрагменты ассемблера? музыку, например.
    Легко. Просто пишешь: $асм-инструкция
    Код:
    : void DEOLN() {
        DL = 0x0D;
        AH = 2;
        $int 21h
        DL = 0x0A;
        AH = 2;
        $int 21h
    }
    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Тогда С-- и ЯВУ - разные весовые категории.
    Согласен. Никто ведь и не утверждал, что C-- это ЯВУ.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    На Спеке ЯВУ для тех, кто не знает, не хочет знать Ассемблер или неохота/нет времени на нем писать.
    На Спеке доступность ЯВУ это доступность Бейсика в ПЗУ. Можно на нём накорябать что-то. Серьёзный ЯВУ типа Си/SDCC или Оберон - недоступен из ПЗУ. А значит для его освоения нужны стимулы и понимание, зачем нужно именно это средство. У нас в сообществе в основном мнение такое, что нафиг надо, лучше асма ничего нет. И написать что-то серьёзное для Спека без знания асма невозможно даже на ЯВУ. Разве что будет действовать команда: кодер прикладного слоя, не знающий асма, и кодер-системщик, который будет ему подгонять реализацию процедур на асме. Хотя это тоже исключает разработку без знания асма. И я никогда не встречал такого работающего тандема.

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    С-- им не поможет. Основные оптимизации в компиляторе не сложно и не долго делать разработчику компилятора без всяких больших коллективов.
    Такие оптимизации вещь конечно хорошая, но всё равно приличный компилятор малыми силами не сделать. И не спорь.

  4. #3

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Такие оптимизации вещь конечно хорошая, но всё равно приличный компилятор малыми силами не сделать. И не спорь.
    Нужно понять, насколько приличный. Для Спека тоже есть компили с оптимизациями. Тесты где-то выкладывал Vitamin тут на форуме, правда давно.
    SDCC, который ты используешь для Оберона, приличный?

  5. #4

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Видишь ли, есть языки, в которых оптимизацию можно тонко описывать руками. Дубовый компилятор, изощрённый программист, хитрый и малопонятный код. К таким языкам я бы отнёс PL/M, ну и конечно C--

    В противовес этому — умный и изощрённый компилятор, тупой программист, тупой "в лоб" код.

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    C-- совсем другой язык, несовместимый с Си и более низкоуровневый. Типа PL/M, но на базе Си. Я бы сказал, что на нём можно легко писать демки заместо асма. На Hitech C вряд ли кто-то захочет писать демки (или игры).

    Trol73, респект! Оценили — плотность кода выше, чем на асме? Удобнее, больше кода помещается, легче читать и воспринимать. Именно для этого нужны такие над-ассемблеры.
    Тогда С-- и ЯВУ - разные весовые категории. На Спеке ЯВУ для тех, кто не знает, не хочет знать Ассемблер или неохота/нет времени на нем писать. С-- им не поможет. Основные оптимизации в компиляторе не сложно и не долго делать разработчику компилятора без всяких больших коллективов.

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

    На Асме кстати тоже быдлокод можно писать, рассказываю как, тут

  6. #5

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а чем С-- лучше Hitech C ?

  7. #6

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тоже давно хотел иметь компилятор C-- подобного языка для Z80.
    После долгих колебаний начал делать свой велосипед для AVR. Цель была не в том, чтобы поддержать весь синтаксис С--, а только те конструкции, которые хорошо ложатся на систему команд. Т.е., хотелось, чтобы при взгляде на код было сразу более-менее понятно, в какие инструкции он будет скомпилирован. И, если какую-то конструкцию не получается скомпилировать в простой компактный код, то она не поддерживается. Сейчас есть поддержка функций с аргументами, условий и циклов. Ну и простая арифметика с регистрами.
    Работает это штука как препроцессор кода, создавая на выходе ассемблерный файл.
    Проект написана на яве, исходники на гитхабе: https://github.com/trol73/avr-asm-ext
    Некоторое незаконченное (и уже устаревшее) описание попытался изобразить: http://trolsoft.ru/soft/avr-asm-ext (там в конце ссылки на пару примеров проектов на языке).
    Проект сыроват, но уже вполне рабочий. Писать код стало ощутимо проще (чем на ассемблере), читать - тем более. Скорость выполнения и размер, при этом, ничем не уступают чистому ассемблеру. Качество кода (если он не совсем тривиален) местами получается ощутимо более высоким, чем у GCC, не смотря на все его оптимизации.
    Надеюсь довести проект до ума и потом делать форк для Z80.

  8. #7

    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,450
    Записей в дневнике
    42
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    162
    Поблагодарили
    119 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Это уже интересно.

  9. #8

    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    352
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    26 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Допустим, кто-то хочет написать для спека что-то более-менее серьёзное. Для этого надо выбрать язык программирования. Если выбрать ассемблер, то есть риск, что проект в какой-то момент станет слишком сложным и неуправляемым (т.е., затраты времени и сил станут неприемлимыми для любительского проекта, который just for fun). Если выбрать ЯВУ, то кодить будет намного проще, но есть опасение получить в итоге *****код, не позволяющий достичь нужной производительности и компактности.
    С-- хорош тем, что можно начинать писать код на ЯВУ (вообще не зная ассемблера), в процессе заглядывая в генеримый ассемблерный листинг и оптимизируя код по мере изучения ассемблера и/или выявления существенных неоптимальных моментов. При этом будет сложнее закончить тем, что код невозможно поддерживать в силу его чрезмерной сложности или плохой оптимизации.

  10. #9

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не вполне удовлетворён качеством машкода от SDCC, но лучше ведь ничего нету. Или писать на ЯВУ и мириться с таким кодом, или использовать что-то вроде Sphinx C--, который ещё для Z80 нужно адаптировать.

  11. #10

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,711
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Добавлю ещё пару ссылок на сравнение Си-компайлеров:

    https://www.z88dk.org/wiki/doku.php?...ont#benchmarks
    http://www.cpcmania.com/Docs/Program..._and_speed.htm

    Но мы отклоняемся от темы. Всё-таки оптимизация компилятором и оптимизация руками - это несколько разные вещи. Как и высокоуровневый и низкоуровневый код.

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. LLVM Backend для Z80
    от EARL в разделе Программирование
    Ответов: 124
    Последнее: 21.01.2024, 07:59
  2. Ищу Си для Z80
    от AlexBel в разделе Программирование
    Ответов: 376
    Последнее: 12.08.2018, 19:37
  3. Z80 симулятор для PROTEUS'а ...
    от Robus в разделе Эмуляторы
    Ответов: 9
    Последнее: 09.04.2015, 06:44
  4. Компилятор С и ASM для Z80 на C#
    от ZXMAK в разделе Софт
    Ответов: 28
    Последнее: 18.11.2014, 16:31
  5. Машина Тьюринга для Z80
    от ZXMAK в разделе Эмуляторы
    Ответов: 4
    Последнее: 15.08.2011, 03:26

Ваши права

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