zoukankan      html  css  js  c++  java
  • 169.逻辑指令

    1.逻辑指令

     逻辑运算指令
    AND、OR、NOT、XOR、TEST
     移位指令
    SHL、SHR 、 SAL 、SAR、
    ROL、ROR、RCL、RCR

    2.逻辑运算指令

    3.移位指令

    逻辑左移  

    SHL  OPR, CNT

    shift logical left

     
    逻辑右移

    SHR OPR, CNT

    shift logical right

       

    算术左移

    SAL OPR, CNT

    shift arithmetic left

     (同逻辑左移)  

    算术右移

    SAR OPR, CNT

    shift arithmetic right

       
     循环左移

    ROL OPR, CNT

    rotate left

       
     循环右移

    ROR OPR, CNT

    rotate right

       
    带进位循环左移

    RCL OPR, CNT

    rotate left through carry

       
    带进位循环右移

    RCR OPR, CNT

    rotate right through carry

       

    注意:

    * OPR可用除立即数以外的任何寻址方式   OPR操作数    CNT操作次数
    * CNT=1,SHL OPR, 1
      CNT>1,MOV CL, CNT
      SHL OPR, CL ; 以SHL为例


    * 条件标志位:
    CF = 移入的数值
    OF=1 CNT=1时,最高有效位的值发生变化
    OF=0 CNT=1时,最高有效位的值不变


    移位指令:
    SF、ZF、PF 根据移位结果设置,AF无定义


    循环移位指令:
    不影响 SF、ZF、PF、AF

    例:(AX)= 0012H,(BX)= 0034H,把它们装配成(AX)= 1234H

    MOV CL, 8
    ROL AX, CL
    ADD AX, BX

    例:(BX) = 84F0H
    (1) (BX) 为无符号数,求 (BX) / 2
      SHR BX, 1     ; (BX) = 4278H


    (2) (BX) 为带符号数,求 (BX) ×2
      SAL BX, 1     ; (BX) = 09E0H, OF=1


    (3) (BX) 为带符号数,求 (BX) / 4
      MOV CL, 2
      SAR BX, CL    ; (BX) = 0E13CH

    (3) (BX)=84F0H,把 (BX) 中的 16 位数每 4 位压入堆栈

      MOV   CH, 4          ; 循环次数
      MOV   CL, 4          ; 移位次数
    NEXT: 
      ROL   BX, CL
      MOV   AX, BX
      AND   AX, 0FH
      PUSH  AX
      DEC   CH
      JNZ   NEXT

     

     

     

     

     

  • 相关阅读:
    python开发初识函数:函数定义,返回值,参数
    py基础2--列表,元祖,字典,集合,文件
    python中的urlencode与urldecode
    使用pymysql进行mysql数据库操作
    docker 命令
    docker镜象
    docker的安装
    JS中的prototype(原文地址:http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html)
    linux远程复制和压缩文件的命令
    rosbag 初尝试
  • 原文地址:https://www.cnblogs.com/ZanderZhao/p/11052133.html
Copyright © 2011-2022 走看看