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

Discussion in 'WASM.HEAP' started by valterg, Jun 2, 2011.

  1. valterg

    valterg Active Member

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

    ava New Member

    Blog Posts:
    0
    Joined:
    Oct 11, 2003
    Messages:
    169
    Либо я чего-то не понял, либо решение элементарно:
    Code (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

    Blog Posts:
    0
    Joined:
    Aug 19, 2004
    Messages:
    2,105
    Вот-вот. Склероз подвел. Забыл что циклические сдвиги бывают через бит переноса и просто 8 бит. Смутно такое пытался вспомнить, но увидев категорическое невозможно - тоже поверил. СПАСИБО.
     
  4. edemko

    edemko New Member

    Blog Posts:
    0
    Joined:
    Nov 25, 2009
    Messages:
    454
    используйте OR