Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: Задача

  1. #1
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Благодарностей: 165
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Задача

    Дано ADR=MASSIVE+64*Y+X.

    Нужно быстро получить обратно:
    Y=INT((ADR-MASSIVE)/64)
    X=(ADR-MASSIVE)-Y*64

    MASSIVE=ровному адресу.
    axor/Perspective
    http://abzac.retropc.ru/

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для jtn
    Регистрация
    15.01.2005
    Адрес
    Kievska Rus
    Сообщений
    1,147
    Благодарностей: 5
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ;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. а лень чота думать дальше..

  4. #3
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    10,278
    Благодарностей: 3576
    Mentioned
    5 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Дано ADR=MASSIVE+64*Y+X.

    Нужно быстро получить обратно:
    Y=INT((ADR-MASSIVE)/64)
    X=(ADR-MASSIVE)-Y*64

    MASSIVE=ровному адресу.
    Если использовать de, то можно на 2 байта короче и 1 такт быстрее:
    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 в 07:06.

  5. #4
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Благодарностей: 165
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Благодарю ответивших.
    axor/Perspective
    http://abzac.retropc.ru/

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •