微机原理—移位指令

来源:互联网 发布:软件产品认证 编辑:程序博客网 时间:2024/05/02 11:45
  • 对寄存器操作数或内存操作数进行指定位数的移位。可一次移一位,也可一次移位CL规定的次数。
  • 非循环移位 SHL SHR SAL SAR
  • 循环移位 ROL ROR RCL RCR

    非循环移位 (B/W)

    • 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,最高位不变

    对标志的影响

    • 按照移入的位设置进位标志CF
    • 根据移位后的结果影响SF、ZF、PF
    • 对AF没有定义
    • 进行1次移位后,如果移位前的操作数最高位与移位后操作数的最高位不同,则OF=1;否则OF=0。

    循环移位(B/W)

    • 将操作数从一端移出的位返回到另一端形成循环,分成不带进位和带进位,分别具有左移或右移操作。

    ROL reg/mem,1/CL ;不带进位循环左移
    ROR reg/mem,1/CL ;不带进位循环右移
    RCL reg/mem,1/CL ;带进位循环左移
    RCR reg/mem,1/CL ;带进位循环右移

    对标志的影响

    • 循环移位指令影响CF和OF标志。
    • 按照移入的位设置进位标志CF
    • 进行1次移位后,如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则OF=1;否则OF=0。
  • 0 0
    原创粉丝点击