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

User Tag List

Показано с 1 по 6 из 6

Тема: Этюды: как бы написать поизящнее.

  1. #1
    Activist Аватар для AndTorp
    Регистрация
    03.03.2008
    Адрес
    Петербург
    Сообщений
    271
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Этюды: как бы написать поизящнее.

    Вопрос для ассов программирования.

    Нужна такая процедурка:
    на входе в регистре A 0, 1 или 2;
    на выходе в регистре C (можно в A), соответственно, 8, 16 или 32.

    То есть

    0 -> 8
    1 -> 16
    2 -> 32

    Кроме как с циклом ничего не могу придумать.
    Последний раз редактировалось GriV; 17.03.2008 в 10:20.

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

  3. #2
    Veteran Аватар для savelij
    Регистрация
    23.03.2007
    Адрес
    г. Сухиничи, Калужская обл.
    Сообщений
    1,793
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AndTorp Посмотреть сообщение
    Вопрос для ассов программирования.

    Нужна такая процедурка:
    на входе в регистре A 0, 1 или 2;
    на выходе в регистре C (можно в A), соответственно, 8, 16 или 32.

    Кроме как с циклом ничего не могу придумать.
    Ну примерно так:
    PROG LD C,8
    AND A
    RET Z
    LD C,16
    DEC A
    RET Z
    LD C,32
    RET

    Скрытый текст

    Profi 4.02 512k
    Profi 5.04 1024k нижняя плата здесь
    Scorpion 256k+ProfROM+SMUC 1.3+SMUC 2.0+ZXMC2
    Pentagon v2.2+Z-controller+ZXMC2+NeoGS
    АТМ 7.10 1024k
    Pentagon 2.666LE
    ZX Evolution 4Mb rev B
    [свернуть]


    Извещение лички отключено, захожу редко.

  4. #3
    Master Аватар для boo_boo
    Регистрация
    10.05.2005
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AndTorp Посмотреть сообщение
    на входе в регистре A 0, 1 или 2;
    на выходе в регистре C (можно в A), соответственно, 8, 16 или 32.
    ;вход - A, выход - тоже A
    CP 1
    RLA
    RLA
    RLA
    RLA

  5. #4
    Guru Аватар для moroz1999
    Регистрация
    17.01.2005
    Адрес
    Tallinn
    Сообщений
    2,517
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    39 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если критичен размер, а не скорость, то 2 байта сэкономить можно, если заменить ld c,16 (32) на ротацию.

    Код:
    LD C,8
    AND A
    RET Z
    RL C
    DEC A
    RET Z
    RL C
    RET
    Добавлено через 1 минуту
    Цитата Сообщение от boo_boo Посмотреть сообщение
    ;вход - A, выход - тоже A
    CP 1
    RLA
    RLA
    RLA
    RLA
    черт, как всё просто-то
    Последний раз редактировалось moroz1999; 16.03.2008 в 23:26. Причина: Добавлено сообщение

  6. #5
    Veteran Аватар для savelij
    Регистрация
    23.03.2007
    Адрес
    г. Сухиничи, Калужская обл.
    Сообщений
    1,793
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от moroz1999 Посмотреть сообщение
    черт, как всё просто-то
    Дествительно просто, а сразу и не придумаешь.

    Скрытый текст

    Profi 4.02 512k
    Profi 5.04 1024k нижняя плата здесь
    Scorpion 256k+ProfROM+SMUC 1.3+SMUC 2.0+ZXMC2
    Pentagon v2.2+Z-controller+ZXMC2+NeoGS
    АТМ 7.10 1024k
    Pentagon 2.666LE
    ZX Evolution 4Mb rev B
    [свернуть]


    Извещение лички отключено, захожу редко.

  7. #6
    Activist Аватар для AndTorp
    Регистрация
    03.03.2008
    Адрес
    Петербург
    Сообщений
    271
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    14 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сообщение от boo_boo
    ;вход - A, выход - тоже A
    CP 1
    RLA
    RLA
    RLA
    RLA
    Большое СПАСИБО! Я чувствовал, что изящное решение есть, но, к сожалению "зациклился" на процедуре с циклом.

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

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

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

Похожие темы

  1. Ответов: 30
    Последнее: 14.01.2011, 15:13
  2. хочу написать эмулятор
    от Виктор в разделе Разный софт
    Ответов: 25
    Последнее: 22.04.2008, 23:50
  3. Ответов: 0
    Последнее: 18.08.2006, 22:40
  4. НАДО НАПИСАТЬ МУЗОН !
    от AAA в разделе Музыка
    Ответов: 16
    Последнее: 14.09.2005, 18:29
  5. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Ваши права

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