ITEEDU

5、移位操作指令

5.1、算术左移指令

指令的语法 举例 周期数
SAL reg,1 sal bx,1 1
SAL mem,1 sal word ptr m32[0],1 3
SAL reg,CL sal ah,cl 4
SAL mem,CL sal BYTE PTR [di],cl 4
SAL reg,immed sal cx,6 1
SAL mem,immed sal array[bx+di],14 3

5.2、算术右移指令

指令的语法 举例 周期数
SAR reg,1 sar di,1 1
SAR mem,1 sar count,1 3
SAR reg,CL sar bx,cl 4
SAR mem,CL sar sign,cl 4
SAR reg,immed sar bx,5 1
SAR mem,immed sar sign_count,3 3

5.3、逻辑左移指令

指令的语法 举例 周期数
SHL reg,1 shl si,1 1
SHL mem,1 shl index,1 3
SHL reg,CL shl di,cl 4
SHL mem,CL shl index,cl 4
SHL reg,immed shl di,2 1
SHL mem,immed shl unsign,4 3

5.4、逻辑右移指令

指令的语法 举例 周期数
SHR reg,1 shr dh,1 1
SHR mem,1 shr unsign[di],1 3
SHR reg,CL shr dx,cl 4
SHR mem,CL shr word ptr m32[2],cl 4
SHR reg,immed shr bx,8 1
SHR mem,immed shr mem16,11 3

5.5、双精度左移指令

指令的语法 举例 周期数
SHLD reg16,reg16,immed8 shld ax,dx,10 4
SHLD reg32,reg32,immed8      
SHLD mem16,reg16,immed8 shld bits,cx,5 4
SHLD mem32,reg32,immed8      
SHLD reg16,reg16,CL shld ax,dx,cl 4
SHLD reg32,reg32,CL      
SHLD mem16,reg16,CL shld masker,ax,cl 5
SHLD mem32,reg32,CL      

5.6、双精度右移指令

指令的语法 举例 周期数
SHRD reg16,reg16,immed8 shrd cx,si,3 4
SHRD reg32,reg32,immed8    
SHRD mem16,reg16,immed8 shrd [di],dx,5 4
SHRD mem32,reg32,immed8    
SHRD reg16,reg16,CL shrd ax,dx,cl 4
SHRD reg32,reg32,CL    
SHRD mem16,reg16,CL shrd [bx],ax,cl 5
SHRD mem32,reg32,CL