Операция обратная ROR'у

Тема в разделе "WASM.ASSEMBLER", создана пользователем JCronos, 15 май 2009.

  1. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    Приветствую!
    Код (Text):
    1. mov   eax, 1234567890
    2. ror     eax, 5
    Задача написать процедуру выполняющую обратное действие по отношению к ROR, т.е.
    её обратный аналог, типа ROL'а, но сама инструкция ROL делает другие действия
     
  2. Forever

    Forever Виталий

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    244
  3. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    А если не 5?
     
  4. lasirxcl

    lasirxcl New Member

    Публикаций:
    0
    Регистрация:
    1 ноя 2008
    Сообщения:
    1
    ror eax, $1
    обратная
    ror eax, 32 - $1
     
  5. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    ror eax, $1
    обратная
    shld eax, eax, $1
     
  6. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Не совсем понятно -- вероятно эммулировать инструкцию ROL?
    Код (Text):
    1. mov eax,89ABCDEFh
    2. rol eax,4; eax=09ABCDEF8h
    3. ;аналог ROL
    4. mov ebx,eax
    5. shr ebx,(32-4); ebx=8
    6. shl eax,4; eax=9ABCDEF0h
    7. or eax,ebx; eax=9ABCDEF8h
    8. ;аналогично при поможи умножения, деления и сложения
     
  7. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    Благодарю всех!
     
  8. DeGlucker

    DeGlucker New Member

    Публикаций:
    0
    Регистрация:
    19 сен 2002
    Сообщения:
    28
    Не понял, почему ROL не подходит ?
     
  9. JCronos

    JCronos New Member

    Публикаций:
    0
    Регистрация:
    5 апр 2009
    Сообщения:
    98
    Потому что он обратную операцию в случае с XOR не выполняет (мне такое нужно)
     
  10. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    JCronos
    Код (Text):
    1.     mov eax,12345678h
    2.     ror eax,5; eax=0C091A2B3h
    3.  rol eax,5; eax=12345678h почему ROL не выполняет обратную операцию? по-моему все ОК
    4.     ror eax,5; eax=0C091A2B3h
    5.     mov ecx,5; еще один вариант ROL
    6. a1: shl eax,1
    7.     adc eax,0
    8.     loop a1; в результате eax=12345678h
     
  11. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Обратную операцию для XOR выполняет сам XOR.
    Как к этому всему относится ROR/ROL не очень ясно.