User Tag List

Показано с 1 по 10 из 62

Тема: Как быстро скроллить память на 2 пиксела?

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Нет, не оправдает. Попробуй напиши и рассчитай, сколько получится тактов.
    Пишем (скролл влево):
    Код:
        LD SP,nn ;10
        POP HL ;10
        POP DE ;10
        POP BC ;10
        RL H ;8
        RL L ;8
        RL D ;8
        RL E ;8
        RL B ;8
        RL C ;8
        EXX ;4
        POP HL;10
        POP DE ;10
        POP BC ;10
        RL H ;8
        RL L ;8
        RL D ;8
        RL E ;8
        RL B ;8
        RL C ;8
        EXX ;4
        EX AF,AF' ;4
        RL H ;8
        RL L ;8
        RL D ;8
        RL E ;8
        RL B ;8
        RL C ;8
        EXX ;4
        RL H ;8
        RL L ;8
        RL D ;8
        RL E ;8
        RL B ;8
        RL C ;8
        EX AF,AF' ;4
        PUSH BC ;11
        PUSH DE ;11
        PUSH HL ;11
        EXX ;4
        PUSH BC ;11
        PUSH DE ;11
        PUSH HL ;11
    Этот фрагмент обрабатывает 12 байт. Растактовка:
    На POP - 6*10 = 60 тактов
    На PUSH - 6*11 = 66 тактов
    На LD SP - 10 тактов
    На EXX - 4*4 = 16 тактов
    На EX AF,AF' - 2*4 = 8 тактов
    На RL - 12*2*8 = 192 такта
    Всего 352 такта
    На каждый байт - 29 + 1/3 тактов в среднем.

    Хоть 4 команды EXX сжирают 16 тактов, а одна LD SP - 10 тактов - то кажется, что без EXX будет быстрее. Однако, если делать блоками по 6 байт без EXX - то будет:
    POP - 3*10 = 30
    PUSH - 3*11 = 33
    LD SP - 10
    EX AF,AF' - 8
    RL - 6*2*8 = 96
    Всего - 177
    На каждый байт - 29.5 тактов в среднем. Чуть больше.

    Причина в том, что при обработке блоками по 12 байт встречается в 2 раза меньше команд EX AF,AF' в среднем. То есть с EXX потеря 6 тактов на EXX, однако выигрыш 8 тактов на EX AF,AF'. В конечном счете выигрыш в 2 такта.
    Последний раз редактировалось Barmaley_m; 10.04.2015 в 16:30.

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

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

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

Похожие темы

  1. Как быстро добраться до мыши?
    от TomCaT в разделе Для начинающих
    Ответов: 38
    Последнее: 02.03.2010, 11:00
  2. Поиск идей: как быстро залить TAP/TZX в Speccy ???
    от ILoveSpeccy в разделе Несортированное железо
    Ответов: 23
    Последнее: 24.12.2007, 06:32
  3. Быстро вывести число 0-255 на экран
    от Aprisobal в разделе Программирование
    Ответов: 7
    Последнее: 26.01.2005, 08:05
  4. Быстро переместить 384b
    от Aprisobal в разделе Программирование
    Ответов: 6
    Последнее: 23.01.2005, 15:23

Ваши права

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