А вот чем оно несколько часов занималось.
Кроме того что долго, оно на выходе еще дает полный *****кретинизм (см. asm во вложении).
Для массив static char [] оно сначала делает нужного размера .ds N (кусок пустого места) в сегменте _DATA (т.е. в бинаре), потом в секции _GSINIT копирует туда данные ПОБАЙТНО в конструкции вида:
;fsdata.c:11: static char data_cgi_files[] = {
ld hl,#_data_cgi_files
ld (hl),#0x2F
inc hl
ld (hl),#0x63
ld hl,#_data_cgi_files + 2
ld (hl),#0x67
ld hl,#_data_cgi_files + 3
ld (hl),#0x69
ld hl,#_data_cgi_files + 4
ld (hl),#0x2F
и так несколько тысяч раз
Вместо того чтобы единократно СРАЗУ определить заполненный массив через .db
Вопрос - что за кретины это сочиняли? Я уже смирился со "студенческими" болезнями компилятора (на энтузиазме пишется какими-то непонятными людьми, понятно что не приходится ждать оттуда профессионального компилятора, которые умудрялись работать на Z80 и в 48к ОЗУ в середине прошлого века), но такое явное УГ это уже перебор.![]()





Ответить с цитированием