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.

martes, 23 de marzo de 2010







Lenguaje Ensamblador

1.-¿Que es el lenguaje ensamblador?
R=El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informaticos, y constituye la representacion mas directa del codigo maquina especifico para cada arquitectura de computadoras legible por un programador.

2.-¿Para que te sirve el lenguaje ensamblador?

R=Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido.

3.-¿Menciona al menos 2 ejemplos de donde se puede aplicar el lenguaje ensamblador?

R=Ejemplo;nombre de la instrucción Operando 1, Operando 2, Operando 3, Operando 4, ...El nombre de la instrucción está formada por 2 o 3 letras, los operandos pueden ser registros, constantes o direcciones de memoria. La cantidad de operandos dependerá de la instrucción.Por ejemplo:MOV AL, [1000]Esta instrucción indica que se copie el valor de la porción de la memoria que esté en la ubicación 1000 (En hexadecimal) a la parte baja del registro AX (AL). Cuando un operando es un valor de una dirección de memoria, ésta dirección se escribe entre corchetes, recordar que el operando 1 es el destino y el operando 2 es el origen. Y cuando es una constante dependerá del ensamblador, en el caso del debug (Un programa que sirve para crear y editar aplicaciones que viene con el DOS) se interpretarán como hexadecimales, en los siguientes ejemplos se interpretará que las constantes son números hexadecimales.

4.-¿Como se realiza el manejo de memoria?

R=La unidad de manejo de memoria (Lat.) o unidad de gestión de memoria (Esp.) (en inglés: Memory Management Unit o simplemente MMU) es un dispositivo de Hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU).

Entre las funciones de este dispositivo se encuentran la traducción de las direcciones lógicas (o virtuales) a direcciones físicas (o reales), la protección de la memoria, el control de caché y, en arquitecturas de computadoras más simples (especialmente en sistemas de 8 bits), Bank switching.
Cuando la CPU intenta acceder a una dirección de memoria lógica, la MMU realiza una búsqueda en una memoria caché especial llamada Buffer de Traducción Adelantada (TLB, Translation Lookaside Buffer), que mantiene la parte de la tabla de páginas usada hace menos tiempo. En esta memoria se mantienen entradas de la tabla de páginas (llamadas PTE por sus siglas en inglés, Page Table Entry), donde se pueden rescatar las direcciones físicas correspondientes a algunas direcciones lógicas, de forma directa.

5.-¿Que es el direccionamiento en lenguaje ensamblador?

R=El direccionamiento en ensambladores son programas que procesan los enunciados del programa origen en lenguaje ensamblador y los traducen en archivos en lenguaje máquina que son ejecutados por un microprocesador o un microcontrolador.
Los ensambladores permiten que los programas origen se escriban y se editen en una computadora para generar un código ejecutable en otra computadora. El archivo en lenguaje objeto ejecutable resultante se carga y se ejecuta en el sistema destino.

El campo de operación de una instrucción especifica la operación que se va a ejecutar. Esta operación debe realizarse sobre algunos datos almacenados en registros de computadora o en palabras de memoria. La manera en que eligen los operandos durante la ejecución del programa depende del modo de direccionamiento de la instrucción. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de dirección de la instrucción antes de que se haga la referencia real al operando.
6.-¿Cuales son los tipos de direccionamiento?
R=1.-Direccionamiento inmediato.

2.-Direccionamiento directo.

3.-Direccionamiento relativo a registro.

4.-Direccionamiento indexado.

5.-Direccionamiento indirecto.

6.-Combinaciones de modos basicos de direccionamiento.

7.-Direccionamiento paginado y direccionamiento segmentado.

7.-¿Que es el formato de un programa?




Etiqueta, variable o constante: No siempre es definida, si se define es necesario utilizar separadores para diferenciarla de las otras partes, usualmente espacios, o algún símbolo especial.

Directiva o instrucción: es el nombre con el que se conoce a la instrucción que queremos que se ejecute.

Operando(s): la mayoría de las instrucciones en ensamblador trabajan con dos operandos, aunque hay instrucciones que funcionan solo con uno. El primero normalmente es el operando destino, que es el depósito del resultado de alguna operación; y el segundo es el operando fuente, que lleva el dato que será procesado. Los operandos se separan uno del otro por medio de una coma ",".

Comentario: como su nombre lo indica es tan solo un escrito informativo, usado principalmente para explicar que está haciendo el programa en determinada linea; se separa de las otras partes por medio de un punto y coma ";". Esta parte no es necesaria en el programa, pero nos ayuda a depurar el programa en caso de errores o modificaciones.

martes, 2 de marzo de 2010






1.-¿En que se basa el modelo de jon von newman?
R=Cada computadora se basa en el modelo de von newman.el modelo examina el interior de la computadora (la caja negra) y define como se realiza el prosesamiento.
Tambien define una computadora con cuatro subsistemas: memoria,unidad logica aritmetica, unidad de control, y entrada/salida.
La memoria:es el area de almacenamiento, donde los programas y los datos se almacenan durante el procesamiento.
La unidad aritmetica logica:(ALU) es donde el calculo aritmetico y las operaciones logicas toman lugar.
La unidad de control:determina las operaciones de la memoria de la ALU y del subsistema de entrada/salida.
La entrada/salida:envia el resultado de procesamiento al exterior.

2.-¿Cuales son los lenguajes formales y sus caracteristicas principales?
R=Los lenguajes formales son lenguaje cuyo simbolos primitivos y reglas para unir esos simbolos formalmente estan especificados.Los lenguajes formales son construcciones artificiales humanas, que se usan en matematicas y en otras diciplinas formales,incluyendo lenguajes de programacion.

3.-¿Que son los editores y para que sirven?
R=Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos unicamente por textos sin formato conocidos comunmente como archivos de texto o texto plano son incluidos, en el sistema operativo o en algun paquete de software.
4.-¿Que son editores de caracter?
R=Es el uso de logos u otros items para ser usados en cualquier documento se puede volver engorroso con los metodos tradicionales.
5.-¿Que son los editores de linea?
R=Se usa para crear o editar la tabla de definicion de campos y la tabla de seleccion de campos estas tablas estan formadas por una o mas lineas cada una de las cuales representa un elemento descriptivo aunque cada tabla tiene una estructura propia de sus elementos los comandos del editor de lineas en ambos casos es identico.

6.-¿Que son los editores de pantalla?
R=un editor de pantalla completa es aquel editor que nos permite ver el documento que estamos escriviendo a medida que lo hacemos en contraposicion a un editor de linea que solo nos permite ver la linea que estamos editando.




7.-¿Que son los lenguajes de programacion?
R=Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar.
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
lenguajes imperativos;
lenguajes funcionales.
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición.
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones.
8.-¿Lenguajes de alto nivel?
R=El lenguaje de alto nivel (high-level language) es aquel que se aproxima más al lenguaje natural humano que al lenguaje binario de las computadoras, el que se conoce como lenguaje de bajo nivel.
Su función principal radica en que a partir de su desarrollo, existe la posibilidad de que se pueda utilizar el mismo programa en distintas máquinas, es decir que es independiente de un hardware determinado. La única condición es que la PC tenga un programa conocido como traductor o compilador, que lo traduce al lenguaje específico de cada máquina.
9.-¿Lenguajes de medio nivel o intermedio?
R= En computación, un lenguaje intermedio es el lenguaje de una máquina abstracta diseñada para ayudar en el análisis de los programas de computadora. Una variante del significado de "lenguaje intermedio" se da en esos lenguajes de alto nivel que no soportan o no generan un archivo objeto o código máquina, pero sí generan un lenguaje intermedio. Luego ese lenguaje intermedio se transfiere a un compilador que termina de realizar el archivo objeto o el código máquina.
10.-¿Lenguajes de alto nivel?
R=Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas.
En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.
Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida.
Por esta razón, a finales de los
años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".
11.-¿Tipos de compiladores e interpretes?
R=Son documentos que recogen, contienen y difunden información sonora perceptible a través del sentido del oído. Para el acceso a su contenido informativo es necesario el uso de aparatos lectores específicos.
Tipo de información
*Contenidos sonoros de palabras (poema) y “especiales” (puerta abriendose)
* Contenidos sonoros de música clásica (tit. uniforme) y no clásica


12.-¿Tipo de compiladores?
R= Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.[1]
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
13.-¿Cual es la diferencia entre compiladores e interpretes?
R=Puede resultarte de ayuda establecer una analogía entre compiladores e intŕrpretes de lenguajes de programación y traductores e interprétes de idiomas.Un compilador actúa como un traductor que recibe un libro escrito en un idioma determinado (lenguaje de alto nivel) y escribe un nuevo libro que, con mayor fidelidad posible, contiene una traducción de texto original a otro idioma (código de maquina). El proceso de traducción (compilación) tiene lugar una sola vez y podemos leer el libro (ejecutar el programa) en el idioma destino (código maquina) cuantas veces queramos.