Transferencias de datos, direccionamiento y aritmética
tipos de operandos
Immediate
un entero constante (8, 16 o 32 bits)
Register
el nombre de un registro
Memory
referencia a una ubicación en la memoria
Instrucción MOV
Mover desde el origen al destino.
No se permite más de un operando de memoria
estencion de signo
La instrucción MOVSX llena la mitad superior del destino con una copia del bit de signo del operando de origen.
Adición y resta
INC e DEC Instruciónes
Destino INC : Lógica:destino + 1
Destino DEC: Lógica: destino - 1
Instrucciones ADD y SUB
Lógica:destino + fuente
Lógica: destino - fuente
NEG (negate) Instrucción
Invierte el signo de un operando.
Banderas afectadas por la aritmética
Bandera cero
Sign flag
Carry flag
Overflow flag
Operadores y directivas relacionados con datos
Operador OFFSET
devuelve la distancia en bytes de una etiqueta desde el comienzo de su segmento adjunto
Operador PTR
Anula el tipo predeterminado de una etiqueta (variable)
Orden Little Endian
se refiere a la forma en que Intel almacena enteros en la memoria.
Los enteros de múltiples bytes se almacenan en orden inverso, con el byte
menos significativo almacenado en la dirección más baja
Operador PTR (cont)
e puede usar para combinar elementos de un tipo de datos más pequeño y moverlos a un operando más grande.
LENGTHOF
cuenta el número de elementos en una sola declaración de datos
SIZEOF Operator
devuelve un valor que es equivalente a multiplicar LENGTHOF por TYPE.
Directiva LABEL
Asigna un nombre y tipo de etiqueta alternativos a una ubicación de almacenamiento existente
Operandos de memoria directa
es una referencia nombrada al almacenamiento en memoria
Extensión cero
la instrucción MOVZX llena (extiende) la mitad superior del destino con ceros.
operandos de desviacion directa
Se agrega una compensación constante a una etiqueta de datos para producir una dirección efectiva (EA).
CONT
flags
Zero Flag (ZF)
se establece cuando el resultado de una operación produce cero en el operando de destino.
Sign Flag (SF)
se establece cuando el operando de destino es negativo
Desbordamiento y llevar banderas Un punto de vista de hardware
Cómo afecta la instrucción ADD OF y CF:
CF = (llevar a cabo MSB),OF = CF XOR MSB
Cómo la instrucción SUB afecta a OF y CF:
CF = INVERTIR (llevar a cabo el MSB)
negar la fuente y agregarla al destino
OF = CF XOR MSB
Carry Flag (CF)
El indicador de acarreo se establece cuando el resultado de una operación genera un valor sin signo que está fuera de rango
Overflow Flag (OF)
se establece cuando el resultado de una operación firmado no es válido o está fuera de rango.
Direccionamiento indirecto
Operandos indirectos (1 de 2)
contiene la dirección de una variable, normalmente una matriz o cadena.
Operandos indirectos (2 de 2)
Use PTR para aclarar el atributo de tamaño de un operando de memoria.
Operandos indexados
agrega una constante a un registro para generar una dirección efectiva.
Escalado de índice
Puede escalar un operando indirecto o indexado al desplazamiento de un elemento de matriz.
Punteros
Puede declarar una variable de puntero que contiene el desplazamiento de otra variable.
Instrucciones JMP y LOOP
Instrucción JMP
es un salto incondicional a una etiqueta que generalmente
está dentro del mismo procedimiento.
Instrucción LOOP
crea un ciclo de conteo