Вот задачка из реальной жизни, в "Эрудите" понадобилась:

Необходимо скопировать от 2 до 8 байт, заранее количество неизвестно (находится в аккумуляторе), из области начинаемой по адресу addr1 в область по адресу addr2, но так, чтобы в области addr2 байты шли в обратном порядке. Например, было с адреса addr1: 1 2 3 4 5 6. Нужно сделать с адреса addr2: 6 5 4 3 2 1. Оптимизировать по быстродействию.
Сейчас кроме банального ld a,(hl); ld (de),a ничего оптимальнее не придумал. Но чую, что можно как-то быстрее, через стек или регистры (благо немного значений).