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

User Tag List

Страница 21 из 91 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя
Показано с 201 по 210 из 907

Тема: Мощная среда ZXDev для разработки НА ПЯТИ ЯЗЫКАХ для ZX готова к тестированию

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

    По умолчанию

    А ты уверен, крыска, что они есть - те настройки SDCC, качество кода с которыми тебе бы понравилось?

    В любом случае, идеи по кодогенерации можно и нужно двигать в SDCC. Этот модуль выиграл бы и от модели передачи параметров fastcall (в регистре/ах), и оттого, что не сохранял бы на стеке ix, и даже если бы не возвращал 0 в hl при выходе. Но придраться всегда будет к чему, я вас уверяю. Идеал почти недостижим.

  2. #202
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    286
    Поблагодарили
    214 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    Cool

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А ты уверен, крыска, что они есть - те настройки SDCC, качество кода с которыми тебе бы понравилось?
    А ты помолчи, дурачок, не с тобой разговариваю.

    В любом случае, идеи по кодогенерации можно и нужно двигать в SDCC. Этот модуль выиграл бы и от модели передачи параметров fastcall (в регистре/ах), и оттого, что не сохранял бы на стеке ix, и даже если бы не возвращал 0 в hl при выходе. Но придраться всегда будет к чему, я вас уверяю. Идеал почти недостижим.
    ага за исключением пары нюансов.
    1 скорость получаемого кода должна быть приемлемой, а не минимальной.
    2 http://zx.pk.ru/showthread.php?t=21895 сколько еще таких "оптимизаций" зарыто в кодогенераторе?
    С уважением,
    Jerri / Red Triangle.

  3. #203
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,627
    Спасибо Благодарностей отдано 
    2,211
    Спасибо Благодарностей получено 
    143
    Поблагодарили
    109 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Скорость не страдает! Размер выигрывает! 185 байт, кто меньше?

    Код:
    _main_start::
    _main:
    ;ASCII.c:20: ASCII_n = 96;
    	ld	hl,#_ASCII_n + 0
    	ld	(hl), #0x60
    ;ASCII.c:21: do {
    00101$:
    ;ASCII.c:22: Console_WriteCh((CHAR)((96 - ASCII_n) + 32));
    	ld	hl,#_ASCII_n
    	ld	a,#0x80
    	sub	a, (hl)
    	push	af
    	inc	sp
    	call	_Console_WriteCh_ROM
    	inc	sp
    ;ASCII.c:23: ASCII_n -= 1;
    	ld	iy,#_ASCII_n
    	dec	0 (iy)
    ;ASCII.c:24: } while (!(ASCII_n == 0));
    	ld	a,(#_ASCII_n + 0)
    	or	a, a
    	jr	NZ,00101$
    ;ASCII.c:25: __FINI;
    	ret
    _main_end::
    ( что менял? добавил опцию --no-std-crt0, убрал в конце return 0 в пользу return; --oldralloc убрал тоже - не всегда помогает )

    Итого: бинарь ASCII.bin = 47 байт. И это, заметьте, для тех, кто может не знать асма. Воистину: ZXDev - кладезь неисчерпаемых возможностей.

  4. #204
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    286
    Поблагодарили
    214 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Если компилер жив и если стиль работы над ним таков же - ошибки будут, куда деваться.

    Скорость не страдает! Размер выигрывает! 185 байт, кто меньше?

    Код:
    _main_start::
    _main:
    ;ASCII.c:20: ASCII_n = 96;
    	ld	hl,#_ASCII_n + 0
    	ld	(hl), #0x60
    ;ASCII.c:21: do {
    00101$:
    ;ASCII.c:22: Console_WriteCh((CHAR)((96 - ASCII_n) + 32));
    	ld	hl,#_ASCII_n
    	ld	a,#0x80
    	sub	a, (hl)
    	push	af
    	inc	sp
    	call	_Console_WriteCh_ROM
    	inc	sp
    ;ASCII.c:23: ASCII_n -= 1;
    	ld	iy,#_ASCII_n
    	dec	0 (iy)
    ;ASCII.c:24: } while (!(ASCII_n == 0));
    	ld	a,(#_ASCII_n + 0)
    	or	a, a
    	jr	NZ,00101$
    ;ASCII.c:25: __FINI;
    	ret
    _main_end::
    ( что менял? добавил опцию --no-std-crt0, убрал в конце return 0 в пользу return; --oldralloc убрал тоже - не всегда помогает )

    Итого: бинарь ASCII.bin = 47 байт. И это, заметьте, для тех, кто может не знать асма. Воистину: ZXDev - кладезь неисчерпаемых возможностей.
    похвально, но опять имеем использование IY

    выделенное жирным можно заоптимизоровать до
    ld hl,#_ASCII_n
    dec (hl)

    ld a,(hl)
    ?
    Будет вообще 42 байта.
    С уважением,
    Jerri / Red Triangle.

  5. #205
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,627
    Спасибо Благодарностей отдано 
    2,211
    Спасибо Благодарностей получено 
    143
    Поблагодарили
    109 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да конечно можно, но не вручную же этим заниматься? Пусть SDCC сам это делает.

    Такие идеи надо двигать Филиппу Краузе. Мне порой жаль, что нельзя взять маленький понятный участок оптимизации и дописать его самому. В идеале надо бы разработать скриптовый язык, на котором можно было бы описывать разные случаи оптимизации. Но это конечно сложновато.

    Да, кстати, я давно не обновлял версию SDCC в ZXDev. Остановился на той, которая показалась мне наиболее стабильной - она собирает "Дурака" и "Dash" без ошибок, а там довольно много кода.

    Может более новая версия SDCC даст код получше?

  6. #206
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    286
    Поблагодарили
    214 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Да конечно можно, но не вручную же этим заниматься? Пусть SDCC сам это делает.
    Можно ли вообще запретить компилятору использование индексных регистров?

    просто даже вот этот кусок
    Код:
    	ld	a,#0x7F
    	ld	iy,#_ASCII_n
    	cp	a, 0 (iy)
    	ld	a,#0x00
    	ld	iy,#_ASCII_n
    	sbc	a, 1 (iy)
    	jp	PO, 00114$
    без использования IY смотрелся бы лучше.

    Такие идеи надо двигать Филиппу Краузе. Мне порой жаль, что нельзя взять маленький понятный участок оптимизации и дописать его самому. В идеале надо бы разработать скриптовый язык, на котором можно было бы описывать разные случаи оптимизации. Но это конечно сложновато.

    Да, кстати, я давно не обновлял версию SDCC в ZXDev. Остановился на той, которая показалась мне наиболее стабильной - она собирает "Дурака" и "Dash" без ошибок, а там довольно много кода.
    Может более новая версия SDCC даст код получше?
    не факт http://zx.pk.ru/showthread.php?t=21895
    но кто знает.
    С уважением,
    Jerri / Red Triangle.

  7. #207
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    тут сам принцип - не писать на асме а программировать на ЯВУ.
    я уж забыл, какой компилятор Си брал, но получил на выходе такое, что волосы дыбом встали. асм - ближе и роднее

  8. #208
    Veteran Аватар для Oleg N. Cher
    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,627
    Спасибо Благодарностей отдано 
    2,211
    Спасибо Благодарностей получено 
    143
    Поблагодарили
    109 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    Можно ли вообще запретить компилятору использование индексных регистров?
    iy - можно. ix, насколько я знаю, нет.

    Цитата Сообщение от jerri Посмотреть сообщение
    просто даже вот этот кусок без использования IY смотрелся бы лучше.
    Согласен. Но запрещение использования iy в данном случае не даёт выигрыша (по размеру кода).

    В общем-то можно долго говорить о том, что SDCC даёт код похуже, чем ручное кодирование программистом. Это так, ничего не поделаешь.

  9. #209
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,752
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    286
    Поблагодарили
    214 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    я уж забыл, какой компилятор Си брал, но получил на выходе такое, что волосы дыбом встали. асм - ближе и роднее
    IAR как говорят выдает приемлемый код, но он платный и очень дорогой.

    ---------- Post added at 15:43 ---------- Previous post was at 15:38 ----------

    http://zx.pk.ru/showthread.php?t=1408 вот тут кстати еще обсуждали С
    С уважением,
    Jerri / Red Triangle.

  10. #210
    Master
    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    552
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    39 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    IAR выдаёт код компактнее в 2-3 раза подделок типа SDCC, но ветка для Z80 не развивается и купить его невозможно. И 170 Евро c девбордой- это для такого рода продуктов практически бесплатно.
    Последний раз редактировалось haywire; 19.05.2014 в 15:50.

Страница 21 из 91 ПерваяПервая ... 171819202122232425 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. мощная игрушка
    от ZEman в разделе Игры
    Ответов: 129
    Последнее: 23.03.2024, 17:05
  2. Ответов: 5
    Последнее: 20.06.2011, 03:18
  3. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48

Метки этой темы

Ваши права

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