martes, 20 de abril de 2010

Instrucciones De Lenguaje En Ensamblador

1.-Instrucciones Aritmeticas
R=Son utilizadas para realizar operaciones lógicas sobre los operandos.
AND, NEG, NOT, OR,TEST ,XOR
Se usan para realizar operaciones aritméticas sobre los operandos.
ADC , ADD , DIV , IDIV , MUL ,IMUL , SBB , SUB

ropósito: Realiza la conjunción de los operandos bit por bit.

Sintaxis:

AND destino, fuente

Con esta instrucción se lleva a cabo la operación "y" lógica de los dos operandos:



Fuente Destino | Destino
--------------------------
1 1 | 1
1 0 | 0
0 1 | 0
0 0 | 0

Propósito: Genera el complemento a 2

Sintaxis:

NEG destino

Esta instrucción genera el complemento a 2 del operando destino y lo almacena en este mismo operando. Por ejemplo, si AX guarda el valor de 1234H, entonces:

NEG AX

Nos dejaría almacenado en el registro AX el valor EDCCH.

Instrucción NOT

Propósito: Lleva a cabo la negación bit por bit del operando destino.

Sintaxis:

NOT destino

El resultado se guarda en el mismo operando destino.

Instrucción OR

Propósito: OR inclusivo lógico

Sintaxis:

OR destino, fuente

La instrucción OR lleva a cabo, bit por bit, la disyunción inclusiva lógica de los dos operandos:



Fuente Destino | Destino
--------------------------
1 1 | 1
1 0 | 1
0 1 | 1
0 0 | 0

Instrucción TEST

Propósito: Comparar logicamente los operandos

Sintaxis:

TEST destino, fuente

Realiza una conjunción, bit por bit, de los operandos, pero a diferencia de AND esta instrucción no coloca el resultado en el operando destino, solo tiene efecto sobre el estado de las banderas.

Instrucción XOR

Propósito: OR exclusivo

Sintaxis:

XOR destino, fuente

Su función es efectuar bit por bit la disyunción exclusiva lógica de los dos operandos.



Fuente Destino | Destino
--------------------------
1 1 | 0
0 0 | 1
0 1 | 1
0 0 | 0

Instrucción ADC

Propósito: Adición con acarreo.

Sintaxis:

ADC destino, fuente

Lleva a cabo la suma de dos operandos y suma uno al resultado en caso de que la bandera CF esté activada, esto es, en caso de que exista acarreo.

El resultado se guarda en el operando destino.

Instrucción ADD

Propósito: Adición de los operandos.

Sintaxis:

ADD destino, fuente

Suma los dos operandos y guarda el resultado en el operando destino.

Instrucción DIV

Propósito: División sin signo

Sintaxis:

DIV fuente

El divisor puede ser un byte o palabra y es el operando que se le da a la instrucción.

Si el divisor es de 8 bits se toma como dividendo el registro de 16 bits AX y si el divisor es de 16 bits se tomara como dividendo el registro par DX:AX, tomando como palabra alta DX y como baja AX.

Si el divisor fué un byte el cociente se almacena en el registro AL y el residuo en AH, si fué una palabra el cociente se guarda en AX y el residuo en DX.

Instrucción IDIV

Propósito: División con signo

Sintaxis:

IDIV fuente

Consiste basicamente en lo mismo que la instrucción DIV, solo que esta última realiza la operación con signo.

Para sus resultados utiliza los mismos registros que la instrucción DIV.

Instrucción MUL

Propósito: Multiplicación sin signo

Sintaxis:

MUL fuente

El ensamblador asume que el multiplicando sera del mismo tamaño que el del multiplicador, por lo tanto multiplica el valor almacenado en el registro que se le da como operando por el que se encuentre contenido en AH si el multiplicador es de 8 bits o por AX si el multiplicador es de 16 bits.

Cuando se realiza una multiplicación con valores de 8 bits el resultado se almacena en el registro AX y cuando la multiplicación es con valores de 16 bits el resultado se almacena en el registro par DX:AX.

Instrucción IMUL

Propósito: Multiplicación de dos enteros con signo.

Sintaxis:

IMUL fuente

Este comando hace lo mismo que el anterior, solo que si toma en cuenta los signos de las cantidades que se multiplican.

Los resultados se guardan en los mismos registros que en la instrucción MUL.



.
2.-Instrucciones de comparacion

R=Estas instrucciones permiten la comparación de valores de datos.
Si la comparación es verdadera dará continuidad lógica y ejecutará la instrucción siguiente de la línea

Los parámetros que necesita cada instrucción en el formato general son: Ver imagen en tamaño completo

Expresión: Operandos y definición de la comparación que se desea realizar.

En el formato específico para cada instrucción habría que definir los parámetros
Fuente A: Operando 1.

Fuente B: Operando 2.

Los operandos pueden ser :

ENTEROS: del tipo I, O, S, B,C,R,N,BCD o ASCII.

COMA FLOTANTE: del tipo F

CONSTANTES: Números enteros o en coma flotante

Si se utilizan palabras de los ficheros ASCII o BCD el procesador interpretará los datos como números enteros:

En una misma instrucción de comparación se pueden mezclar números enteros y en coma flotante.

El comportamiento de una instrucción de comparación dentro de una línea de programación escalonada es similar a las de tipo relé.

Estas instrucciones se pueden asociar en paralelo y en serie con cualquiera de las instrucciones de tes.


3.-Instrucciones de salto
R=Instrucciones de salto Son utilizadas para transferir el flujo del proceso al operando indicado.
JMP
JA (JNBE)
JAE (JNBE)
JB (JNAE)
JBE (JNA)
JE (JZ)
JNE (JNZ)
JG (JNLE)
JGE (JNL)
JL (JNGE)
JLE (JNG)
JC
JNC
JNO
JNP (JPO)
JNS
JO
JP (JPE)
JS

Instrucciones de conteo Se utilizan para decrementar o incrementar el contenido de los contadores.
DEC
INC
Instrucciones de comparación Son usadas para comparar operandos, afectan al contenido de las banderas.
CMP
CMPS (CMPSB) (CMPSW)
Instrucciones de banderas Afectan directamente al contenido de las banderas.
CLC
CLD
CLI
CMC
STC
STD


4.-Instrucciones para el STACk
R=Stack” significa pila en inglés, pila en el sentido de “apilar cosas”, no de batería eléctrica. Es una zona de la memoria en donde se guardan cosas. Por ejemplo las variables locales de las subrutinas y funciones, los parámetros, algunos resultados intermedios de cálculos complejos, etc. Todo el manejo del stack lo realiza el compilador de forma automática, así que no hace falta preocuparse salvo cuando se acaba el lugar y el programa genera un error (“stack overflow”). Lo más importante de esta estructura es que en cada momento sólo se tiene acceso a la parte superior del stack (no a las cosas que están apiladas debajo).


5.-Que son los macros y para que sirven
Cada uno de los marcos de una página, contiene un documento HTML individual. Por ejemplo, en la imagen inferior puedes ver una página con dos marcos. El marco izquierdo contiene el documento menu.htm y el derecho el documento monos.htm. Para poder visualizar la página de este modo, hemos tenido que abrir en el navegador el documento principal.htm, que en este caso es el contiene los marcos.

Es posible editar los documentos contenidos en los marcos desde la página que contiene el grupo de marcos. Esto facilita el trabajo, ya que es más fácil hacerse una idea de cómo quedará la página al final, cosa que no es posible si se editan individualmente cada uno de los documentos que contiene el marco.

El tabajar con marcos puede resultar una terea algo complicada, sobretodo al principio, por lo que no vamos a profundizar mucho en el tema, y veremos solamente algunos conteptos básicos y ejemplos sencillos.

6.-Que son las interrupciones y aquienes afectan
R=El sistema de interrupciones consiste en un mecanismo por el cual un evento interno o externo, asíncrono respecto del programa, puede interrumpir la ejecución de éste produciendo automáticamente un salto a una subrutina de atención, de manera que pueda atender inmediatamente el evento, y retomar luego la ejecución del programa exactamente en donde estaba en el momento de ser interrumpido.
Este mecanismo es muy útil por ejemplo para el manejo de timers o rutinas que deben repetirse periódicamente (refresco de display, antirrebote para teclado, detección de pulsos externos, recepción de datos, etc.