Instrues de deslocamento e rotao



SHR - Shift Logical Right

    - Desloca um bit a direita (multiplica por 2x)

    - SHR <op1>,<op2>

      - op1: Registrador onde vai ser efetuada o deslocamento (reg 8, reg 16, mem 8, mem 16)

        - Se op1 = 8 bits -> op2 = (1,cl)

        - Se op1 = 16 bits -> op2 = (1,cl,cx)

      - op2: Valor de quantas casas vai ser deslocado (1,cl,cx)

    - Flags: Carry, Overflow, Signal, Zero



SHL - Shift Logical Left

    - Desloca um bit a esquerda (divide por 2x)

    - SHL <op1>,<op2>

      - op1: Registrador onde vai ser efetuada o deslocamento (reg 8, reg 16, mem 8, mem 16)

        - Se op1 = 8 bits -> op2 = (1,cl)

        - Se op1 = 16 bits -> op2 = (1,cl,cx)

      - op2: Valor de quantas casas vai ser deslocado (1,cl,cx)

    - Flags: Carry, Overflow, Signal, Zero



SAL - Shift Arithmetic Left

SAR - Shift Arithmetic Right

    - Desloca a direita (esquerda), permanecendo o sinal.

      - op1: Registrador onde vai ser efetuada o deslocamento (reg 8, reg 16, mem 8, mem 16)

        - Se op1 = 8 bits -> op2 = (1,cl)

        - Se op1 = 16 bits -> op2 = (1,cl,cx)

      - op2: Valor de quantas casas vai ser deslocado (1,cl,cx)

    - Flags: Carry, Overflow, Signal, Zero



ROL - Rotate Logical Left

    - Rotacionamento a esquerda.

      - op1: Registrador onde vai ser efetuada o deslocamento (reg 8, reg 16, mem 8, mem 16)

        - Se op1 = 8 bits -> op2 = (1,cl)

        - Se op1 = 16 bits -> op2 = (1,cl,cx)

      - op2: Valor de quantas casas vai ser deslocado (1,cl,cx)

    - Flags: Carry, Overflow, Signal, Zero



ROR - Rotate Logical Right

    - Rotacionamento a direita.

      - op1: Registrador onde vai ser efetuada o deslocamento (reg 8, reg 16, mem 8, mem 16)

        - Se op1 = 8 bits -> op2 = (1,cl)

        - Se op1 = 16 bits -> op2 = (1,cl,cx)

      - op2: Valor de quantas casas vai ser deslocado (1,cl,cx)

    - Flags: Carry, Overflow, Signal, Zero



CLC - Clear Carry Flag

    - Limpa a Flag de Carry



RCL - Rotate Left Through Carry

    - Rotacionamento a esquerda atravez da flag de Carry.

      - Se op1 = 8 bits -> op1 = 9 bits

      - Se op1 = 16 bits -> op1 = 17 bits

    - Flags: Carry, Overflow, Signal, Zero



RCR - Rotate Right Through Carry

    - Rotacionamento a direita atravez da flag de Carry.

      - Se op1 = 8 bits -> op1 = 9 bits

      - Se op1 = 16 bits -> op1 = 17 bits

    - Flags: Carry, Overflow, Signal, Zero

