
Сообщение от
NovaStorm
Куда тут без IX/IY?
Не говорю о том, что IX и IY нельзя использовать. Но в абсолютном большинстве случаев их использовать накладно по ресурсам.
Пример успешного использования IX:
Код:
; внешний цикл. 100 раз.
; внутренний цикл. 100 раз.
; что-то делается со всеми регистрами общего назначения
; 100 раз.
; конец внутреннего цикла
; результат - в BC. Его нужно суммировать где-то.
;
add ix, bc
; конец внешнего цикла
Т.е. иметь регистр надо ввиду, но его использование срабатывает редко.
Такая же ситуация с командами работы с битами (set, bit, res). Их использование крайне ограничено по тем же причинам. Можно сколько угодно говорить что например
set 4, d
можно заменить только на какую-нибудь душераздирающую конструкцию вида
Код:
push af
ld a,d
or #10
ld d,a
pop af
но на практике зачастую серия команд программы может быть преобразована так, что регистр пройдет через аккумулятор и в нужное время будет установлен нужный бит.
Но например если работаем с (hl), то такая конструкция
set 7,(hl)
выгодней, нежели
Код:
ld a,(hl)
or #80
ld (hl),a