lunes, 12 de marzo de 2012

Saltos, Ciclos, Operadores lógicos y más Instrucciones


Instrucciones

Una instrucción es un enunciado que se vuelve ejecutable cuando se ensambla un programa
El ensamblador traduce las instrucciones en bytes de lenguaje de maquina, para que el CPU los cargue y los lleve a cabo en tiempo de ejecución.

Una instrucción contiene cuatro partes básicas:

·         Etiqueta (opcional).
·         Nemónico de instrucción (requerido)
·         Operando(s) (por lo general, son requeridos)
·         Comentarios (opcional).

Ésta es la sintaxis básica:
[etiqueta:] nemónico operando(s) [comentarios]

Formato de una Instrucción

Un nemónico de instrucción es una palabra corta que identifica a una instrucción. En ingles, un nemónico es un dispositivo que ayuda a la memoria. De manera similar, los nemónicos de instrucciones en le lenguaje ensamblador, proporcionan sugerencias acerca del tipo de operación que realizan.

MOV   mueve un datos a un destino
ADD  suma dos valores
SUB   resta dos valores
JMP   salta a una nueva ubicación
CALL llama a un procedimiento

Un salto en lenguaje de maquina es hacer un cambio de secuencia del programa en direccionamiento en forma intencional.

Salto a direcciones mas bajas
23553     MOV AX,6500
 .
 .
 .
23567     JMP 23553

Salto a direcciones mas altas
D3A81     JMP D3A97
 .
 .
 .
D3A97    XCHG BH,DL
Ya que el direccionamiento de una instrucción es dado por los registros CS e IP,  estos son los que se moveran cuando se genere un salto.
D.R. = (CS * 10) + IP
Los saltos se pueden realizar dentro del mismo segmento o se pueden transferir a otro segmento diferente.
Saltos Condicionales


JXXX
Tiene un  tamaño de 8 bitsabarca de  00  hasta FF y tiene signo. XXX Representa la condición
Esta condición se maneja por medio de las banderas de estado: CF, OF, ZF, PF y SF.
El +128 significa que el desplazamiento es positivo. Valor hexadecimal del 00 al 7F, ejem.

JXXX  48


La manera tradicional de manejar la instrucción es colocar el valor del desplazamiento (positivo o negativo).

En el debug en el parámetro desplazamiento se coloca la dirección a donde va a saltar.

 
CICLOS

LOOP : Tiene un  tamaño de 8 bitsabarca de  00  hasta FF y tiene signo .

Ejecutar un BUCLE consiste en repetir “n” veces una serie de instrucciones de una sección del programa.

Esta instrucción, en el momento que se ejecuta, realiza los siguientes pasos:
1°Decrementa a CX en un uno.(CX=CX-1)

2°Checa el valor de CX, y
   -SI CX es diferente de cero, realiza el salto correspondiente de acuerdo al valor del desplazamiento.
   -Si CX es igual a cero, continua con la      siguiente instrucción debajo de ella.
Operadores lógicos

AND: FUNCION LOGICA “Y
OR: FUNCION LOGICA “O”
XOR: FUNCION LOGICA “O” EXCLUSIVO
TEST: FUNCION LOGICA “Y” SIN RESULTADO

Banderas afectadas: AF , ZF , PF , SF

2 comentarios: