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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 25

Тема: Оптимизация

  1. #1
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Оптимизация

    Есть такой код:

    Код:
    	ld      a, r
    	and     7
    
    	cp      3
    	jr      c, monster_attack
    
    	cp      5
    	jr      nc, monster_attack
    если А потом не используется, могу ли я заменить на

    Код:
    	ld      a, r
    	and     7
    
    	cp      6
    	jr      c, monster_attack
    Последний раз редактировалось Bedazzle; 24.08.2018 в 18:14.

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

  3. #2
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    ld a,r
    rra
    and 3
    jr nz, monster_attack
    если нужно проверять 2-ой бит (считая от нуля) тогда

    Код:
    ld a,r
    rra
    rra
    and 1
    jr nz, monster_attack
    Последний раз редактировалось shurik-ua; 24.08.2018 в 18:21.

  4. #3
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    если нужно проверять 2-ой бит (считая от нуля)
    я так понимаю, триггер на два случая из восьми

  5. #4
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    364
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    триггер на два случая из восьми
    на 4.

    для двух или одного случая лучше всё таки сравнение юзать.

  6. #5
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Есть такой код:

    Код:
    	ld      a, r
    	and     7
    
    	cp      3
    	jr      c, monster_attack
    
    	cp      5
    	jr      nc, monster_attack
    если А потом не используется, могу ли я заменить на

    Код:
    	ld      a, r
    	and     7
    
    	cp      6
    	jr      c, monster_attack
    Если A потом не используется, можно сделать так. Но непонятно, что заставило авторов делать две проверки вместо одной. Возможно, А не используется в ветви перехода, но используется далее по коду? Возможно, в ветви перехода проверяется бит CF (или ZF)?

    - - - Добавлено - - -

    Цитата Сообщение от shurik-ua Посмотреть сообщение
    на 4.

    для двух или одного случая лучше всё таки сравнение юзать.
    Переход на monster_attack делается по значениям 0,1,2,5,6,7 после AND 7, и не делается по значениям 3,4.

  7. #6
    Veteran
    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,041
    Спасибо Благодарностей отдано 
    931
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    я так понимаю, триггер на два случая из восьми
    Или шесть из восьми?

    Надо убедиться, что:
    R - истинно случайное.
    AF - не используется в обеих ветках.
    Нет самомодифицирующегося кода. Например константы 7,3 и 5 не изменяются.

    Тогда это 6 из 8. То же что 3 из 4.
    LD A,R
    AND 3; 5 или 6. два бита нам нужны.
    JP NZ,m_a

    - - - Добавлено - - -

    А R нужно проверить, чтобы не писалось _до_, или читалось _до_ или _после_, за фиксированном количестве тактов.

  8. #7
    Guru Аватар для Shiny
    Регистрация
    19.01.2017
    Адрес
    г. Арзамас
    Сообщений
    2,121
    Записей в дневнике
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    10 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Зачем нужен R? случайное число получится ахтунговое.
    Если нужно фиксированное тактов, то задача непонятная - а в ветвлениях будет одно количество тактов?
    для перехода удобнее построить таблицу:

    dw bra1 ;0
    dw bra1 ;1
    dw bra1 ;2
    dw bra2 ;3
    dw bra1 ;4
    dw bra2 ;5
    dw bra1 ;6
    dw bra2 ;7

    и получить адрес старым индейским способом.

  9. #8
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    А R нужно проверить, чтобы не писалось _до_, или читалось _до_ или _после_, за фиксированном количестве тактов.
    Да, там стандартные прерывания, так что будем считать, что всё хорошо.

    - - - Добавлено - - -

    Цитата Сообщение от Шынни Посмотреть сообщение
    Зачем нужен R? случайное число получится ахтунговое.
    В смысле?

    Цитата Сообщение от Шынни Посмотреть сообщение
    Если нужно фиксированное тактов, то задача непонятная - а в ветвлениях будет одно количество тактов?
    для перехода удобнее построить таблицу:
    Так понимаю, это клёво и быстро, если много ветвлений.
    Тут всего две ветки, и пробую получить минимальный размер.

  10. #9
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bedazzle Посмотреть сообщение
    Сообщение от Шынни
    Зачем нужен R? случайное число получится ахтунговое.

    В смысле?
    Я так понимаю, имеется ввиду, что качество псевдослучайной последовательности на регистре R невысокое. Если в коде нет обработки ввода из портов (либо есть, но из порта идут повторяющиеся данные), она вообще обычно вырождается в повторяющуюся последовательность.

  11. #10
    Veteran Аватар для Bedazzle
    Регистрация
    02.05.2015
    Адрес
    г. Таллин, Эстония
    Сообщений
    1,485
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    115 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Я так понимаю, имеется ввиду, что качество псевдослучайной последовательности на регистре R невысокое.
    Про это знаю, ага.
    Конкретно тут некритично - просто монстр чуть раньше или чуть позже нападёт.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Оптимизация Conway's Game of Life для Z80
    от blackmirror в разделе Программирование
    Ответов: 1
    Последнее: 10.01.2022, 20:47
  2. Оптимизация Амиги 1230/50 под мр3
    от Alex2 в разделе Amiga
    Ответов: 52
    Последнее: 10.01.2017, 01:23
  3. Оптимизация конверченных картинок
    от denpopov в разделе Софт
    Ответов: 60
    Последнее: 31.03.2014, 19:20
  4. Оптимизация в HL
    от drbars в разделе Программирование
    Ответов: 33
    Последнее: 22.08.2013, 17:56
  5. оптимизация форума
    от SMT в разделе Форум
    Ответов: 33
    Последнее: 04.04.2005, 13:18

Ваши права

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