User Tag List

Страница 2 из 109 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 1128

Тема: ЭТЮДЫ

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

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

    Регистрация
    14.03.2005
    Адрес
    Russia, Saint-Petersburg
    Сообщений
    213
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код вроде и так субоптимален. Можно чуть-чуть изворачиваться, но суть та же...

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

  3. #2

    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ЭТЮДЫ

    С большим пробелом в общении со speccy возникают трудности по оптимизации кода, да и вообще написание уникальных процедур. Я на этюдах ZX Ревю вообще тогда сильно шагнул в написании коротких и быстрых процедур. Может вернем тему? Кто за?

  4. #3

    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    короткое и быстрое - это противоречие обычно... кодеров активных осталось немного, проще будет просто создавать тему наверно для каждой процедуры, которую требуется соптимизировать...

  5. #4

    Регистрация
    20.01.2005
    Адрес
    Саранск
    Сообщений
    2,195
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    смысла нет... уже были попыткинасколько я помню... так что идея бессмыслена....
    Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
    Мои игры: [Overload][Removal]

    Список игр для ZX-Spectrum: [2015] [2014]

  6. #5

    Регистрация
    27.02.2006
    Адрес
    Курск
    Сообщений
    218
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    осталось много пассивных кодеров)))
    резунойд.

  7. #6

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,830
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну да. Пассивных хоть отбавляй
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  8. #7

    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Все ясно. Тема не рулит. Придется после стольких лет все искать в огромном количестве литературы и шурупить с оптимизацией.

  9. #8

    Регистрация
    01.03.2005
    Адрес
    Саранск
    Сообщений
    5,830
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    247
    Поблагодарили
    106 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Шурупь. Полезнее.
    Свирепый агрессивно-депрессивный мордовец!
    Не уверен - не напрягай!

    Не сдавайся. Дыши?

    Virtual TR-DOS

  10. #9

    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообще то тема уже несколько раз открывалась, посмотреть можно было повнимательнее ;-)
    А посчёт этюдов есть такие вот зарисовки.
    Есть такие замечательные команды как adc и sbc - используют флаг CY

    Например типовая задача уменьшить значение аккумулятора не менее какого то (например 23).
    обычно делают:
    dec a
    cp 23
    jr nc,$+3
    inc a
    а можно вот так аккуратно:
    sub 23
    adc a,22
    работает много элегантнее и что очень важно имеет всегда одну и ту же длительность (что особенно интересно демописателям где каждый раз приходиться пересчитывать такты).
    Или обратная задача - увеличить значение но не более какого то (например 75)
    В этом случае делаем так:
    add a,-75
    sbc a,-1-75
    В этом случае выше 75 ну никак не поднимется с теми же преимуществами.
    Кстати аналогичные вещи можно делать с HL используя те же команды.
    Или задача: в зависимости от значения флага CY заполнить аккумулятор либо значением 23 либо 75:
    sbc a,a
    and 75-23
    add a,23
    В итоге - если включен флаг CY то в аккумуляторе будет 75, иначе будет 23.
    Последний раз редактировалось GriV; 24.12.2008 в 15:14.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

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

    Jukov(12.01.2022)

  11. #10

    Регистрация
    18.07.2021
    Адрес
    г. Хмельницкий, Украина
    Сообщений
    105
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    Есть такие замечательные команды как adc и sbc - используют флаг CY

    Например типовая задача уменьшить значение аккумулятора не менее какого то (например 23).
    обычно делают:
    dec a
    cp 23
    jr nc,$+3
    inc a
    а можно вот так аккуратно:
    sub 23
    adc a,22
    работает много элегантнее и что очень важно имеет всегда одну и ту же длительность (что особенно интересно демописателям где каждый раз приходиться пересчитывать такты).
    Или обратная задача - увеличить значение но не более какого то (например 75)
    В этом случае делаем так:
    add a,-75
    sbc a,-1-75
    В этом случае выше 75 ну никак не поднимется с теми же преимуществами.
    Прошло всего-то 14 лет - а кто-то проверял, как это работает? Я проверил (понадобилось). Немного не так работает, как заявлено.

    Код:
    ld a, 23
    sub 23
    adc a, 22
    оставляет в А значение 22, хотя должно быть 23.
    То есть, формула должна быть:

    sub x+1
    adc a, x

    а не

    sub x
    adc a, x-1


    К этому:
    Код:
    add a,-75
    sbc a,-1-75
    претензий нет.
    Последний раз редактировалось 0xDEAD; 08.06.2022 в 19:33.

Страница 2 из 109 ПерваяПервая 123456 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

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