1 .算术左移和逻辑左移指令 SAL ( SHL ) 语句格式: SAL OPD , 1 或 SHL OPD , 1 SAL OPD , CL 或 SHL OPD , CL 功能:将( OPD )向左移动 CL 指定的次数,最低位补入相应的0, CF 的内容为最后移入位的值。
2 .算术右移指令 SAR 语句格式: SAR OPD , 1 或 SAR OPD , CL 功能:将( OPD )向右移动 CL 指定的次数且最高位保持不变; CF 的内容为最后移入位的值。 【例】算术右移运算。 MOV BH , 0F 4H ; (BH)= 0F 4H,1111 0100B MOV CL , 2 ;( CL ) =2 SAR BH , CL ;( BH ) =0FDH ,( CF ) =0 该例语句“ SAR BH , CL ”实际上完成了( BH )/4→ BH 的运算,所以,用 SAR 指令可以实现对有符号数除 2n 的运算( n 为移位次数)。
3 .逻辑右移指令 SHR 语句格式: SHR OPD , 1 或 SHR OPD , CL 功能:将( OPD )向右移动 CL 规定的次数,最高位补入相应个数的0, CF 的内容为最后移入位的值。
4 .循环左移指令 ROL 语句格式: ROL OPD , 1 或 ROL LPD , CL 功能:将目的操作数的最高位与最低位连成一个环,将环中的所有位一起向左移动 CL 规定的次数。 CF 的内容为最后移入位的值。
5 .循环右移指令 ROR 语句格式: ROR OPD , 1 或 ROR OPD , CL 功能:将目的操作数的最高位与最低位连成一个环,将环中的所有位一起向右移动 CL 规定的次数, CF 的内容为最后移入位的值。
6 .带进位的循环左移指令 RCL 语句格式: RCL OPD , 1 或 RCL OPD , CL 功能:将目的操作数连同 CF 标志一起向左循环移动 CL 规定的次数。
7 .带进位的循环右移指令 RCR 语句格式: RCR OPD , 1 或 RCR OD , CL 功能:将目的操作数连同 CF 标志一起向右循环移动所规定的次数。
|