Сделал сумматор тактов всех команд программы. И замерял результат до работы оптимизатора и после. Пока получается оптимизация 90%. (стало/было*100)
Но в оптимизаторе нет самого главного. Он не умеет работать с ветвлениями и циклами. Сегодня добавлю их.
---------- Post added at 16:07 ---------- Previous post was at 14:12 ----------
Сделал, несколько команд пропало. Оценка 89%.
Красные - это поправки (удаления)
Код:
test:
push b
; 4 c = 100;
mvi b, 100
; 5 x = (uchar*)0xA000;
lxi h, 40960
shld test_x
; 6 do { *x = 0; ++x; } while(--c);
l0:
; 6 *x = 0; ++x; } while(--c);
lhld test_x
mvi m, 0
; 6 ++x; } while(--c);
lhld test_x
inx h
shld test_x
dcr b
mov a, b
ora a
jnz l0
l1:
pop b
ret