举例说明常用控制类汇编指令

1、逻辑左移SHL (shift logical left)

  指令的汇编格式:SHL dst,cnt

  指令的基本功能:SHL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置

2、逻辑右移SHR (shift logical right)

  指令的汇编格式:SHR dst,cnt

  指令的基本功能:SHR指令向右逐位移动cnt次,每次逐位移动后,最高位用0来补充,最低位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

3、算术左移SAL (shift arithmeTIc left)

  指令的汇编格式:SAL dst cnt

  指令的基本功能:SAL指令向左逐位移动cnt次,每次逐位移动后,最低位用0来补充,最高位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

4、算术右移SAR (shift arithmetic right)

  指令的汇编格式:SAR dst,cnt

  指令的基本功能:SAR指令向右逐位移动cnt次,每次逐位移动后,最高位用符号位来补充,最低位移入CF。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移位次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

5、循环左移ROL (rotate left)

  指令的汇编格式:ROL dst,cnt

  指令的基本功能:ROL 对由dst指定的寄存器或存储器操作数左移循环移动cnt所指定的次数,每左移一次,把最高位同时移入CF和操作数最低位。指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt〉1时,cnt必须放入CL寄存器中。

  指令对标志位的影响:CF=移入的数值

  OF=1 当cnt=1时,移动后最高位的值发生变化。

  OF=0 当cnt=1时,移动时最高位的值未发生变化。

  SF、ZF、PF根据移动后的结果设置。

6、循环右移ROR (rotate right)

  指令的汇编格式:ROR dst,cnt

  指令的基本功能:ROR 对由dst指定的寄存器或存储器操作数右移循环移动cnt所指定的次数,每右移一次,把最低位同时移入CF和操作数最高位。

  指令支持的寻址方式:目的操作数dst可以是除立即数外的任何寻址方式。移动次数(或位数)cnt=1时,1可以直接写在指令中,cnt》1时,cnt必须放入CL寄存器中。

 

posted @ 2022-11-13 19:34  WangKingP  阅读(493)  评论(0编辑  收藏  举报