User Tag List

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

Тема: SwapSet

Комбинированный просмотр

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

    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    128
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    добавлю прожорливый по памяти и тактам вариант, который не ломает стек и соответственно не требует запрета прерываний и не занимает ix.
    Классный подход с самомодификацией! )) Мне нравится.
    Я так понимаю слоты можно переиспользовать изменяя значения в регистрах?
    Последний раз редактировалось jim; 21.09.2025 в 12:43.

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

  3. #2

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jim Посмотреть сообщение
    Я так понимаю слоты можно переиспользовать изменяя значения в регистрах?
    Не очень понял. Вызов слота записывает текущие значения в программу текущего слота и вызывает значения из выбранного. Методом слот.sv можно записать текущие значения регистров в программу нужного слота не меняя текущего, но текущий hl - портится для варианта с сохранением флагов.
    Ну так должно работать если я опять не ошибся ))

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

    jim(23.09.2025)

  4. #3

    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    128
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Dart Alver Посмотреть сообщение
    но текущий hl - портится для варианта с сохранением флагов.
    Поэтому я пожертвовал ix для чистой записи состояния в сет.
    Можно еще расширить вариант и записывать вторые наборы ex af, af'/exx
    но это добавит тактов соответственно
    Последний раз редактировалось jim; 07.09.2025 в 17:35.

  5. #4

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jim Посмотреть сообщение
    Поэтому я пожертвовал ix для чистой записи состояния в сет.
    ну в моём случае это решается просто:

    push hl
    call слот.sv
    pop hl

    Цитата Сообщение от jim Посмотреть сообщение
    Можно еще расширить вариант и записывать вторые наборы ex af, af'/exx
    но это добавит тактов соответственно
    Оно даже этот вариант редко кому нужен, другие уж точно исключительно по необходимости.

  6. #5

    Регистрация
    31.03.2005
    Адрес
    Новосибирская область
    Сообщений
    128
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Согласен что редко ) Но имеет право быть. Просто попробовать писать в таком стиле и применение найдется.
    Заманчиво иметь неограниченное количество регистров ))
    К примеру:
    Имеем N экземпляров объектов которые нужно изменять на протяжении времени
    Основной цикл
    {
    set1 ; состояние 1
    ; какие то изменения
    ...
    setN ; состояние N
    ; аналогично
    }
    Последний раз редактировалось jim; 07.09.2025 в 17:55.

  7. #6

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    197
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jim Посмотреть сообщение
    Заманчиво иметь неограниченное количество регистров ))
    Заманчиво, но нереально - свапинг их не добавляет а всего лишь переключает, причем медленно. Увы... (

    Цитата Сообщение от jim Посмотреть сообщение
    Имеем N экземпляров объектов которые нужно изменять на протяжении времени
    Основной цикл
    {
    set1 ; состояние 1
    ; какие то изменения
    ...
    setN ; состояние N
    ; аналогично
    }
    Ну х.з. состояние такого 'обьекта' должно уложиться в эти несчастные 7 регистров, иначе ещё и стек надо для каждого обьекта свой. Тогда и правда либо многозадачность вертеть, либо как сказал Lethargeek сохраняться в переменных.
    В принципе, возможность имеет быть, а целесообразность может подтвердить или опровергнуть только практика.
    p.s. Я таки оказывается еще ошибся со смещениями - совсем голова не варит, вай-вай-вай

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

    jim(07.09.2025)

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

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

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

Ваши права

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