Instrucoes do 8088



- Movimentacao de Dados



  - LAHF

    - carrega o registrador AH com conteudo de registrador de flags



  - LDS op1,op2

    - carrega o registrador DS com valor do segmento onde se encontra 

      o op2, e carrega o op1 com o endereco relativo do op2

      - nao afeta as flags

      - op1 -> registrador de 16 bits

      - op2 -> endereco de memoria



  - LES op1,op2

    - carrega o registrador ES com valor do segmento onde se encontra 

      o op2, e carrega o op1 com o endereco relativo do op2

      - nao afeta as flags

      - op1 -> registrador de 16 bits

      - op2 -> endereco de memoria



  - PUSH op

    - op -> registrador de 16 bits (mem ou reg)

    - nao afeta as flags

    - sequencia

      - decrementa SP

      - move byte de mais alta ordem para o endereco SS:SP

      - decrementa SP

      - move byte de mais baixa ordem para o endereco SS:SP



  - POP op

    - retira o valor da pilha e coloca em op

    - sequencia

      - move o conteudo da memoria SS:SP para o byte de mais baixa ordem do op

      - incrementa SP

      - move o conteudo da memoria SS:SP para o byte de mais alta ordem do op

      - incrementa SP



  - POPF (op=flags)

    - retira o valor da pilha e coloca nas flags



  - XCHG op1,op2

    - troca os conteudos dos operadores

    - nao afeta as flags



  - XLAT 

    - funcao: substitui o valor em AL pelo contido na memoria [BX+AL]

    - operadores implicitos AL,BX

    - nao afeta as flags



  - ADD

    - soma o valor contido em op2 ao op1 e coloca o resultado em op1

    - flags afetadas: CF, OF, ZF, SF, PF, AF



  - SUB

    - subtrai o valor contido em op2 pelo op1 e coloca o resultado em op1

    - flags afetadas: CF, OF, ZF, SF, PF, AF



  - INC op

    - soma 1 ao operador (add op,1)

    - operando: mem ou reg -> 8 ou 16 bits

    - flags afetadas: OF, ZF, SF, PF, AF



  - DEC op

    - subtrai 1 ao operador (sub op,1)

    - operando: mem ou reg -> 8 ou 16 bits

    - flags afetadas: OF, ZF, SF, PF, AF

