移位指令( shift) 将操作数移动一位或多位,分成逻辑移位和算术移位, 分别具有左移或右移操作 SHL reg/mem, 1/CL SL与sH相同演示 SHR reg/mem, 1/CL/ SAL reg/mem, 1/CL SAR reg/mem, 1/CL 图示 算术石移,最低位进入最高位才
移位指令(shift) ◼ 将操作数移动一位或多位,分成逻辑移位和算术移位, 分别具有左移或右移操作 SHL reg/mem,1/CL ;逻辑左移,最高位进入CF,最低位补0 SHR reg/mem,1/CL ;逻辑右移,最低位进入CF,最高位补0 SAL reg/mem,1/CL ;算术左移,最高位进入CF,最低位补0 SAR reg/mem,1/CL ;算术右移,最低位进入CF,最高位不变 SAL与SHL相同 演示 图示
移位指令的操作数 移位指令的第一个操作数是指定的被移 位的操作数,可以是寄存器或存储单元 ■后一个操作数表示移位位数,该操作数 为1,表示移动一位;当移位位数大于1 时,则用CL寄存器值表示,该操作数表 达为CL
移位指令的操作数 ◼ 移位指令的第一个操作数是指定的被移 位的操作数,可以是寄存器或存储单元 ◼ 后一个操作数表示移位位数,该操作数 为1,表示移动一位;当移位位数大于1 时,则用CL寄存器值表示,该操作数表 达为CL
移位指令对标志的影响 ■按照移入的位设置进位标志CF ■根据移位后的结果影响SF、zF、PF 对AF没有定义 ■如果进行一位移动,则按照操作数的最高符号 位是否改变,相应设置溢出标志OF:如果移位 前的操作数最高位与移位后操作数的最高位不 同(有变化),则OF=1;否则OF=0。当移 位次数大于1时,OF不确定
移位指令对标志的影响 ◼ 按照移入的位设置进位标志CF ◼ 根据移位后的结果影响SF、ZF、PF ◼ 对AF没有定义 ◼ 如果进行一位移动,则按照操作数的最高符号 位是否改变,相应设置溢出标志OF:如果移位 前的操作数最高位与移位后操作数的最高位不 同(有变化),则OF = 1;否则OF = 0。当移 位次数大于1时,OF不确定