martes, 27 de marzo de 2012
VIdeo tutoail hola mundo en compilador
hola mundo en compilador video tutorial http://www.youtube.com/my_videos_upload
sábado, 17 de marzo de 2012
MASM 6.11
El Microsoft Macro Assembler es un x86 ensamblador que utiliza la sintaxis de Intel de Microsoft Windows . As of 2011 [update] there was a version of the Microsoft Macro Assembler for 16-bit and 32-bit assembly sources, MASM , and a different one, ML64 , for 64-bit sources only. A partir de 2011 [update] había una versión de Microsoft Macro Assembler para 16-bit y 32-bit fuentes de la asamblea, MASM, y otra distinta, ML64, para 64-bit sólo las fuentes. References below to MASM include ML64 where appropriate. Las referencias siguientes a MASM ML64 incluyen en su caso.
MASM is maintained by Microsoft , but since version 6.12 has not been sold as a separate product, but supplied with various Microsoft SDKs and C compilers. MASM es mantenido por Microsoft , pero desde la versión 6.12 no se ha vendido como un producto separado, pero se suministra con varios Microsoft SDK y C compiladores. As of 2011 [update] , MASM 8.0 was available free of charge for download from Microsoft for non-commercial use only. [ 1 ] It will only install if Visual C++ 2005 Express , also downloadable without charge, is already installed. A partir de 2011 [update] , MASM 8.0 estaba disponible de forma gratuita para su descarga de Microsoft para uso no comercial solamente. [1] , sólo se instalará si Visual C + + 2005 Express , también se puede descargar de forma gratuita, ya está instalado.
LINK PARA PROGRAMAR E INSTALAR :
http://www.youtube.com/watch?v=qOvw37rMCds&feature=player_detailpage
MASM is maintained by Microsoft , but since version 6.12 has not been sold as a separate product, but supplied with various Microsoft SDKs and C compilers. MASM es mantenido por Microsoft , pero desde la versión 6.12 no se ha vendido como un producto separado, pero se suministra con varios Microsoft SDK y C compiladores. As of 2011 [update] , MASM 8.0 was available free of charge for download from Microsoft for non-commercial use only. [ 1 ] It will only install if Visual C++ 2005 Express , also downloadable without charge, is already installed. A partir de 2011 [update] , MASM 8.0 estaba disponible de forma gratuita para su descarga de Microsoft para uso no comercial solamente. [1] , sólo se instalará si Visual C + + 2005 Express , también se puede descargar de forma gratuita, ya está instalado.
LINK PARA PROGRAMAR E INSTALAR :
http://www.youtube.com/watch?v=qOvw37rMCds&feature=player_detailpage
LENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACION
Un lenguaje
de programación es un idioma artificial diseñado para expresar computaciones que pueden
ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de
una máquina, para expresar algoritmos con precisión, o como modo de
comunicación humana.[1] Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus
elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le
llama programación.
También la palabra programación se define como el
proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos,
a través de los siguientes pasos:
- El desarrollo lógico del programa para resolver un problema en particular.
- Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
- Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
- Prueba y depuración del programa.
- desarrollo de la documentación.
CLASIFICACIÓN DEL LENGUAJE
EMSAMBLADOR
1.- El lenguaje máquina es la forma más baja de un lenguaje de programación. Cada instrucción en un programa se representa por un código numérico, y unas direcciones (que son otros códigos numéricos) que se utiliza para referir las asignaciones de memoria del ordenador. El lenguaje máquina es la notación que entiende directamente el ordenador, está en binario o en notación hexadecimal, y el repertorio de sus instrucciones, así como la estructura de éstas, están ligadas directamente a la arquitectura de la máquina. Los ordenadores actuales se basan en la arquitectura de la máquina deVon Neumann [BURK46, FERN94].La máquina de VonNeumann tiene un repertorio de instrucciones basado en datos, operaciones aritméticas, asignaciones de posiciones de memoria y control de flujo. Véase en el anexo I una breve descripción del lenguaje máquina de los microprocesadores 80x86.
2.- El
lenguaje ensamblador es
esencialmente una versión simbólica de un lenguaje máquina. Cada código de operación
se indica por un código simbólico. Por ejemplo ADD para adición y MUL para
multiplicación. Además, las asignaciones de memoria se dan con nombres
simbólicos, tales como PAGO y COBRO. Algunos ensambladores contienen
macroinstrucciones cuyo nivel es superior a las instrucciones del ensamblador.
Véase el anexo II el lenguaje ensamblador de la familia de los
microprocesadores 80x86.
3.- Lenguajes de
programación de bajo nivel: Son mucho mas fáciles de utilizar que el lenguaje
máquina, pero dependen mucho de la máquina o computadora como sucedía con el
lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de
programación que trato de sustituir el lenguaje máquina por otro mucho más parecido
al de los seres humanos. En este lenguaje se conoce como programa fuente a un
programa de instrucciones escrito en lenguaje ensamblador por el programador, y
programa objeto es la traducción a lenguaje máquina del programa fuente.Los
lenguajes de este tipo pueden crear programas muy rápidos, pero son
difíciles de aprender, son específicos de cada procesador, si nos
llevamos el programa a otro computador será preciso reescribir el programa
desde el comienzo.
4.- Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender.Los lenguajes de programación de alto nivel son más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este es el caso del BASIC, el lenguaje de programación más conocido.Existen muchos lenguajes de programación de alto nivel con sus diferentes versiones. Por esta razón es difícil su tipificación, pero una clasificación muy extendida desde el punto de vista de trabajar de los programas y la filosofía de su creación es la siguiente:
4.- Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender.Los lenguajes de programación de alto nivel son más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este es el caso del BASIC, el lenguaje de programación más conocido.Existen muchos lenguajes de programación de alto nivel con sus diferentes versiones. Por esta razón es difícil su tipificación, pero una clasificación muy extendida desde el punto de vista de trabajar de los programas y la filosofía de su creación es la siguiente:
- Lenguajes de
programación imperativos: entre ellos tenemos el Cobol, Pascal, C y
Ada.
- Lenguajes de programación declarativos: el Lisp y el Prolog.
- Lenguajes de programación orientados a objetos: el Smalltalk y el C++.
- Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para gestión.
- Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el diseño y la construcción de programas al lenguaje de las personas.
Ada.
- Lenguajes de programación declarativos: el Lisp y el Prolog.
- Lenguajes de programación orientados a objetos: el Smalltalk y el C++.
- Lenguajes de programación orientados al problema: son aquellos lenguajes específicos para gestión.
- Lenguajes de programación naturales: son los nuevos lenguajes que pretender aproximar el diseño y la construcción de programas al lenguaje de las personas.
Según su generación
Ø La primera
generación está
constituida por los lenguajes máquina y ensamblador desarrollados en los años cuarenta
y cincuenta.
Ø La segunda
generación comienza
con el desarrollo del primer compilador deFORTRANen el año 1958 y continua hasta
mediados de los años sesenta con la normalización por el American National
Standard Institute (ANSI) de los lenguajes de programación, ligados hasta
ese momento a marcas comerciales. Se caracteriza por los lenguajes con
asignación estática de memoria, es decir toda la memoria se asigna en tiempo de
compilación. Estos lenguajes no tenían ni recursividad, ni manejaban
estructuras dinámicas de datos. Ejemplos de estos lenguajes son FORTRAN y
COBOL.
Ø La tercera
generación está
ligada al término programación estructurada, y se desarrolla entre
mediados de los años sesenta y mediados de los años setenta, aunque a nivel de
lenguajes sus raíces están en el lenguaje Algol 60 (desarrollado a principios
de los años sesenta). Como características principales de los lenguajes de esta
generación son:uso de módulos o subprogramas, variables locales, recursividad,
y estructuras dinámicas. Ejemplos de estos lenguajes son: Algol 60, PL/I, Algol
68, Pascal, Modula, y C.
Ø La cuarta
generación está
caracterizada por lenguajes de muy alto nivel dedicados a tareas específicas,
en muchos casos denominados herramientas. Una gran parte de ellos están
dedicados a la gestión de bases de datos y a la generación de aplicaciones con
herramientas CASE. El desarrollo de estos lenguajes se produce desde mediados de
los años setenta hasta finales de los ochenta. Ejemplos: SQL, DB2, DBASE,
Ingress, Natural, Ideal, Application Factory, etc.
Ø La quinta
generación está asociada a los lenguajes ligados a la
Inteligencia Artificial. La mayor parte de este tipo de lenguajes son versiones
actualizadas o descendientes de los lenguajes Lisp y Prolog. Aunque el lenguaje
Lisp data de 1959, el desarrollo intenso de estos lenguajes se produce desde
principios de los años ochenta a principios de los noventa. Ejemplos: Common
Lisp, Prolog, Parlog, ML, Haskell, Miranda, etc.
Ø Generación
orientada a objetos. Es
la última generación puede decirse que comienza a mediados de los años ochenta,
aunque el primer lenguaje orientado a objetos fue el Simula 67, presentado en el
año 1967. Smalltalk se comenzó a desarrollar a principios de los años setenta,
desembocando en el Smalltalk 80, de amplio uso en la decada de los años
ochenta. El desarrollo del lenguaje Ada (basado en objetos, no orientado a
objetos) a finales de los 70 y la proliferación de las Interfaces Gráficas de
Usuario (IGU) a finales de los ochenta ha implicado la creación de nuevos
lenguajes o la ampliación de lenguajes para introducir el paradigma de orientación a objetos. Ejemplos: Simula,
Smalltalk, C++, Object Pascal, Turbo Pascal, CLOS, ObjectLisp, Eiffel, y
Oberon.
Ø Generación
visual.
Comienza a principios de los años noventa, ligado a la exigencia de los
usuarios de disponer
de interfaces
amigables. La mayor parte de las características visuales van orientadas al
diseño del interfaz de usuario. Ejemplos: Visual Basic, Delphi (versión
visual del lenguaje Object Pascal)
Ø Generación
internet.
Comienza a mediados de los años noventa, ligado a la gran explosión de internet
y a la
necesidad de
manejar aplicaciones en distintas plataformas dentro de toda la red. El
lenguaje más característico es Java, pero también se podrían incluir dentro de
esta generación: XML, HTML, VRML y otros.
VENTAJAS Y DESVENTAJAS DEL LENGUAJE DE BAJO NIVEL
- Mayor adaptación al equipo.
- Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
- Imposibilidad de escribir código independiente de la máquina.
- Mayor dificultad en la programación y en la comprensión de los programas.
- El programador debe conocer más de un centenar de instrucciones.
- Es necesario conocer en detalle la arquitectura de la máquina.
Características
- Se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle.
- Está orientado a la máquina.
VENTAJAS
Y DESVENTAJAS DEL LENGUAJE DE ALTO NIVEL
Las ventajas de los lenguajes de alto nivel son:
• Los lenguajes de alto nivel son más fáciles de aprender
que los de bajo nivel. El aprendizaje de muchos lenguajes de alto nivel
necesita pocos o nulos conocimientos del hardware, ya que dichos lenguajes son
prácticamente independientes de la máquina. Sin embargo los lenguajes de alto
nivel están cerrados a ciertas zonas de la máquina, a las que tienen acceso los
lenguajes de bajo nivel.
• Los programadores se liberan de ocupaciones rutinarias con
referencias a instrucciones simbólicas o numéricas, Asignaciones de memoria,
etc. Tales tareas se manejan por un traductor que traslada el lenguaje de alto
nivel al lenguaje máquina, y se evitan errores humanos.
• Un programador de lenguajes de alto nivel no necesita
conocer la forma en que se colocan los distintos tipos de datos en la memoria
del ordenador.
• La mayoria de los lenguajes de alto nivel ofrecen al
programador una gran variedad de estructuras de control, que no se disponen
en los lenguajes de bajo nivel. Por ejemplo los lenguajes de alto nivel tienen
las siguientes construcciones de Controlde flujo:
-
Sentencias condicionales (tales como IF-THEN-ELSE o CASE)
- Bucles (FOR, WHILE, REPEAT)
- Estructuras de bloque (BEGIN-END)
Estas estructuras de programación fomentan estilos y
técnicas de programación estructurada. Obteniéndose
programas fáciles de leer, comprender y modificar. Con lo que se reducen los
costos de programación al ser programas menos complicados quelos realizados en
lenguajes de bajo nivel.
• Los programas escritos en lenguajes de alto nivel se
depuran más fácilmente que los escritos en lenguaje máquina o ensamblador. Los
lenguajes de alto nivel tienen construcciones que eliminan o reducen ciertos
tipos de errores de programación, que aparecen en los lenguajes de bajo nivel.
• Los lenguajes de alto nivel tienen una mayor capacidad
de creación de estructuras de datos, tanto estáticas como dinámicas, que
facilitan la resolución de muchos problemas. Los lenguajes orientados a objeto
también pueden manejar tipos abstractos de datos, que permiten la reutilización
de código.
• Los lenguajes de alto nivel permiten un diseño modular
de los programas, con lo que se consigue una división del trabajo entre los
programadores, obteniéndose un mejor rendimiento en la realización de
aplicaciones.
• Los lenguajes de alto nivel también incluyen la
posibilidad de incorporar soporte para la programación orientada a objetos y
la genericidad.
• Finalmente los lenguajes de alto nivel son relativamente independientes
de la máquina, obteniéndose programas que se pueden ejecutar en diferentes
ordenadores. Tan sólo hay que volver a compilarlos o interpretarlos,
reduciéndose costos y, en general, pueden instalarse de nuevo si se queda el
ordenador obsoleto. Sin embargo todos los programas escritos en lenguaje
máquina y en ensamblador no se pueden implementar en otros ordenadores que no
posean una arquitectura compatible o se utilice algunos de los métodos de
transporte. Un lenguaje de alto nivel ha de procesarse antes de ejecutarse para
que el ordenador pueda comprenderlo. Este proceso se realizará mediante un procesador
de lenguaje.
Dada la importancia de poseer lenguajes de distintos
niveles, se entiende la necesidad de escribir traductores que trasladen los lenguajes
entre sí; de compiladores que pasen los lenguajes de alto nivel a bajo nivel; y
de ensambladores que generen el código máquina de las distintas arquitecturas
de ordenadores.Alos traductores, compiladores e intérpretes ensambladores, y
otros programas que realizan operaciones con lenguajes se les denomina con el
nombre genérico de procesadores de
lenguaje.
Las desventajas del
lenguaje de alto nivel
Los lenguajes de alto nivel también tienen sus
inconvenientes sobre los lenguajes de bajo nivel. La comodidad del programador se
paga en mayores tamaños de los ficheros ejecutables, y consecuentemente
en mayores tiempos de compilación y de ejecución. Así en los anexos I (lenguaje
máquina 80x86), II (lenguaje ensamblador 80x86), IV (lenguaje C) y VIII
(lenguaje C++) se han escrito sendos programas que presentan en pantalla una
cadena de caracteres con un saludo. Los cuatro ficheros ejecutables realizan la
misma operación, mostrar en pantalla el mensaje "Hola a todos",
sin embargo el tamaño del fichero ejecutable se va incrementando según se va
ascendiendo en el nivel del lenguaje
LENGUAJE EMSAMBLADOR
SEDE IBARRA
LENGUAJES EMSAMBLADOR
Es un lenguaje
de programación de bajo
nivel para los computadores, microprocesadores, micro controladores, y otros circuitos
integrados programables. Implementa una representación simbólica de los códigos de
máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la
representación más directa del código máquina específico para cada
arquitectura legible por un programador.
La importancia del lenguaje ensamblador radica principalmente que se trabaja directamente con el microprocesador; por lo cual se debe de conocer el funcionamiento interno de este, tiene
la ventaja de que en el se puede realizar cualquier tipo de programas que en los lenguajes de alto nivel no lo
pueden realizar. Otro punto sería que los programas en ensamblador ocupan menos
espacio en memoria.
Ventajas
1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa mas rápido.
2. Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
3. Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite
1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa mas rápido.
2. Eficiencia de tamaño .- Un programa en ensamblador no ocupa mucho espacio en memoria porque no tiene que cargan librerías y demás como son los lenguajes de alto nivel
3. Flexibilidad .- Es flexible porque todo lo que puede hacerse con una máquina, puede hacerse en el lenguaje ensamblador de esta máquina; los lenguajes de alto nivel tienen en una u otra forma limitantes para explotar al máximo los recursos de la máquina. O sea que en lenguaje ensamblador se pueden hacer tareas específicas que en un lenguaje de alto nivel no se pueden llevar acabo porque tienen ciertas limitantes que no se lo permite
Desventajas
Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.
Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la máquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.
Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.
Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.
Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
Peligro de afectar recursos inesperadamente .- Que todo error que podamos cometer, o todo riesgo que podamos tener, podemos afectar los recursos de la máquina, programar en este lenguaje lo más común que pueda pasar es que la máquina se bloquee o se reinicialice. Porque con este lenguaje es perfectamente posible (y sencillo) realizar secuencias de instrucciones inválidas, que normalmente no aparecen al usar un lenguaje de alto nivel.
Falta de portabilidad.- Porque para cada máquina existe un lenguaje ensamblador; por ello, evidentemente no es una selección apropiada de lenguaje cuando deseamos codificar en una máquina y luego llevar los programas a otros sistemas operativos o modelos de computadoras.
Suscribirse a:
Entradas (Atom)