Categorieën: Alle - direccionamiento - operadores - extensión - transferencias

door jesus jovanni flores zarza 6 jaren geleden

414

Transferencias de datos, direccionamiento y aritmética

En el ámbito de la programación y la arquitectura de computadoras, es crucial comprender diversos conceptos relacionados con el manejo de datos y direccionamiento. Uno de los aspectos fundamentales es el uso de operandos indirectos e indexados, los cuales permiten manipular direcciones de memoria de manera eficiente.

Transferencias de datos,  direccionamiento y aritmética

Transferencias de datos, direccionamiento y aritmética

Instrucciones JMP y LOOP

Instrucción LOOP
crea un ciclo de conteo
Instrucción JMP
está dentro del mismo procedimiento.
es un salto incondicional a una etiqueta que generalmente

Direccionamiento indirecto

Punteros
Puede declarar una variable de puntero que contiene el desplazamiento de otra variable.
Escalado de índice
Puede escalar un operando indirecto o indexado al desplazamiento de un elemento de matriz.
Operandos indexados
agrega una constante a un registro para generar una dirección efectiva.
Operandos indirectos (2 de 2)
Use PTR para aclarar el atributo de tamaño de un operando de memoria.
Operandos indirectos (1 de 2)
contiene la dirección de una variable, normalmente una matriz o cadena.

flags

Overflow Flag (OF)
se establece cuando el resultado de una operación firmado no es válido o está fuera de rango.
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
Desbordamiento y llevar banderas Un punto de vista de hardware
OF = CF XOR MSB
negar la fuente y agregarla al destino
CF = INVERTIR (llevar a cabo el MSB)
Cómo la instrucción SUB afecta a OF y CF:
CF = (llevar a cabo MSB),OF = CF XOR MSB
Cómo afecta la instrucción ADD OF y CF:
Sign Flag (SF)
se establece cuando el operando de destino es negativo
Zero Flag (ZF)
se establece cuando el resultado de una operación produce cero en el operando de destino.

operandos de desviacion directa

CONT
Se agrega una compensación constante a una etiqueta de datos para producir una dirección efectiva (EA).

Extensión cero

la instrucción MOVZX llena (extiende) la mitad superior del destino con ceros.

Operandos de memoria directa

es una referencia nombrada al almacenamiento en memoria

Operadores y directivas relacionados con datos

Directiva LABEL
Asigna un nombre y tipo de etiqueta alternativos a una ubicación de almacenamiento existente
SIZEOF Operator
devuelve un valor que es equivalente a multiplicar LENGTHOF por TYPE.
LENGTHOF
cuenta el número de elementos en una sola declaración de datos
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.
Orden Little Endian
menos significativo almacenado en la dirección más baja
Los enteros de múltiples bytes se almacenan en orden inverso, con el byte
se refiere a la forma en que Intel almacena enteros en la memoria.
Operador PTR
Anula el tipo predeterminado de una etiqueta (variable)
Operador OFFSET
devuelve la distancia en bytes de una etiqueta desde el comienzo de su segmento adjunto

Adición y resta

Banderas afectadas por la aritmética
Overflow flag
Carry flag
Sign flag
Bandera cero
NEG (negate) Instrucción
Invierte el signo de un operando.
Instrucciones ADD y SUB
Lógica: destino - fuente
Lógica:destino + fuente
INC e DEC Instruciónes
Destino DEC: Lógica: destino - 1
Destino INC : Lógica:destino + 1

estencion de signo

La instrucción MOVSX llena la mitad superior del destino con una copia del bit de signo del operando de origen.

Instrucción MOV

No se permite más de un operando de memoria
Mover desde el origen al destino.

tipos de operandos

Memory
referencia a una ubicación en la memoria
Register
el nombre de un registro
Immediate
un entero constante (8, 16 o 32 bits)