ivagor, тут обсуждать нечего - открой файл README.md из исходника z88dk, если мне не веришь. чёрный по белому написано:
что не так?* **SCCZ80** is z88dk's native c compiler. sccz80 is derived from small c
что не так?* **ZSDCC** is z88dk's customization of the [sdcc compiler]
а вот из исходника за 96й год
- - - Добавлено - - -scc Ron Cain's Small C compiler originaly from Dr. Dobbs Journal.
оба компилятора, что sdcc, что z88dk, не способны отказаться от индексных регистров. это как пример багованности или тупости этих компиляторов.
и что я вижу в листинге?Код:static UINT wc, bc, t; static DWORD fsect, tmp;
и т.д. хотя static явно указывает на то, что индексы надо убрать. беру тот же код, пихаю в IAR, который вы тут так ненавидите (потому, что нужно стать капером, видите ли (я просто напоминаю, вы тут все сидите и строчите из под каперской венды, таблички пилите на каперском экселе, картинки рисуете на каперском фотошопе, а от IARа нос воротите, вам шашечки или ехать?)) и вместо IX/IY получаю быстрый код на обычных регистрах. плюс ключами компиляции я указываю компилятору - заюзать недокументированные команды, регистры и альтернативный набор регистров.Код:push ix ld ix,#0 add ix,sp ld iy, #-12 add iy, sp ld sp, iy
тут действительно, обсуждать нечего.
до смешного доходит, в Solid C через #pragma nonrec даже статики писать не нужно и минус индексные регистры.
банальный printf("Hello Word!"); на z88dk - 4 килобайта! на Solid C что-то около 900 байт.




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
