Дано ADR=MASSIVE+64*Y+X.
Нужно быстро получить обратно:
Y=INT((ADR-MASSIVE)/64)
X=(ADR-MASSIVE)-Y*64
MASSIVE=ровному адресу.
Дано ADR=MASSIVE+64*Y+X.
Нужно быстро получить обратно:
Y=INT((ADR-MASSIVE)/64)
X=(ADR-MASSIVE)-Y*64
MASSIVE=ровному адресу.
axor/Perspective
http://abzac.retropc.ru/
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
;Hl=adr
ld a,h
sub massive/256
ld h,a
ld a,l
add hl,hl
add hl,hl
and #3f
ld l,a
;H-y, L-x
p.s. а лень чота думать дальше..
Если использовать de, то можно на 2 байта короче и 1 такт быстрее:Сообщение от axor
add hl,de (hl = ADR; de = -MASIVE)
ld a,l
and #3F (A = X)
add hl,hl
add hl,hl (h = Y)
Последний раз редактировалось Titus; 16.12.2005 в 06:06.
Благодарю ответивших.
axor/Perspective
http://abzac.retropc.ru/
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)