смотрите внимательно, в HL текущий адрес, в DE грузится разница между пиксельными линиями (обычно 256, иногда [32-8*256]), разница добавляется и поехали.
Ну уж разберись что у тебя к чему, и почему тут лучше, если оно длиннее в тактах и в коде. Тут ещё и регистр C (или любой другой) надо постоянно удерживать значением X. А в моём случае нет. Хотя в процессе портится DE.
Нет нетчитайте код внимательнее
DE добавлялось к HL, получаем down hl.
Если я возьму со стека HL, то это будет не down hl, потому что я его потру. А если это down de, тогда надо ещё установить DE.в общем не смущайте общественность.
Вот задачка из реальной жизни, в "Эрудите" понадобилась:
Необходимо скопировать от 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 ничего оптимальнее не придумал. Но чую, что можно как-то быстрее, через стек или регистры (благо немного значений).
а тут и нечего делатьособенно изза разворота
С уважением,
Jerri / Red Triangle.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)