Цитата Сообщение от 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