郁金香外挂技术-郁金香灬老师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

飞郁网络培训郁金香终身VIP管理员QQ150330575淘宝担保交易QQ交流群(外挂,驱动)
查看: 352|回复: 0

在C、C++语言中 模拟汇编指令的 ROL 循环左移

[复制链接]
发表于 2018-5-9 00:09:54 | 显示全部楼层 |阅读模式
在C、C++语言中 模拟汇编指令的 ROL 循环左移
ROL、ROR、RCL、RCR: 循环移位指令
;ROL(Rotate Left):                循环左移
;ROR(Rotate Right):               循环右移
;RCL(Rotate through Carry Left):  带进位循环左移
;RCR(Rotate through Carry Right): 带进位循环右移

;ROL: 循环左移, 高位到低位并送 CF
;ROR: 循环右移, 低位到高位并送 CF
;RCL: 循环左移, 进位值(原CF)到低位, 高位进 CF
;RCR: 循环右移, 进位值(原CF)到高位, 低位进 CF

;它们的结果影响 OF、CF
;它们的指令格式相同:


#include <stdio.h>


template<typename T> T _ROL(T value, unsigned nLeftBit)
{
//计算位数
size_t nBitCount=sizeof(value)*8;//1字节 8位 所以*8
//ABCDEFGH //DEFGH ABC
//计算左移位数
nLeftBit%=nBitCount; //取余数 以达到循环目的
size_t nRightBit=nBitCount-nLeftBit; //计算需要右移的位数

return (value<<nLeftBit)|(value>>nRightBit);

}
//模拟汇编rol 循环左移指令
unsigned char _ROL1(unsigned char value, unsigned nLeftBit)
{
//计算位数
size_t nBitCount=sizeof(value)*8;//1字节 8位 所以*8
//ABCDEFGH //DEFGH ABC
//计算左移位数
nLeftBit%=nBitCount; //取余数 以达到循环目的
size_t nRightBit=nBitCount-nLeftBit; //计算需要右移的位数

return (value<<nLeftBit)|(value>>nRightBit);

}
char __rol(char c, size_t count)  
{  
size_t bitcount = sizeof(c) * 8;   //计算位数

count %= bitcount;  //取余数
return (c << count) | (c >> (bitcount - count));  
}  
int main(void)
{
unsigned char c1=0x1F;
printf("c1 循环右移=%02X \n",_ROL(c1,1));
printf("c1 循环右移=%02X \n",_ROL1(c1,1));

printf("c1 循环右移=%02X \n",_ROL1(c1,1));
printf("c1 循环右移=%02X \n",__rol(c1,1));
getchar();
return 1;
}


;SHL(Shift Left):             逻辑左移
;SHR(Shift Right):            逻辑右移
;SAL(Shift Arithmetic Left):  算术左移
;SAR(Shift Arithmetic Right): 算术右移

;其中的 SHL 和 SAL 相同, 但 SHR 和 SAR 不同.

;SHL、SAL: 每位左移, 低位补 0,  高位进 CF
;SHR     : 每位右移, 低位进 CF, 高位补 0
;SAR     : 每位右移, 低位进 CF, 高位不变

;它们的结果影响 OF、SF、ZF、PF、CF
;它们的指令格式相同:




郁金香外挂教程,学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|郁金香外挂技术-郁金香灬老师 ( 苏ICP备10059359号 )

GMT+8, 2018-11-17 13:35 , Processed in 0.037759 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表