// -------------------------------------------------------------------------------------------------------------------------------------------------
//功能说明:32位数据环移
//修改时间:2012年3月1日 10:59:22
//修改说明:
// -------------------------------------------------------------------------------------------------------------------------------------------------
void data32_rol()
{
unsigned char i,temp; //临时值
temp=0;
for(i=0;i<4;i++)
{
temp=temp|_cror_( U8bit32_code[i]&0x80 , 7-i ); //取每个字节的数据的高位
U8bit32_code[i] = U8bit32_code[i] << 1; //所有数据左移一位
}
U8bit32_code[0] = (_cror_( temp , 3 ) & 0x01 ) | U8bit32_code[0]; //将每个高位补入高字节的低位
U8bit32_code[1] = ( temp & 0x01 ) | U8bit32_code[1];
U8bit32_code[2] = (_cror_( temp , 1 ) & 0x01 ) | U8bit32_code[2];
U8bit32_code[3] = (_cror_( temp , 2 ) & 0x01 ) | U8bit32_code[3];
}
// -------------------------------------------------------------------------------------------------------------------------------------------------
//功能说明:64位循环移位
//修改时间:2012年3月13日 10:56:10
//修改说明:
// -------------------------------------------------------------------------------------------------------------------------------------------------
void data64_rol() //64位循环移位
{
unsigned char i,temp; //临时值
temp=0;
for(i=0;i<8;i++)
{
temp=temp|_cror_( U8bit64_code[i]&0x80 , 7-i ); //
U8bit64_code[i] = U8bit64_code[i] << 1; //所有数据左移一位
}
temp=_crol_( temp , 1 ); //把最高位的进位位放入最低位
for(i=0;i<8;i++)
{
U8bit64_code[i] = (temp&0x01)|U8bit64_code[i];
temp=_cror_( temp , 1 );
}
}
|