Простенькая задача

Тема в разделе "WASM.HEAP", создана пользователем valterg, 2 июн 2011.

  1. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Разбираясь с задачами новичков набрел на нетривиальную задачку:
    превратить 0x3333 в 0x2222 командами циклического сдвига.
    Там где я ее нашел сказали, что это невозможно, и сразу начали жульничать
    через команды простого сдвига и даже пересылки.
    Немного подумав понял, что имелось ввиду использование 32-битных и 16-битных сдвигов.
    Пока лень рисовать программу - может кому-то будет интересно себя проверить :)
     
  2. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    Либо я чего-то не понял, либо решение элементарно:
    Код (Text):
    1. ; > AX, < AX
    2. clc
    3. mov cl,3
    4. rcr ax,1
    5. ror ax,cl
    6. rcr ax,1
    7. ror ax,cl
    8. rcr ax,1
    9. ror ax,cl
    10. rcr ax,1
    11. ror ax,cl
     
  3. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Вот-вот. Склероз подвел. Забыл что циклические сдвиги бывают через бит переноса и просто 8 бит. Смутно такое пытался вспомнить, но увидев категорическое невозможно - тоже поверил. СПАСИБО.
     
  4. edemko

    edemko New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2009
    Сообщения:
    454
    используйте OR