移位指令包括算术移位指令、逻辑移位指令和循环移位指令。
格式为:xxx oper1、CL/1; 班次次数只能存储在1或CL中。
一.算术移位指令
1、算术左移指令SAL
功能:左移一次,最低有效位补0,最高有效位送入CF标识位。 图:
含义:向左移动n次,等于x2的n次幂。 因此,可用于带符号操作数的x2的n次幂运算。
2、算术右移指令SAR
功能:向右移动一次,最高位保持不变,最低位送入CF标记位。 图:
含义:向右移动n次,即为/2的n次幂。 因此,可用于带符号操作数的/2的n次幂运算。
二.逻辑移位命令
1、SHL逻辑左移
功能:同SAL,如图:
含义:与SAL相同
2 .逻辑右移SHR
功能:向右移动一次,在最高位补0 .差异! 最低有效位进入CF标志位。 图:
含义:用于实现无符号数/2的n次幂操作。
3 .循环移位指令
1 .循环左移指令ROL
功能:左移一次,将最下位及CF送入左移前的最上位。 图:
2 .循环右移命令ROR
功能:右移一次,右移前最低位送入最高位及CF。 图:
3、进位循环左移RCL
功能:左移一次,左移前的最高有效位发送到CF,CF内容发送到最低有效位。 图:
4 .进位循环右移位RCR
功能:向右移动一次,向右移动前的最低有效位发送到CF,CF内容发送到最高有效位。 图:
未完待续:稍后添加一些案例。 现在就写概念的东西。 图是自己做的,有点粗糙。