vinxru, тебе ещё все предстоит в очередной раз переделывать, когда будешь вести по каждой переменной её состояние, и в зависимости от этого код будет разный. Приблизительный пример.
Твой код, сейчас:
Тут есть два варианта - если условие по старту верное (как в этом коде), то такой код неоптимален, и лучше что-то типа:Код:; 54 for(y=0; y<8; y++) ld c, 0 l64: ld a, c cp 8 jp nc, l65 ... l66: ld a, c inc c jp l64 l65:
а вот если условие неопределённое, то нужен такой код как есть.Код:; 54 for(y=0; y<8; y++) ld c, 0 l64: ... ld a, c inc c cp 7 jp c, l64
Нужно на каждую переменную вести её последнее значение, на этапе компиляции анализировать условия (y<8 в данном случае). И в зависимости от этого анализа условия компилятор выбирает нужную ветку.
Ты молодец, много сделал, но тут ещё копать и копать. И боюсь, ещё не раз придётся всё переписать...




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