где находится тот цикл который надо вызывать?
Вид для печати
где находится тот цикл который надо вызывать?
Я вообще склоняюсь к тому, что чем меньше чтений и записи, тем лучше.
---------- Post added at 19:29 ---------- Previous post was at 19:28 ----------
Цикл подразумевается под переходом по RESULT. Я думаю счётчики быстрее всего через половинки индксных регистров делать, всегда так быстрее.
Код:ARRAY DB 1,3,9,7,5,9,4,3
TEST: DI
LD SP,#BFFF
LD B,#08
LD A,#01
LD (CNT2+1),A
LD DE,ARRAY+1
LOOP LD A,(DE)
EXX
LD HL,ARRAY
CNT2 LD BC,01
CPIR
EXX
CALL NZ,RESULT
INC DE
LD HL,CNT2+1
INC (HL)
DJNZ LOOP
JR $
RESULT OUT (#FE),A
RET
Повторения могут быть не последовательные! :)
---------- Post added at 21:23 ---------- Previous post was at 20:11 ----------
Продолжаю эксперименты:
Замечания?Код:CNT1 LD IY,ARRAY
LD IX,#0901
LOOP LD A,(IY+1)
OR A
JR Z,NO_CHK
LD HL,ARRAY
CNT2 LD B,#00
LD C,LX
CPIR
CALL NZ,RESULT
NO_CHK INC IY
INC LX
DEC HX
JP NZ,LOOP
JR $
RESULT OUT (#FE),A
RET
ARRAY DB 1,2,3,1,0,3,4,5,6
П/П RESULT использует все регистры, в т.ч. альтернативные, всё кроме SP,IX,IY.
сортИровать пузырьком. повторы тут и всплывут
так сохранять надо регистры :) и не парить мосх
Код:ld de,array1
ld c,1
ld a,(de)
inc de
loop0
ld b,c
ld a,(de)
ld hl,array1
loop2
cp (hl)
inc hl
jr z,loop1
djnz loop2
push de,bc
call result
pop bc,de
loop1
inc de
inc c
ld a,c
cp 8
jr nz,loop0
ret
array1 db 1,2,1,3,1,4,1,5
---------- Post added at 17:48 ---------- Previous post was at 17:44 ----------
кстати это чо такое будет?
Я стараюсь не использовать стековые команды PUSH/POP, если есть возможность всё через регистры пустить. Получается быстрее. :) ну и CPIR это же, а что это за команда?))))))
Процедура отрисовывает найденый тайл поверх спрайта 1 раз. Нашла 4 тайла в области координат спрайта, нарисовала 4. :)
Если уж сортировать - то не пузырьком, а более эффективным методом.
Еще есть варианты - хранить исходные числа в таком контейнере, который автоматически сортируется по мере добавления в него элементов. Например, в двоичном дереве. Ну и битовая карта, предложенная выше, тоже хороша.