Conceptos Básicos

  • MOV destino, fuente: transfiere un byte o una palabra desde el operando fuente al operando destino. El destino puede ser un registro o un elemento de memoria. El operando fuente puede ser un registro, un elemento de memoria o un valor inmediato. Ambos operandos deben ser del mismo tipo.

  • PUSH fuente: introduce el dato en la pila. No se puede utilizar CS como operando fuente. Equivale a decrementar el puntero de la pila SP en 2(equivale a una palabra) y luego transferir la palabra del operando fuente a lo alto de la pila.

  • POP destino: Extrae un dato de la pila y lo lleva al destino.

  • Ejemplo

  • POP AX

    MOV AX, {SP}

    ADD SP,2

    Queremos sacar de la pila la variable PEPE:

    POP PEPE

    MOVE AX,{SP}

    ADD SP, 2

    MOVE PEPE,AX

    • IN acumulador, puerto: lee el contenido del puerto de E/S y lleva el dato al acumulador.

    • OUT puerto, acumulador: enviará el dato al puerto de E/S

    • LEA registro, fuente: carga la dirección efectiva de un dato en un registro. El operando fuente debe ser un operando de memoria y el destino es un registro de 16 bits.

    LEA AX, XX {SI}

    Si XX = 1234h

    SI = 0006h

    AX será igual a 123Ah

  •  

    • LDS registro, fuente:transfiere un puntero de 32 bits (dirección completa compuesta por desplazamiento y segmento) correspondiente al segundo operando (debe ser un operando de memoria de doble palabra). El registro de segmento es el DS.

    • LES registro, fuente:igual al anterior pero utiliza el segmento ES.