User Tag List

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 62

Тема: Если бы у Медноногова был БК ?..

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

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

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

    По умолчанию

    Так делать можно и нужно. Не сочтите за труд и дайте пример Вашему несвязному обвинению. Разрядность чего не совпадёт с разрядностью чего? А то: не знал к чему придраться, но придрался. Просто из вредности.

    Никакого несовпадения разрядности не будет. На момент передачи параметров таким образом компилятор прекрасно знает список параметров и их разрядность.

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

    Да, очень рад за Вас, что Вы прекрасно знаете Си. Поучите меня сирого, а то не знал к кому податься)

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

  3. #2

    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    43 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    > Никакого несовпадения разрядности не будет. На момент передачи параметров таким образом компилятор прекрасно знает список параметров и их разрядность.

    Может не знать. Тело функции может быть в совершенно другом модуле, скомпилированным даже не этим компилятором. Передача параметров через стек в С абсолютно стандартна и подобных фокусов не допускает. Более того, экономия одного байта на стеке весьма сомнительна относительно разрастанию кода и уменьшению быстродействия. Ни один компилятор так не делает.
    Последний раз редактировалось haywire; 16.12.2021 в 21:28.

  4. #3

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

    По умолчанию

    Хых. Знаете ли, уважаемый, если Вы перепутаете количество и последовательность параметров, то у Вас любая программа на этом вылетит. Это не недостаток SDCC и уж точно не недостаток такого способа передачи.

    Если придерживаться "стандартных" для PDP-11 способов вызова, то надо забыть про Z80 и про подходы для улучшения оптимальности. Напрочь. Но я понимаю, Вы выступаете в защиту сишного бардака. С этим я спорить не буду, бардака конечно хватает.

    Дело, кстати, не в экономии байта на стеке. Дело больше в экономии кода и улучшении скорости при снятии параметров.

    Сожалею, что Вас задел. Идите с миром.

  5. #4

    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    43 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    IAR код в 2 раза более компактный генерирует

    1854 j = c1 = c2 = c3 = c4 = c5 = c8 = 0;
    \ 382B 010000 LD BC,0
    \ 382E 69 LD L,C
    \ 382F 60 LD H,B
    \ 3830 221201 LD (?0010+274),HL
    \ 3833 ED431401 LD (?0010+276),BC
    \ 3837 220E01 LD (?0010+270),HL
    \ 383A ED431001 LD (?0010+272),BC
    \ 383E 220A01 LD (?0010+266),HL
    \ 3841 ED430C01 LD (?0010+268),BC
    \ 3845 220601 LD (?0010+262),HL
    \ 3848 ED430801 LD (?0010+264),BC
    \ 384C 220201 LD (?0010+258),HL
    \ 384F ED430401 LD (?0010+260),BC
    \ 3853 22FE00 LD (?0010+254),HL
    \ 3856 ED430001 LD (?0010+256),BC
    \ 385A 221A01 LD (?0010+282),HL
    \ 385D ED431C01 LD (?0010+284),BC
    \ 3861

    // 54 байта

    14528 ;bank2.c:1844: j = c1 = c2 = c3 = c4 = c5 = c8 = 0;
    006160 AF [ 4]14529 xor a, a
    006161 DD 77 CD [19]14530 ld -51 (ix), a
    006164 DD 77 CE [19]14531 ld -50 (ix), a
    006167 DD 77 CF [19]14532 ld -49 (ix), a
    00616A DD 77 D0 [19]14533 ld -48 (ix), a
    00616D AF [ 4]14534 xor a, a
    00616E DD 77 D1 [19]14535 ld -47 (ix), a
    006171 DD 77 D2 [19]14536 ld -46 (ix), a
    006174 DD 77 D3 [19]14537 ld -45 (ix), a
    006177 DD 77 D4 [19]14538 ld -44 (ix), a
    00617A AF [ 4]14539 xor a, a
    00617B DD 77 D5 [19]14540 ld -43 (ix), a
    00617E DD 77 D6 [19]14541 ld -42 (ix), a
    006181 DD 77 D7 [19]14542 ld -41 (ix), a
    006184 DD 77 D8 [19]14543 ld -40 (ix), a
    006187 AF [ 4]14544 xor a, a
    006188 DD 77 D9 [19]14545 ld -39 (ix), a
    00618B DD 77 DA [19]14546 ld -38 (ix), a
    00618E DD 77 DB [19]14547 ld -37 (ix), a
    006191 DD 77 DC [19]14548 ld -36 (ix), a
    006194 AF [ 4]14549 xor a, a
    006195 DD 77 DD [19]14550 ld -35 (ix), a
    006198 DD 77 DE [19]14551 ld -34 (ix), a
    00619B DD 77 DF [19]14552 ld -33 (ix), a
    00619E DD 77 E0 [19]14553 ld -32 (ix), a
    0061A1 AF [ 4]14554 xor a, a
    0061A2 DD 77 E1 [19]14555 ld -31 (ix), a
    0061A5 DD 77 E2 [19]14556 ld -30 (ix), a
    0061A8 DD 77 E3 [19]14557 ld -29 (ix), a
    0061AB DD 77 E4 [19]14558 ld -28 (ix), a
    0061AE AF [ 4]14559 xor a, a
    0061AF DD 77 E5 [19]14560 ld -27 (ix), a
    0061B2 DD 77 E6 [19]14561 ld -26 (ix), a
    0061B5 DD 77 E7 [19]14562 ld -25 (ix), a
    0061B8 DD 77 E8 [19]14563 ld -24 (ix), a
    14564 ;bank2.c:1845: do
    0061BB

    // 91 байт

  6. #5

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

    По умолчанию

    Это выхлоп ZSDCC с опциями -SO3 --opt-code-size --max-allocs-per-node100000

    Код такой:

    Код:
    static int j, c1, c2, c3, c4, c5, c8;
    static void Abc (void) {
      j = c1 = c2 = c3 = c4 = c5 = c8 = 0;
    }
    - - - Добавлено - - -

    По порядку:
    Цитата Сообщение от ^m00h^ Посмотреть сообщение
    Может тогдв сделать порт Laser Basic на БК, а потом уже перетаскивать дурака ?
    Такой порт несомненно бы был хорош и полезен. Но в полном объёме это не понадобится для Дурака. Буду заниматься этим посильно.
    Цитата Сообщение от ^m00h^ Посмотреть сообщение
    Их кстати было 2 версии, вторая от New Hakers Krowait System'94:
    Это просто хак под джойстик. И копирайты Славы выпилены. Я их сравнивал.

  7. #6

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,921
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    250 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от haywire Посмотреть сообщение
    IAR код в 2 раза более компактный генерирует

    1854 j = c1 = c2 = c3 = c4 = c5 = c8 = 0;
    \ 382B 010000 LD BC,0
    \ 382E 69 LD L,C
    \ 382F 60 LD H,B
    \ 3830 221201 LD (?0010+274),HL
    \ 3833 ED431401 LD (?0010+276),BC
    \ 3837 220E01 LD (?0010+270),HL
    \ 383A ED431001 LD (?0010+272),BC
    \ 383E 220A01 LD (?0010+266),HL
    \ 3841 ED430C01 LD (?0010+268),BC
    \ 3845 220601 LD (?0010+262),HL
    \ 3848 ED430801 LD (?0010+264),BC
    \ 384C 220201 LD (?0010+258),HL
    \ 384F ED430401 LD (?0010+260),BC
    \ 3853 22FE00 LD (?0010+254),HL
    \ 3856 ED430001 LD (?0010+256),BC
    \ 385A 221A01 LD (?0010+282),HL
    \ 385D ED431C01 LD (?0010+284),BC
    \ 3861

    // 54 байта
    зачем тут 32 битные данные?
    С уважением,
    Jerri / Red Triangle.

  8. #7

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

    По умолчанию

    Любите синтетические тесты, по которым Java превосходит Rust в стопицот раз? Угомонитесь уже.
    Кстати, я именно это называл уродской работой с индексными регистрами.

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

    Код:
    ;	---------------------------------
    ; Function _Abc
    ; ---------------------------------
    _Abc:
    	ld	hl,0x0000
    	ld	(_c8),hl
    	ld	(_c5),hl
    	ld	(_c4),hl
    	ld	(_c3),hl
    	ld	hl,0x0000
    	ld	(_c2),hl
    	ld	(_c1),hl
    	ld	(_j),hl
    	ret
    	SECTION code_compiler
    ;	---------------------------------
    28 байт

  9. #8

    Регистрация
    16.02.2006
    Адрес
    Новосибирск
    Сообщений
    3,280
    Спасибо Благодарностей отдано 
    17
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    54 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Любите синтетические тесты, по которым Java превосходит Rust в стопицот раз? Угомонитесь уже.
    Кстати, я именно это называл уродской работой с индексными регистрами.

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

    Код:
    ;	---------------------------------
    ; Function _Abc
    ; ---------------------------------
    _Abc:
    	ld	hl,0x0000
    	ld	(_c8),hl
    	ld	(_c5),hl
    	ld	(_c4),hl
    	ld	(_c3),hl
    	ld	hl,0x0000
    	ld	(_c2),hl
    	ld	(_c1),hl
    	ld	(_j),hl
    	ret
    	SECTION code_compiler
    ;	---------------------------------
    28 байт
    Код:
    ; 229.	static void Abc (void)
    Abc:
    ; 230.	{
    ; 231.	    static int j, c1, c2, c3, c4, c5, c8;
    ; 232.	
    	LD	HL,0
    	LD	(?0099),HL
    	LD	(?0098),HL
    	LD	(?0097),HL
    	LD	(?0096),HL
    	LD	(?0095),HL
    	LD	(?0094),HL
    	LD	(?0093),HL
    ; 233.	    j = c1 = c2 = c3 = c4 = c5 = c8 = 0;
    	RET
    ; 234.	}
    IAR 4.06a с опцией -z9, 25 байт.
    0A заповедей:
    I. Не удаляй каталог свой.
    II. Не удаляй до времени ни одного файла.
    III. Не кради файлы.
    IV. Не желай программы ближнего своего.
    V. Почитай BDOS и BIOS как родителей своих ...
    ---
    Sprinter resurrect:
    Telegram
    Discord
    Repo
    Forum

  10. #9

    Регистрация
    19.01.2005
    Адрес
    Наро-фоминск
    Сообщений
    2,019
    Спасибо Благодарностей отдано 
    521
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    128 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может тогдв сделать порт Laser Basic на БК, а потом уже перетаскивать дурака ? Их кстати было 2 версии, вторая от New Hakers Krowait System'94:

    https://vtrd.in/release.php?r=d8d1fa...376207559297e6

  11. #10

    Регистрация
    04.07.2012
    Адрес
    г. Москва
    Сообщений
    580
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    88
    Поблагодарили
    43 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    > Кстати, я именно это называл уродской работой с индексными регистрами.

    Кстати, я тоже это назвал бы уродской работой с индексными регистрами. Это - выхлоп SDCC, внезапно. IAR индексные регистры в каждую дырку не засовывает.

    > Любите синтетические тесты, по которым Java превосходит Rust в стопицот раз?

    Люблю синтетические тесты. Но что тут синтетического ? Не вижу тут ничего синтетического.

    Я выбираю компиляторы для своей работы.

    Вот полный тест с исходником и результатами компиляции

    Как видите, SDCC нагенерировал 28582 байта кода, IAR - 16270 байт. Разница - 2 раза. Это абсолютно неприемлемо.
    При этом, код SDCC - нерабочий. Разбирайтесь, вам с афтором работы на 50 лет. Этот фрагмент сверху - вырезка оттуда.

    Кстати, написать оптимизирующиий компилятор для убогого 8-и битного процессора - вполне реально. Это не для VLIW писать, тут всё проще.
    Не за год, конечно, не за 2. Но за 5-10 лет - вполне. Они так все и писались, собственно.
    Автор SDCC трудится уже лет 20? Чем он занимается, и где результат - остаётся только догадываться.
    Последний раз редактировалось haywire; 17.12.2021 в 07:48.

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

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

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

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

Похожие темы

  1. А был ли Garic?..
    от newart в разделе Разный софт
    Ответов: 1
    Последнее: 15.10.2016, 11:14
  2. Ответов: 3
    Последнее: 18.02.2008, 20:16
  3. ДР Медноногова
    от Slider в разделе Поздравления
    Ответов: 11
    Последнее: 14.05.2007, 01:22
  4. а был ли сс05?
    от elfh в разделе Демо
    Ответов: 92
    Последнее: 27.10.2005, 14:42

Ваши права

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