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

Discussion in 'WASM.ASSEMBLER' started by JCronos, May 15, 2009.

  1. JCronos

    JCronos New Member

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

    Forever Виталий

    Blog Posts:
    0
    ror 27
     
  3. JCronos

    JCronos New Member

    Blog Posts:
    0
    А если не 5?
     
  4. lasirxcl

    lasirxcl New Member

    Blog Posts:
    0
    ror eax, $1
    обратная
    ror eax, 32 - $1
     
  5. dermatolog

    dermatolog Member

    Blog Posts:
    0
    ror eax, $1
    обратная
    shld eax, eax, $1
     
  6. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    Не совсем понятно -- вероятно эммулировать инструкцию ROL?
    Code (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

    Blog Posts:
    0
    Благодарю всех!
     
  8. DeGlucker

    DeGlucker New Member

    Blog Posts:
    0
    Не понял, почему ROL не подходит ?
     
  9. JCronos

    JCronos New Member

    Blog Posts:
    0
    Потому что он обратную операцию в случае с XOR не выполняет (мне такое нужно)
     
  10. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    JCronos
    Code (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

    Blog Posts:
    0
    Обратную операцию для XOR выполняет сам XOR.
    Как к этому всему относится ROR/ROL не очень ясно.