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

User Tag List

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

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

  1. #11
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    346
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Оценили — плотность кода выше, чем на асме? Удобнее, больше кода помещается, легче читать и воспринимать. Именно для этого нужны такие над-ассемблеры.
    По плотности кода: одна строка расширенного синтаксиса обычно может заменить от одной до трёх ассемблерных инструкций (а в случае больших if-ов или вызова функций со множеством аргументов - намного больше).
    Пара реальных примеров:
    1. декомпилированная прошивка контроллера клавиатуры Caro: 770 строк чистого ассемблера сократилось до 550 (20кб -> 15кб)
    2. прошивка частотомера: 2700 строк сократилось до 2000 (57кб -> 48кб)

    Но главное тут, кмк, даже не в количестве строк. Лично меня больше всего убивало писать руками передачу аргументов через регистры при вызове функции - приходилось держать в памяти назначение регистров и скакать туда-сюда по коду - от объявления функции до места её вызова (и при чтении этого кода потом также придётся постоянно переключаться). Сейчас стало гораздо проще и писать и читать код. Под спойлером - функция рисования окружности, теперь она почти умещается на один экран)

    Скрытый текст

    [свернуть]

  2. #12
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  3. #13
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    346
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  4. #14
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

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

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

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

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

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

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

  6. #16
    Activist Аватар для Trol73
    Регистрация
    07.05.2015
    Адрес
    г. Ульяновск
    Сообщений
    346
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    24 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

  8. #17
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,593
    Спасибо Благодарностей отдано 
    2,158
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    96 сообщений
    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 Посмотреть сообщение
    С-- им не поможет. Основные оптимизации в компиляторе не сложно и не долго делать разработчику компилятора без всяких больших коллективов.
    Такие оптимизации вещь конечно хорошая, но всё равно приличный компилятор малыми силами не сделать. И не спорь.

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

    По умолчанию

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

  10. #19
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,593
    Спасибо Благодарностей отдано 
    2,158
    Спасибо Благодарностей получено 
    130
    Поблагодарили
    96 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Тесты где-то выкладывал Vitamin тут на форуме, правда давно
    Вот, нашел: http://zx-pk.ru/threads/4110-yazyki-...ll=1#post65499
    Смотреть это сообщение и далее на несколько страниц.
    Последний раз редактировалось Andrew771; 18.04.2018 в 17:52.

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

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

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

Эту тему просматривают: 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

Ваши права

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