- 注册时间
 - 2008-2-6
 
- 最后登录
 - 1970-1-1
 
- 威望
 -  星
 
- 金币
 -  枚
 
- 贡献
 -  分
 
- 经验
 -  点
 
- 鲜花
 -  朵
 
- 魅力
 -  点
 
- 上传
 -  次
 
- 下载
 -  次
 
- 积分
 - 51605
 
- 在线时间
 -  小时
 
 
 
 
 
 
 | 
 
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册  
 
×
 
对这个专题
有些生疏了
先贴上很早以前的代码- //移位   假设es   =   ds  
 -   //左移   pL   <<   s   =   pA   (s   <   32)  
 -   void   AsmShl(unsigned   long   *   pL,   unsigned   long   *   pA,   unsigned   long   t,   unsigned   long   s)  
 -   {  
 -   if   (t   ==   0)  
 -         return;  
 -   asm   {  
 -           push   ds  
 -           mov     ebx,   t  
 -           mov     ecx,   s  
 -           lea     esi,   dword   ptr   pL  
 -           lea     edi,   dword   ptr   pA  
 -           mov     edx,   0  
 -           cld  
 -           }  
 -   AsmShl1:  
 -   asm   {  
 -           lodsd  
 -           push   eax  
 -           shld   eax,   edx,   cl  
 -           pop     edx  
 -           stosd  
 -           dec     ebx  
 -           jnz   AsmShl1  
 -           mov     bl,   32  
 -           sub     bl,   cl  
 -           mov     cl,   bl  
 -           shr     edx,   cl  
 -           mov     [edi],   edx  
 -           pop     ds  
 -           }  
 -   }  
 -    
 -   //右移   pL   >>   s   =   pA   (s   <   32)  
 -   void   AsmShr(unsigned   long   *   pL,   unsigned   long   *   pA,   unsigned   long   t,   unsigned   long   s)  
 -   {  
 -   if   (t   ==   0)  
 -         return;  
 -   asm   {  
 -           push   ds  
 -           mov     ebx,   t  
 -           mov     ecx,   s  
 -           lea     esi,   dword   ptr   pL  
 -           lea     edi,   dword   ptr   pA  
 -           mov     edx,   [esi]  
 -           add     esi,   4  
 -           dec     ebx  
 -           jz       AsmShr2  
 -           cld  
 -           }  
 -   AsmShr1:  
 -   asm   {  
 -           lodsd  
 -           shrd   edx,   eax,   cl  
 -           xchg   edx,   eax  
 -           stosd  
 -           dec     ebx  
 -           jnz   AsmShr1  
 -           }  
 -   AsmShr2:  
 -   asm   {  
 -           shr     edx,   cl  
 -           mov     [edi],   edx  
 -           pop     ds  
 -           }  
 -   }  
 -    
 -   
 
  复制代码 然后考虑做出优化的代码来
可以用MMX/SSE/SSE2等指令 |   
 
 
 
 |