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

User Tag List

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

Тема: TST (RO)+; CMP (R0)+,(R0)+

  1. #1
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию TST (RO)+; CMP (R0)+,(R0)+

    Вопрос к знающим, вышеуказанные фишки - это пижонство или реально доказанный факт?
    Было бы круто получить полный список "ускорителей"
    В некоторых источниках встречал, что работа со стеком быстрее (сомневаюсь)..
    Прошу выкладывать в этой теме все, что может ускорить исполнение

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

    Начну сам (общеизвестное)
    XCHG (обмен регистров)
    Код:
    XOR R0,R1
    XOR R1,R0
    XOR R0,R1
    Насколько это быстро? Или проще использовать промежуточный регистр?

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

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

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

    Код:
    MOV #100, END+2
    Begin: .....
    END: DEC #0
         BNE Begin
    Такой цикл быстрее или мы просто экономим регистр?

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

    Вариантов много которые я раскопал, нужно оформить (если есть смысл) в формате библии А3, чтобы некоторое время висела перед носом
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  2. Этот пользователь поблагодарил S_V_B за это полезное сообщение:

    randomizer (30.10.2020)

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

  4. #2
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопрос в том, для чего нужен этот промежуточный регистр...
    Экономия регистра - это не самоцель. Это обычно для чего-то нужно.
    Цикл в той форме - медленней

  5. #3
    Master
    Регистрация
    19.04.2013
    Адрес
    г. Чебоксары
    Сообщений
    531
    Спасибо Благодарностей отдано 
    14
    Спасибо Благодарностей получено 
    128
    Поблагодарили
    99 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Цикл в той форме - медленней
    Но быстрее, чем
    Код:
    COUNT: .WORD 0
            .....
            MOV #100, COUNT
    Begin: .....
            DEC COUNT
            BNE Begin
    Поэтому и использовали адресацию 27 вместо 67/37, чтобы 1) ускорить выполнение за счёт уменьшения на 1 цикл доступа к памяти; 2) сэкономить одно слово. А если нужно быстродействие, лучше использовать регистры.

    Кстати CMP (R0)+,(R0)+ тоже медленнее, чем ADD #4,R0

  6. #4
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Значит в большинстве случаев это:
    1. Экономия памяти.
    2. Во всех остальных - пижонство.
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  7. #5
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    И ещё:
    Насчёт того, где медленнее, а где быстрее, надо смотреть на конкретную машину и процессор.
    Архитектура может отличаться. Например память на ферритах
    Или наличие кэша... Лишние пару слов в программе, могут привести к тому, что программа в кэш не лезет, соответственно будут тормоза.
    Или предвыборка на 1801ВМ3...
    Программа в ПЗУ(только чтение).
    Архитектура с I/D пространством.
    Вариантов море...

    Так что тут надо рассматривать каждую отдельно взятую машину, смотреть требования к программе и делать выводы типа:
    1. Здесь делаем так и так.
    2. Здесь делам иначе...
    3. А здесь пишем так, чтобы быстрее написать никаких напрягов здесь нет ...(большая часть случаев)
    Как-то так...
    Последний раз редактировалось Alex; 22.10.2020 в 15:15.

  8. #6
    Veteran
    Регистрация
    22.03.2018
    Адрес
    г. Усть-Каменогорск, Казахстан
    Сообщений
    1,396
    Спасибо Благодарностей отдано 
    86
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    136 сообщений
    Mentioned
    21 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Так что тут надо рассматривать каждую отдельно взятую машину, смотреть требования к программе и делать выводы типа:
    В данном случае мы рассматриваем УКНЦ (ВМ2) и слава богу память не на ферритах
    БK 0010-01, БК 11М, БК11М+,МС 0511 (УКНЦ)х3, Atari 65XE, Commodore 64, AMIGA 500 (HDD), ZX EVO

  9. #7
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну про то, что разговор идёт про УКНЦ (1801ВМ2) узнал только сейчас...
    И Нunta, судя по быстродействию, тоже не про УКНЦ (1801ВМ2) ...

    А так, вполне может оказаться вместо на УКНЦ вместо 1801ВМ2, 1806ВМ2.
    Есть такая тема тут на форуме

    Да и для БК мутили модули аж с 1801ВМ3

  10. #8
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    6,964
    Спасибо Благодарностей отдано 
    284
    Спасибо Благодарностей получено 
    626
    Поблагодарили
    527 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Из занимательного (1801ВМ3)
    Код:
    .RUN SPEED3
    
    Тест быстродействия
    
    ...
    #4+R0(2000) empty                 622 695 оп./сек
    #4+R0(2000)                       311 737 оп./сек ->     624 254 оп./сек
    CMP (R0)+,(R0)+ empty             623 474 оп./сек
    CMP (R0)+,(R0)                    173 957 оп./сек ->     241 276 оп./сек
    
    #2+R0(2000) empty                 623 474 оп./сек
    #2+R0(2000)                       311 736 оп./сек ->     623 470 оп./сек
    INC R0 INC R0 empty               623 473 оп./сек
    INC R0 INC R0                     389 586 оп./сек ->   1 038 520 оп./сек
    TST (R0)+ empty                   623 473 оп./сек
    TST (R0)+                         271 157 оп./сек ->     479 850 оп./сек
    ...
    Пока не могу сказать насчёт правильности - начал менять SPEED3 - возможны ошибки..

  11. #9
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,550
    Спасибо Благодарностей отдано 
    1,213
    Спасибо Благодарностей получено 
    1,748
    Поблагодарили
    680 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Ну про то, что разговор идёт про УКНЦ (1801ВМ2) узнал только сейчас...
    S_V_B ведет разработку игр под УКНЦ, а там только ВМ2.

  12. #10
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я не вижу особой проблемы посадить, по образу и подобию БК модуля на 1801DM3, на разъём сетевого адаптера Например...
    Можно и что-то другое. Сейчас добьют чипы к УКНЦ, станет известно точно как они работают и всё в руках желающих...
    Нужны только прямые руки и время.

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

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

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

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

Ваши права

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