zoukankan      html  css  js  c++  java
  • 用C语言实现循环左移和循环右移

    有天重建一段代码时,遇到了循环右移指令,不知道用C语言怎么实现,后来得到小伟指点,感谢。。

    me 15:56:38
    004BD2C9 8B55 F8 MOV EDX,DWORD PTR SS:[EBP-8]
    004BD2CC D1CA     ROR EDX,1
    004BD2CE 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX


    me 15:57:16
    这样的汇编,怎么用C语言写出来呢?
    ROR循环右移


    小伟 15:58:51
    等等,翻笔记中。

    小伟 15:59:06
    #define rol( a , o )
    ((a<<(o%0x20)) | (a>>(0x20 - (o%0x20))))
    #define ror( a , o )
    ((a>>(o%0x20)) | (a<<(0x20 - (o%0x20))))

    me 15:59:10
    嘿嘿,有小伟在,不愁了!

    me 15:59:49
    #define ror( a , o )
    怎么用的,这个?

    me 16:00:01
    a是什么
    o又是?

    小伟 16:00:16
    ror(xx,1)

    me 16:01:01
    ror(xx,1)这个意思是 单字节循环右移1位?

    小伟 16:01:13
    是的

    me 16:01:22
    ROR EDX,1
    我这个是4字节的

    小伟 16:01:35
    反正就那样用。

  • 相关阅读:
    HDU1263(map)
    Let the Balloon Rise HDU
    PAT甲级1007
    PAT乙级1041
    PAT乙级1037
    PAT乙级1031
    PAT乙级1025
    Hanoi(栈实现)
    《全球资产配置》读后感 读书笔记
    《与内心的恐惧对话》读后感 读书笔记
  • 原文地址:https://www.cnblogs.com/huhu0013/p/3899288.html
Copyright © 2011-2022 走看看