SlideShare una empresa de Scribd logo
1 de 19
INSTITUTO DE ESTUDIOS SUPERIORES METROPOLITANO
VILLAFLORES, CHIAPAS
MATERIA:
LENGUAJE ENSAMBLADOR
MAESTRO:
ING.JUAN REYNOSO HERNANDEZ
GRADO
3ER CUATRIMESTRE
ALUMNO:
JOSE ALEJANDRO BEZARES GOMEZ
ÍNDICE
INTRODUCCIÓN.............................................................................................................................................2
FUNDAMENTO DEL LENGAJE ENSAMBLADOR ...................................................................................3
Fundamento del lenguaje Página 2
USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR..................................................................4
TIPOS DE LENGUAJES ENSAMBLADORES...........................................................................................5
ESCALABILIDAD DE LOS MICROPROCESADORES ............................................................................6
INTERRUPCIONES........................................................................................................................................8
HARDWARE ....................................................................................................................................................8
SOFTWARE .....................................................................................................................................................9
ESTRUCTURA DE UN PROGRAMA EN EL LENGUAJE ENSAMBLADOR. .................................. 10
PROCEDIMIENTO DE ENSAMBLE, ENLACE Y EJECUCIÓN........................................................... 12
CÓMO ENSAMBLAR UN PROGRAMA FUENTE .................................................................................. 12
ENTORNO DE PROGRAMACIÓN ........................................................................................................... 13
EVALUACION DE WINDOWS................................................................................................................... 15
CONCLUSIÓN.............................................................................................................................................. 17
BIBLIOGRAFÍA............................................................................................................................................. 18
INTRODUCCIÓN
Fundamento del lenguaje Página 3
En el siguiente trabajo se tratara de temas muy importantes para el estudio de la
tecnología de la información ya que se abordara temas sobre lenguaje ensamblador,
microprocesador, interrupciones y procedimientos, cada tema es de suma importancia ya
que aprenderemos la función de cada uno de estos, por ejemplo el lenguaje ensamblador
traduce al lenguaje de máquina y viceversa, esto facilita su uso para los seres humanos. El
uso del lenguaje ensamblador le permite al programador indicarle al computador
exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de
instrucciones.
Al igual los microprocesadores son un circuito integrado que contiene algunos o todos los
elementos necesarios para conformar una (o más) “unidad central de procesamiento” UCP,
también conocido como CPU (por sus siglas en inglés: Central Process Unit). En la
actualidad este componente electrónico está compuesto por millones de transistores,
integrados en una misma placa de silicio.
Así como estos temas se trataran de otros de igual importancia, y se recomienda para todo
aquel que se encuentre interesado en esta rama.
FUNDAMENTO DEL LENGAJE ENSAMBLADOR
Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de
programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a
Fundamento del lenguaje Página 4
ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos
de cálculo, uno por uno.
Lenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina, consistente en
asociar a los códigos de operación (acodes) palabras clave que faciliten su uso por parte
del programador.
Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de
Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres
humanos. Por otro lado, la computadora no entiende directamente el Lenguaje
Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este proceso
se hacía a mano, usando para ello hojas donde se escribían tablas de programa similares
al ejemplo de la calculadora que vimos anteriormente. Pero, al ser tan directa la traducción,
pronto aparecieron los programas Ensambladores, que son traductores que convierten el
código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de
Máquina).
Una característica que hay que resaltar, es que al depender estos lenguajes del hardware,
hay un distinto Lenguaje de Máquina (y, por consiguiente, un distinto Lenguaje
Ensamblador) para cada CPU. Por ejemplo, podemos mencionar tres lenguajes
completamente diferentes, que sin embargo vienen de la aplicación de los conceptos
anteriores:
1. Lenguaje Ensamblador de la familia Intel 80x86
2.Lenguaje Ensamblador de la familia Motorola 68000
3. Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000.
USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR
El uso del lenguaje ensamblador le permite al programador indicarle al computador
exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de
Fundamento del lenguaje Página 5
instrucciones. Aún cuando el código generado por los compiladores con opción de
optimización es eficiente, la optimización manual puede resultar en una mejora sustancial
en términos de rendimiento y consumo de memoria.
El lenguaje ensamblador es usualmente utilizado en las siguientes circunstancias:
 Mejorar la eficiencia de una rutina específica que se ha transformado en un cuello
de botella
 Obtener acceso a funciones de bajo nivel del procesador para realizar tareas que no
son soportadas por los lenguajes de alto nivel.
 Escribir manejadores de dispositivos para comunicarse directamente con hardware
especial tales como tarjetas de red.
 Trabajar en ambientes con recursos limitados puede requerir el uso del lenguaje
ensamblador pues el código ejecutable puede ser menor que el generado por el
compilador.
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran
básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos
electrónicos.
TIPOS DE LENGUAJES ENSAMBLADORES
Aunque todos los ensambladores realizan básicamente las mismas tareas, podemos
clasificarlos de acuerdo a características, así podemos clasificarlos en:
Ensambladores Cruzados (Cross-Assembler).
Se denominan así los ensambladores que se utilizan en una computadora que posee un
procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa
objeto producido.
El empleo de este tipo de traductores permite aprovechar el soporte de medios físicos
(discos, impresoras, pantallas, etc.), y de programación que ofrecen las máquinas potentes
para desarrollar programas que luego los van a ejecutar sistemas muy especializados en
determinados tipos de tareas.
Fundamento del lenguaje Página 6
Ensambladores Residentes.
Son aquellos que permanecen en la memoria principal de la computadora y cargan, para
su ejecución, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de
que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un
lugar a otro, como se hacía en cross-assembler, y sin necesidad de programas
simuladores.
Macroensambladores.
Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su
potencia, normalmente son programas robustos que no permanecen en memoria una vez
generados el programa objeto.
Micro ensambladores.
El programa que indica al intérprete de instrucciones de la UCP cómo debe actuar se
denomina microprograma. El programa que ayuda a realizar esta microprograma se llama
micro ensamblador. Existen procesadores que permiten la modificación de sus
microprogramas, para lo cual se utilizan micro ensambladores.
Ensambladores de una fase.
Estos ensambladores leen una línea del programa fuente y la traducen directamente para
producir una instrucción en lenguaje máquina o la ejecuta si se trata de una seudo
instrucción. También va construyendo la tabla de símbolos a medida que van apareciendo
las definiciones de variables, etiquetas, etc.
Ensambladores de dos fases.
Los ensambladores de dos fases se denominan así debido a que realizan la traducción en
dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de
símbolos; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden
ir traduciendo totalmente, puesto que conocen la totalidad de los símbolos utilizados y las
posiciones que se les ha asignado.
ESCALABILIDAD DE LOS MICROPROCESADORES
Fundamento del lenguaje Página 7
El concepto de escalabilidad en telecomunicaciones y en ingeniería informática, es la
propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para
extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento
continuo de trabajo de manera fluida.
El Microprocesador es un circuito integrado que contiene algunos o todos los elementos
hardware, y el de CPU, que es un concepto lógico. Una CPU puede estar soportada por
uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU.
Un núcleo suele referirse a una porción del procesador que realiza todas las actividades de
una CPU real.
Un microprocesador escalar solamente puede manejar una instrucción que a su vez
maneja solo un objeto de datos a la vez.
Un microprocesador superes calar puede procesar también solo un objeto de datos por
instrucción, pero puede paralelizar este proceso por su diseño, ejecutando varias
instrucciones a la vez.
El microprocesador es un circuito integrado que contiene algunos o todos los elementos
necesarios para conformar una (o más) “unidad central de procesamiento” UCP, también
conocido como CPU (por sus siglas en inglés: Central Process Unit). En la actualidad este
componente electrónico está compuesto por millones de transistores, integrados en una
misma placa de silicio.
Se debe distinguir entre el concepto de Procesador, que es un concepto de Hardware, con
el concepto de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno
o varios microprocesadores, y un microprocesador puede soportar una o varias CPU.
1.- El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar
los programas.
2.- Ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo
operaciones lógicas simples, como sumar, restar, multiplicar y dividir.
3.- Viene siendo el cerebro de la computadora, el motor, el corazón de esta máquina.’‘
Está conformado por los siguientes elementos: Memoria, Unidad Aritmética Lógica (ALU),
Puertos de Entrada y Salida (Buses), La Unidad de Control(UC) y un reloj que sincroniza
su funcionamiento.
Buses de comunicación en un circuito impreso. En Arquitectura de computadores, el bus es
un sistema digital que transfiere datos entre los componentes de un computador o entre
Fundamento del lenguaje Página 8
computadores. Están formado por cables o pistas en un circuito impreso, dispositivos como
resistencias y condensadores además de circuitos integrados.
La mayoría de los buses están basados en conductores metálicos por los cuales se
trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que
poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas
como datos útiles.
Todos los buses de computador tienen funciones especiales como las interrupciones y las
DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando
el mínimo de recursos.
INTERRUPCIONES
Una interrupción es una operación que suspende la ejecución de un programa de modo
que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo
regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume
su ejecución.
HARDWARE
Las interrupciones hardware ocurren cuando un dispositivo necesita atención del
procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es
recogida y procesada por el controlador de excepciones PIC antes de ser enviada al
procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea
enmascarable o no enmascarable.
Cuando se habla de una significa que, bajo control del software, el procesador puede
aceptar o ignorar (enmascarar) la señal de interrupción. Para ello se envía una señal a la
patilla INTR, y el procesador la atiende o la ignora en función del contenido de un bit (IF)
en un registro (FLAGS) que puede estar habilitado o deshabilitado. En el primer caso,
cuando se recibe la señal, el procesador concluye la instrucción que estuviese en proceso
y a continuación responde con una combinación de señales en algunas de sus patillas
componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge".
La primera señal es simplemente un aviso; la segunda es una petición para que el
PIC coloque en el bus de datos un Byte con el número de interrupción, de forma que el
procesador pueda localizar el servicio solicitado.
Fundamento del lenguaje Página 9
El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector
correspondiente en la tabla de vectores de interrupción, lo que se realiza mediante un
desplazamiento binario de dos posiciones a la izquierda.
Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por
software. Este tipo de interrupciones ocurren cuando se recibe una señal en la
patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es
crítica la respuesta, por ejemplo que se detecte un error de paridad en la memoria.
Además son de prioridad más alta que las enmascarables.
SOFTWARE
Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que
permite generar por software cualquiera de los 256 tipos de interrupción anteriormente
descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción
hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no
se requiere ningún ciclo INTA.
Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables
y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se
ejecuta una software, esta última tiene prioridad.
FUNCIONES DE LA BIOS
Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una
interrupción software con un cierto valor inicial en los registros. La BIOS emplea un cierto
rango de interrupciones, cada una encargada de una tarea específica:
INT 10h: Servicios de Vídeo (texto y gráficos).
INT 11h: Informe sobre la configuración del equipo.
INT 12h: Informe sobre el tamaño de la memoria convencional.
INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.).
INT 14h: Comunicaciones en serie.
INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT).
INT 16h: Servicios de teclado.
INT 17h: Servicios de impresora.
INT 18h: Llamar a la ROM del BASIC (sólo máquinas IBM).
INT 19h: Re inicialización del sistema.
Fundamento del lenguaje Página 10
INT 1Ah: Servicios horarios.
INT 1Fh: Apunta a la tabla de los caracteres ASCII 128-255 (8x8 puntos).
FUNCIONES DEL DOS
El DOS emplea varias interrupciones, al igual que la BIOS; sin embargo, cuando se
habla de funciones del DOS, todo el mundo sobreentiende que se trata de llamar a la INT
21h, la interrupción más importante con diferencia.
INT 20h: Terminar programa (tal vez en desuso).
INT 21h: Servicios del DOS.
INT 22h: Control de finalización de programas.
INT 23h: Tratamiento de Ctrl-C.
INT 24h: Tratamiento de errores críticos.
INT 25h: Lectura absoluta de disco (sectores lógicos).
INT 26h: Escritura absoluta en disco (sectores lógicos).
INT 27h: Terminar dejando residente el programa (en desuso).
INT 28h: Idle (ejecutada cuando el ordenador está inactivo).
INT 29h: Impresión rápida en pantalla (no tanto).
INT 2Ah: Red local MS NET.
INT 2Bh-2Dh: Uso interno del DOS.
INT 2Eh: Procesos Batch.
INT 2Fh: Interrupción Multiplex.
INT 30h-31h: Compatibilidad CP/M-80.
INT 32h: Reservada.
ESTRUCTURA DE UN PROGRAMA EN EL LENGUAJE
ENSAMBLADOR.
Un programa en lenguaje ensamblador estará formado por una secuencia de sentencias.
Cada sentencia ocupa una sola línea y tiene la siguiente estructura:
Fundamento del lenguaje Página 11
[Etiqueta] [Operación] [Operandos] [; Comentarios]
Los cuatro campos de una sentencia son opcionales, si no aparece ninguno de ellos (una
línea en blanco) tendríamos una sentencia vacía.
Las sentencias se dividen en dos tipos:
* Instrucciones:
Estas sentencias representan órdenes al procesador y tras el proceso de compilación
generan código ejecutable.
* Directivas:
Estas sentencias dirigen el proceso de compilación o construcción del programa
ejecutable. No generan código ejecutable. Normalmente se utilizan para aumentar la
legibilidad del código fuente.
Estructura de un fichero en lenguaje ensamblador
Los ficheros de código fuente escritos en lenguaje ensamblador se organizan en líneas.
Cada una de las líneas del fichero puede contener una directiva, una instrucción o ambas
cosas a la vez en los casos en que sea posible.
Todos los ficheros fuente tienen que adecuarse a una estructura fija dividida en secciones.
La estructura a seguir se muestra a continuación:
Escala EQU 1000 ; Definición de constantes simbólicas
ORIGEN 7F40h ; Definición del origen de carga del programa
INICIO ini ; Definición de la etiqueta que marca la
; Primera instrucción a ejecutar del programa
.PILA 100h ; Definición de la pila
.DATOS ; Definición de los datos del programa
Dato1 VALOR 12h
…
.CODIGO ; Definición del código del programa
INI: MOV R5, R4
…
FIN
No existe una convención establecida para la estructura de un programa en lenguaje
ensamblador (no como sucede con otros lenguajes, como C/C++). Como regla de oro, es
necesaria la declaración de dos segmentos, la de código (CODE) y la de pila (STACK). En
Fundamento del lenguaje Página 12
total, hay 4 segmentos principales: Segmento de datos, Segmento de código, Segmento de
pila y Segmento Extra.
Los diferentes segmentos tienen las siguientes funciones:
Segmento de datos: Contiene la dirección donde inicia la declaración de variables. Aquí,
escribiremos nuestras variables.
Segmento de código: Contiene la dirección de inicio donde se encuentran las instrucciones
del programa. Aquí, escribiremos todo el código de nuestro programa
Segmento de pila: Contiene la dirección donde se encuentra la pila.
Segmento Extra: Contiene la dirección donde podemos almacenar datos extras.
PROCEDIMIENTO DE ENSAMBLE, ENLACE Y
EJECUCIÓN.
Tal como está en el programa es solo un archivo de texto que no puede ejecutarse;
primero debe ensamblarse y enlazarlo.
1. El paso de ensamble consiste en la traducción del código fuente en código objeto y la
generación de un archivo intermedio.obj. El ensamblador también crea un encabezado al
frente del modulo. Obj generado; por parte del encabezado tiene información acerca de
direcciones incompletas.
2. El paso de enlace implica convertir un módulo .OBJ en un módulo de código maquina
.EX
3. el último paso es cargar el programa para su ejecución. Ya que el cargador conoce en
donde está el programa a punto de ser cargado, puede completar las direcciones indicadas
en el encabezado que estaban incompletas.
CÓMO ENSAMBLAR UN PROGRAMA FUENTE
Puede teclear el comando a ejecutar MASM o TASM en una línea de comando o por medio
de peticiones. Por Ejemplo:
MASM/TASM [opciones] fuente [, objeto] [, listado] [, recruzadas]
Fundamento del lenguaje Página 13
Opciones: estipula características como configuración del nivel de mensajes de
advertencia. Ya que los valores por omisión del ensamblador por lo regular son los
adecuados, rara vez necesitara utilizar opciones.
Fuente: identifica el nombre del programa fuente, como Prog1. El ensamblador asume que
es extensión ASM de modo que no necesita introducirla.
Objeto: estipula un archivo .OBJ generado.
Listado: estipula un archivo .LST generado que contiene tanto el código fuente como el
código objeto.
Recruzadas: genera un archivo de referencias cruzadas con los símbolos usados en el
programa, que puede usar para un listado de referencias cruzadas.
ENTORNO DE PROGRAMACIÓN
Antes de que el COMMAND.COM pase el control al programa que se pretende ejecutar, se
crea un bloque de 256 bytes llamado PSP (Program Segment Prefix), cuya descripción
detallada se verá en el próximo capítulo. En él aparecen datos tales como la dirección de
retorno al dos cuando finalice el programa, la dirección de retorno en caso de Ctrl-Break y
en caso de errores críticos. Además de la cantidad de memoria disponible y los posibles
parámetros suministrados del programa. Cuando el programa toma el control, DS y ES
apuntan al PSP. Tipos de programas:
En los de tipo COM:
- CS apunta al PSP e IP=100h (el programa empieza tras el PSP).
- SS apunta al PSP y SP toma la dirección más alta dentro del segmento del PSP.
En los de tipo EXE:
- CS e IP toman los valores del punto de arranque del programa (directiva END
etiqueta).
- SS apunta al segmento de pila y SP = tamaño de la pila definida.
Los programas de tipo COM se cargan en memoria tal y como están en disco,
entregándoseles el control. Los de tipo EXE, que pueden llegar a manejar múltiples
Fundamento del lenguaje Página 14
segmentos de código de hasta 64 Kb, se almacenan en disco «semiensamblados». En
realidad, al ser cargados en memoria, el DOS tiene que realizar la última fase de montaje,
calculando las direcciones de memoria absolutas. Por ello, estos programas tienen un
formato especial en disco, generado por los ensambladores y compiladores, y su imagen
en memoria no se corresponde realmente con lo que está grabado en el disco, aunque
esto al usuario no le importe. Por ello, no se extrañe el lector de haber visto alguna vez
ficheros EXE de más de 640 Kb: evidentemente, no se cargan enteros en memoria aunque
lo parezca.
EJEMPLO DE PROGRAMA TIPO COM.
El siguiente ejemplo escribe una cadena en pantalla llamando a uno de los servicios
estándar de impresión del DOS (función 9 de INT 21h):
cr EQU 13 ; constante de retorno de carro
lf EQU 10 ; constante de salto de línea
Programa SEGMENT; segmento común a CS, DS, ES, SS.
ASSUME CS: programa, DS: programa
ORG 100h ; programa de tipo COM
Inicio: LEA DX, texto; dirección de texto a imprimir
MOV AH,9 ; función de impresión
INT 21h ; llamar al DOS
INT 20h ; volver al sistema operativo
Texto DB cr, lf,"Grupo Universitario de Informática.", cr,lf,"$"
Programa ENDS; fin del segmento
END inicio; fin del programa y punto de inicio
EJEMPLO PROGRAMA TIPO EXE
Los programas EXE (listado al final de esta sección) requieren algo más de elaboración.
En primer lugar, es necesario definir una pila y reservar espacio para la misma. Al contrario
que los programas COM (cuya pila se sitúa al final del segmento compartido también con el
código y los datos) esta característica obliga a definir un tamaño prudente en función de las
necesidades del programa.
; Segmento de datos
Fundamento del lenguaje Página 15
Datos SEGMENT
texto DB cr, lf,"Texto a imprimir",cr,lf,"$"
datos ENDS
; Segmento de pila
Pila SEGMENT STACK ‘STACK’; poner STACK es obligatorio
DB 128 dup ('pila'); reservados 512 bytes
pila ENDS
; Segmento de código
Código SEGMENT
ejemplo PROC FAR
ASSUME CS: codigo, DS: datos, SS: pila
; poner dirección de retorno al DOS en la pila:
PUSH DS; segmento del PSP
XOR AX, AX; AX = 0
PUSH AX; desplazamiento 0 al PSP
; direccionar segmento de datos con DS
MOV AX, datos; AX = dirección del segmento de datos
MOV DS, AX; inicializar DS
; escribir texto
LEA DX, texto; DS: DX = dirección del texto
MOV AH,9
INT 21h
; volver al DOS
RET; en realidad, RETF (PROC FAR)
Ejemplo ENDP
Código ENDS; fin del código
END ejemplo; punto de arranque del programa.
EVALUACION DE WINDOWS
La Evaluación de la experiencia en Windows es una medición que le indica lo bien que
funciona el equipo con Windows y que utiliza una puntuación total para clasificar el
Fundamento del lenguaje Página 16
rendimiento que puede esperar. Una puntuación total más alta suele indicar que el equipo
será más rápido y responderá mejor que un equipo con una puntuación final menor.
Números de la Evaluación de la experiencia en Windows en Información y herramientas de
rendimiento
Cada elemento de hardware del equipo obtiene su propia puntuación. La puntuación total
del equipo se determina a partir de la puntuación individual más baja y no mediante el
promedio de todas las puntuaciones. Puede ver las puntuaciones para conocer el
rendimiento del hardware que más le interesa, lo que puede ayudarle a decidir si es
necesario actualizar algunas partes del equipo.
Para ver la puntuación total del equipo
1. Para abrir Información y herramientas de rendimiento, deslice rápidamente el dedo
desde el borde derecho de la pantalla, pulse Buscar (o, si usa un mouse, apunte a la
esquina superior derecha de la pantalla, mueva el puntero del mouse hacia abajo y, a
continuación, haga clic en Buscar), escriba Información y herramientas de
rendimiento en el cuadro de búsqueda, pulse o haga clic en Configuración y
después pulse o haga clic en Información y herramientas de rendimiento.
2. Consulte la puntuación total y las puntuaciones del equipo de la Evaluación de la
experiencia en Windows Si acaba de actualizar el hardware y desea ver si la
puntuación ha cambiado, pulse o haga clic en Volver a ejecutar la evaluación.
Puede que tengas que proporcionar una contraseña de administrador o confirmar tu
elección.
Si no ve las puntuaciones ni una puntuación total, pulse o haga clic en Evaluar este
equipo. Puede que tengas que proporcionar una contraseña de administrador o
confirmar tu elección.
Fundamento del lenguaje Página 17
CONCLUSIÓN
En conclusión puedo agregar que estos fueron temas muy importantes y me sirvieron
mucho ya que aprendí cosas de gran importancia, que me servirán el resto de mi carrera y
Fundamento del lenguaje Página 18
que pondré en práctica, así mismo recomiendo a todos los interesados a poner interés en
temas como estos ya que aprenderán mucho y les será de gran utilidad.
BIBLIOGRAFÍA
www.uned.es/.../INGENIERIA%20EN%20TECNOLOGIAS%20INDUST.
Fundamento del lenguaje Página 19
www.eumed.net/libros-gratis/2006c/220/1v.htm
gente-itsm.blogspot.com/2011/09/unidad-1-fundamentos.html
atc2.aut.uah.es/~avicente/.../leoc/.../t1_fundamentosdelensamblador.pdf
https://es.scribd.com/.../Unidad-1-Fundamentos-Introduccion-Lenguaje-

Más contenido relacionado

La actualidad más candente

Manual de programacion en el lenguaje c
Manual de programacion en el lenguaje cManual de programacion en el lenguaje c
Manual de programacion en el lenguaje cvictdiazm
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMフ乇丂ひ丂
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorsalvaradomar
 
Lenguaje ensamblador
Lenguaje ensamblador   Lenguaje ensamblador
Lenguaje ensamblador duvalin02
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquinaErnes 28
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladorgbermeo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjuan1993are
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaacdurcor
 
Lenguaje de máquina
Lenguaje de máquinaLenguaje de máquina
Lenguaje de máquinagiovatovar
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 

La actualidad más candente (20)

1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Tasm
TasmTasm
Tasm
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Manual de programacion en el lenguaje c
Manual de programacion en el lenguaje cManual de programacion en el lenguaje c
Manual de programacion en el lenguaje c
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensamblador
 
Lenguaje de Maquinas
Lenguaje de Maquinas Lenguaje de Maquinas
Lenguaje de Maquinas
 
COMPILADORES
COMPILADORESCOMPILADORES
COMPILADORES
 
Lenguaje ensamblador
Lenguaje ensamblador   Lenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
LENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADORLENGUAJE ENSAMBLADOR
LENGUAJE ENSAMBLADOR
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Actividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lecturaActividades ac 2 computacion mtra elisa navarro lectura
Actividades ac 2 computacion mtra elisa navarro lectura
 
03.Programación en ensamblador
03.Programación en ensamblador03.Programación en ensamblador
03.Programación en ensamblador
 
Lenguaje de máquina
Lenguaje de máquinaLenguaje de máquina
Lenguaje de máquina
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 

Destacado

Destacado (9)

Presentacion de diapositiva
Presentacion de diapositivaPresentacion de diapositiva
Presentacion de diapositiva
 
Vocabulario tecnico
Vocabulario tecnicoVocabulario tecnico
Vocabulario tecnico
 
VOCABULARIO
VOCABULARIOVOCABULARIO
VOCABULARIO
 
Curso para choferes
Curso para choferesCurso para choferes
Curso para choferes
 
Buses y chipsets_final
Buses y chipsets_finalBuses y chipsets_final
Buses y chipsets_final
 
Taller Servicio al Cliente para Conductores
Taller Servicio al Cliente para ConductoresTaller Servicio al Cliente para Conductores
Taller Servicio al Cliente para Conductores
 
GUIA EDUCACION VIAL
GUIA EDUCACION VIALGUIA EDUCACION VIAL
GUIA EDUCACION VIAL
 
Manejo defensivo de camiones
Manejo defensivo de camionesManejo defensivo de camiones
Manejo defensivo de camiones
 
Unidad didáctica las profesiones y el trabajo
Unidad didáctica   las profesiones y el trabajoUnidad didáctica   las profesiones y el trabajo
Unidad didáctica las profesiones y el trabajo
 

Similar a Lenguaje ensambldor

TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS Guillermo Iván Prisco Pérez
 
Programación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoProgramación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoBronson Duhart
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionjafp21
 
Ensamblador
EnsambladorEnsamblador
EnsambladorCEUNISAL
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskJohann Chambilla
 
Sistema Operativo
Sistema OperativoSistema Operativo
Sistema OperativoKrisJimCed
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupoJoka211522
 
SISTEMA OPERATIVO
SISTEMA OPERATIVOSISTEMA OPERATIVO
SISTEMA OPERATIVOsilvia0208
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00Car_00_01
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorCar_00_01
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 

Similar a Lenguaje ensambldor (20)

TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
El computador
El computadorEl computador
El computador
 
Programación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documentoProgramación Y Simulación De Robot SCARA, documento
Programación Y Simulación De Robot SCARA, documento
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupo
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupo
 
Sistema Operativo
Sistema OperativoSistema Operativo
Sistema Operativo
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupo
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupo
 
Tl primer grupo[2]
Tl primer grupo[2]Tl primer grupo[2]
Tl primer grupo[2]
 
Tl primer grupo
Tl primer grupoTl primer grupo
Tl primer grupo
 
SISTEMA OPERATIVO
SISTEMA OPERATIVOSISTEMA OPERATIVO
SISTEMA OPERATIVO
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 

Último

Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024eCommerce Institute
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024eCommerce Institute
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxhugogabrielac1
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...angierangel29072017
 
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024eCommerce Institute
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfXimenaGonzlez95
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abriljulianagomezm2
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024eCommerce Institute
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruñaanoiteenecesaria
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024eCommerce Institute
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024eCommerce Institute
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoanoiteenecesaria
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024eCommerce Institute
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024eCommerce Institute
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfDaniel425270
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...eCommerce Institute
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024eCommerce Institute
 

Último (18)

Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
Francisco Irarrazaval, Marcos Pueyrredon - eCommerce Day Chile 2024
 
Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024Enrique Amarista Graterol - eCommerce Day Chile 2024
Enrique Amarista Graterol - eCommerce Day Chile 2024
 
Presupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptxPresupuesto por Resultados de Seguridad Ciudadana .pptx
Presupuesto por Resultados de Seguridad Ciudadana .pptx
 
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
PRESENTACION EN SST, plan de trabajo del sistema de seguridad y salud en el t...
 
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
Mercedes Tomas, Florencia Bianchini - eCommerce Day Chile 2024
 
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdfAct#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
Act#3.2_Investigación_Bibliográfica_Comunicación_Equipo.pdf
 
Biomecánica y análisis de puestos trabajo pptx
Biomecánica y análisis de puestos trabajo pptxBiomecánica y análisis de puestos trabajo pptx
Biomecánica y análisis de puestos trabajo pptx
 
Guiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abrilGuiaparacrearslideshareticsvirtual2024abril
Guiaparacrearslideshareticsvirtual2024abril
 
Pablo Scasso - eCommerce Day Chile 2024
Pablo Scasso -  eCommerce Day Chile 2024Pablo Scasso -  eCommerce Day Chile 2024
Pablo Scasso - eCommerce Day Chile 2024
 
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na CoruñaCURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
CURSO DE INICIACIÓN Á ASTRONOMÍA Eclipses na Coruña
 
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
Alexander Rubilar, Enzo Tapia - eCommerce Day Chile 2024
 
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
José Ignacio Calle, Nathalie Jacobs - eCommerce Day Chile 2024
 
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universoCURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
CURSO DE INICIACIÓN Á ASTRONOMÍA: O noso lugar no universo
 
Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024Felipe González - eCommerce Day Chile 2024
Felipe González - eCommerce Day Chile 2024
 
Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024Sebastián Iturriaga - eCommerce Day Chile 2024
Sebastián Iturriaga - eCommerce Day Chile 2024
 
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdfIntroduccion al Libro de Genesis - Caps 15 al 17.pdf
Introduccion al Libro de Genesis - Caps 15 al 17.pdf
 
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
Nicolás von Graevenitz, Rodrigo Guajardo, Fabián Müller, Alberto Banano Pardo...
 
Suiwen He - eCommerce Day Chile 2024
Suiwen He  -  eCommerce  Day  Chile 2024Suiwen He  -  eCommerce  Day  Chile 2024
Suiwen He - eCommerce Day Chile 2024
 

Lenguaje ensambldor

  • 1. INSTITUTO DE ESTUDIOS SUPERIORES METROPOLITANO VILLAFLORES, CHIAPAS MATERIA: LENGUAJE ENSAMBLADOR MAESTRO: ING.JUAN REYNOSO HERNANDEZ GRADO 3ER CUATRIMESTRE ALUMNO: JOSE ALEJANDRO BEZARES GOMEZ ÍNDICE INTRODUCCIÓN.............................................................................................................................................2 FUNDAMENTO DEL LENGAJE ENSAMBLADOR ...................................................................................3
  • 2. Fundamento del lenguaje Página 2 USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR..................................................................4 TIPOS DE LENGUAJES ENSAMBLADORES...........................................................................................5 ESCALABILIDAD DE LOS MICROPROCESADORES ............................................................................6 INTERRUPCIONES........................................................................................................................................8 HARDWARE ....................................................................................................................................................8 SOFTWARE .....................................................................................................................................................9 ESTRUCTURA DE UN PROGRAMA EN EL LENGUAJE ENSAMBLADOR. .................................. 10 PROCEDIMIENTO DE ENSAMBLE, ENLACE Y EJECUCIÓN........................................................... 12 CÓMO ENSAMBLAR UN PROGRAMA FUENTE .................................................................................. 12 ENTORNO DE PROGRAMACIÓN ........................................................................................................... 13 EVALUACION DE WINDOWS................................................................................................................... 15 CONCLUSIÓN.............................................................................................................................................. 17 BIBLIOGRAFÍA............................................................................................................................................. 18 INTRODUCCIÓN
  • 3. Fundamento del lenguaje Página 3 En el siguiente trabajo se tratara de temas muy importantes para el estudio de la tecnología de la información ya que se abordara temas sobre lenguaje ensamblador, microprocesador, interrupciones y procedimientos, cada tema es de suma importancia ya que aprenderemos la función de cada uno de estos, por ejemplo el lenguaje ensamblador traduce al lenguaje de máquina y viceversa, esto facilita su uso para los seres humanos. El uso del lenguaje ensamblador le permite al programador indicarle al computador exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de instrucciones. Al igual los microprocesadores son un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) “unidad central de procesamiento” UCP, también conocido como CPU (por sus siglas en inglés: Central Process Unit). En la actualidad este componente electrónico está compuesto por millones de transistores, integrados en una misma placa de silicio. Así como estos temas se trataran de otros de igual importancia, y se recomienda para todo aquel que se encuentre interesado en esta rama. FUNDAMENTO DEL LENGAJE ENSAMBLADOR Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a
  • 4. Fundamento del lenguaje Página 4 ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno. Lenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina, consistente en asociar a los códigos de operación (acodes) palabras clave que faciliten su uso por parte del programador. Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos. Por otro lado, la computadora no entiende directamente el Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este proceso se hacía a mano, usando para ello hojas donde se escribían tablas de programa similares al ejemplo de la calculadora que vimos anteriormente. Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de Máquina). Una característica que hay que resaltar, es que al depender estos lenguajes del hardware, hay un distinto Lenguaje de Máquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para cada CPU. Por ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin embargo vienen de la aplicación de los conceptos anteriores: 1. Lenguaje Ensamblador de la familia Intel 80x86 2.Lenguaje Ensamblador de la familia Motorola 68000 3. Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000. USO Y APLICACIONES DEL LENGUAJE ENSAMBLADOR El uso del lenguaje ensamblador le permite al programador indicarle al computador exactamente cómo llevar a cabo una tarea específica usando la menor cantidad de
  • 5. Fundamento del lenguaje Página 5 instrucciones. Aún cuando el código generado por los compiladores con opción de optimización es eficiente, la optimización manual puede resultar en una mejora sustancial en términos de rendimiento y consumo de memoria. El lenguaje ensamblador es usualmente utilizado en las siguientes circunstancias:  Mejorar la eficiencia de una rutina específica que se ha transformado en un cuello de botella  Obtener acceso a funciones de bajo nivel del procesador para realizar tareas que no son soportadas por los lenguajes de alto nivel.  Escribir manejadores de dispositivos para comunicarse directamente con hardware especial tales como tarjetas de red.  Trabajar en ambientes con recursos limitados puede requerir el uso del lenguaje ensamblador pues el código ejecutable puede ser menor que el generado por el compilador. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. TIPOS DE LENGUAJES ENSAMBLADORES Aunque todos los ensambladores realizan básicamente las mismas tareas, podemos clasificarlos de acuerdo a características, así podemos clasificarlos en: Ensambladores Cruzados (Cross-Assembler). Se denominan así los ensambladores que se utilizan en una computadora que posee un procesador diferente al que tendrán las computadoras donde va a ejecutarse el programa objeto producido. El empleo de este tipo de traductores permite aprovechar el soporte de medios físicos (discos, impresoras, pantallas, etc.), y de programación que ofrecen las máquinas potentes para desarrollar programas que luego los van a ejecutar sistemas muy especializados en determinados tipos de tareas.
  • 6. Fundamento del lenguaje Página 6 Ensambladores Residentes. Son aquellos que permanecen en la memoria principal de la computadora y cargan, para su ejecución, al programa objeto producido. Este tipo de ensamblador tiene la ventaja de que se puede comprobar inmediatamente el programa sin necesidad de transportarlo de un lugar a otro, como se hacía en cross-assembler, y sin necesidad de programas simuladores. Macroensambladores. Son ensambladores que permiten el uso de macroinstrucciones (macros). Debido a su potencia, normalmente son programas robustos que no permanecen en memoria una vez generados el programa objeto. Micro ensambladores. El programa que indica al intérprete de instrucciones de la UCP cómo debe actuar se denomina microprograma. El programa que ayuda a realizar esta microprograma se llama micro ensamblador. Existen procesadores que permiten la modificación de sus microprogramas, para lo cual se utilizan micro ensambladores. Ensambladores de una fase. Estos ensambladores leen una línea del programa fuente y la traducen directamente para producir una instrucción en lenguaje máquina o la ejecuta si se trata de una seudo instrucción. También va construyendo la tabla de símbolos a medida que van apareciendo las definiciones de variables, etiquetas, etc. Ensambladores de dos fases. Los ensambladores de dos fases se denominan así debido a que realizan la traducción en dos etapas. En la primera fase, leen el programa fuente y construyen una tabla de símbolos; de esta manera, en la segunda fase, vuelven a leer el programa fuente y pueden ir traduciendo totalmente, puesto que conocen la totalidad de los símbolos utilizados y las posiciones que se les ha asignado. ESCALABILIDAD DE LOS MICROPROCESADORES
  • 7. Fundamento del lenguaje Página 7 El concepto de escalabilidad en telecomunicaciones y en ingeniería informática, es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida. El Microprocesador es un circuito integrado que contiene algunos o todos los elementos hardware, y el de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU. Un núcleo suele referirse a una porción del procesador que realiza todas las actividades de una CPU real. Un microprocesador escalar solamente puede manejar una instrucción que a su vez maneja solo un objeto de datos a la vez. Un microprocesador superes calar puede procesar también solo un objeto de datos por instrucción, pero puede paralelizar este proceso por su diseño, ejecutando varias instrucciones a la vez. El microprocesador es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) “unidad central de procesamiento” UCP, también conocido como CPU (por sus siglas en inglés: Central Process Unit). En la actualidad este componente electrónico está compuesto por millones de transistores, integrados en una misma placa de silicio. Se debe distinguir entre el concepto de Procesador, que es un concepto de Hardware, con el concepto de CPU, que es un concepto lógico. Una CPU puede estar soportada por uno o varios microprocesadores, y un microprocesador puede soportar una o varias CPU. 1.- El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. 2.- Ejecuta instrucciones que se le dan a la computadora a muy bajo nivel haciendo operaciones lógicas simples, como sumar, restar, multiplicar y dividir. 3.- Viene siendo el cerebro de la computadora, el motor, el corazón de esta máquina.’‘ Está conformado por los siguientes elementos: Memoria, Unidad Aritmética Lógica (ALU), Puertos de Entrada y Salida (Buses), La Unidad de Control(UC) y un reloj que sincroniza su funcionamiento. Buses de comunicación en un circuito impreso. En Arquitectura de computadores, el bus es un sistema digital que transfiere datos entre los componentes de un computador o entre
  • 8. Fundamento del lenguaje Página 8 computadores. Están formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados. La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos. INTERRUPCIONES Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume su ejecución. HARDWARE Las interrupciones hardware ocurren cuando un dispositivo necesita atención del procesador y genera una señal eléctrica en la línea IRQ que tiene asignada. Esta señal es recogida y procesada por el controlador de excepciones PIC antes de ser enviada al procesador, lo que puede realizarse de dos formas, según el tipo de interrupción sea enmascarable o no enmascarable. Cuando se habla de una significa que, bajo control del software, el procesador puede aceptar o ignorar (enmascarar) la señal de interrupción. Para ello se envía una señal a la patilla INTR, y el procesador la atiende o la ignora en función del contenido de un bit (IF) en un registro (FLAGS) que puede estar habilitado o deshabilitado. En el primer caso, cuando se recibe la señal, el procesador concluye la instrucción que estuviese en proceso y a continuación responde con una combinación de señales en algunas de sus patillas componiendo una sucesión de dos señales INTA ("Interrupt Acknowledge". La primera señal es simplemente un aviso; la segunda es una petición para que el PIC coloque en el bus de datos un Byte con el número de interrupción, de forma que el procesador pueda localizar el servicio solicitado.
  • 9. Fundamento del lenguaje Página 9 El valor recibido (0-255) es multiplicado por 4 para calcular la dirección del vector correspondiente en la tabla de vectores de interrupción, lo que se realiza mediante un desplazamiento binario de dos posiciones a la izquierda. Interrupción no enmascarable significa que la interrupción no puede ser deshabilitada por software. Este tipo de interrupciones ocurren cuando se recibe una señal en la patilla NMI ("Nonmaskable Interrupt") del procesador. Se reservan para casos en que es crítica la respuesta, por ejemplo que se detecte un error de paridad en la memoria. Además son de prioridad más alta que las enmascarables. SOFTWARE Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad. FUNCIONES DE LA BIOS Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una interrupción software con un cierto valor inicial en los registros. La BIOS emplea un cierto rango de interrupciones, cada una encargada de una tarea específica: INT 10h: Servicios de Vídeo (texto y gráficos). INT 11h: Informe sobre la configuración del equipo. INT 12h: Informe sobre el tamaño de la memoria convencional. INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.). INT 14h: Comunicaciones en serie. INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT). INT 16h: Servicios de teclado. INT 17h: Servicios de impresora. INT 18h: Llamar a la ROM del BASIC (sólo máquinas IBM). INT 19h: Re inicialización del sistema.
  • 10. Fundamento del lenguaje Página 10 INT 1Ah: Servicios horarios. INT 1Fh: Apunta a la tabla de los caracteres ASCII 128-255 (8x8 puntos). FUNCIONES DEL DOS El DOS emplea varias interrupciones, al igual que la BIOS; sin embargo, cuando se habla de funciones del DOS, todo el mundo sobreentiende que se trata de llamar a la INT 21h, la interrupción más importante con diferencia. INT 20h: Terminar programa (tal vez en desuso). INT 21h: Servicios del DOS. INT 22h: Control de finalización de programas. INT 23h: Tratamiento de Ctrl-C. INT 24h: Tratamiento de errores críticos. INT 25h: Lectura absoluta de disco (sectores lógicos). INT 26h: Escritura absoluta en disco (sectores lógicos). INT 27h: Terminar dejando residente el programa (en desuso). INT 28h: Idle (ejecutada cuando el ordenador está inactivo). INT 29h: Impresión rápida en pantalla (no tanto). INT 2Ah: Red local MS NET. INT 2Bh-2Dh: Uso interno del DOS. INT 2Eh: Procesos Batch. INT 2Fh: Interrupción Multiplex. INT 30h-31h: Compatibilidad CP/M-80. INT 32h: Reservada. ESTRUCTURA DE UN PROGRAMA EN EL LENGUAJE ENSAMBLADOR. Un programa en lenguaje ensamblador estará formado por una secuencia de sentencias. Cada sentencia ocupa una sola línea y tiene la siguiente estructura:
  • 11. Fundamento del lenguaje Página 11 [Etiqueta] [Operación] [Operandos] [; Comentarios] Los cuatro campos de una sentencia son opcionales, si no aparece ninguno de ellos (una línea en blanco) tendríamos una sentencia vacía. Las sentencias se dividen en dos tipos: * Instrucciones: Estas sentencias representan órdenes al procesador y tras el proceso de compilación generan código ejecutable. * Directivas: Estas sentencias dirigen el proceso de compilación o construcción del programa ejecutable. No generan código ejecutable. Normalmente se utilizan para aumentar la legibilidad del código fuente. Estructura de un fichero en lenguaje ensamblador Los ficheros de código fuente escritos en lenguaje ensamblador se organizan en líneas. Cada una de las líneas del fichero puede contener una directiva, una instrucción o ambas cosas a la vez en los casos en que sea posible. Todos los ficheros fuente tienen que adecuarse a una estructura fija dividida en secciones. La estructura a seguir se muestra a continuación: Escala EQU 1000 ; Definición de constantes simbólicas ORIGEN 7F40h ; Definición del origen de carga del programa INICIO ini ; Definición de la etiqueta que marca la ; Primera instrucción a ejecutar del programa .PILA 100h ; Definición de la pila .DATOS ; Definición de los datos del programa Dato1 VALOR 12h … .CODIGO ; Definición del código del programa INI: MOV R5, R4 … FIN No existe una convención establecida para la estructura de un programa en lenguaje ensamblador (no como sucede con otros lenguajes, como C/C++). Como regla de oro, es necesaria la declaración de dos segmentos, la de código (CODE) y la de pila (STACK). En
  • 12. Fundamento del lenguaje Página 12 total, hay 4 segmentos principales: Segmento de datos, Segmento de código, Segmento de pila y Segmento Extra. Los diferentes segmentos tienen las siguientes funciones: Segmento de datos: Contiene la dirección donde inicia la declaración de variables. Aquí, escribiremos nuestras variables. Segmento de código: Contiene la dirección de inicio donde se encuentran las instrucciones del programa. Aquí, escribiremos todo el código de nuestro programa Segmento de pila: Contiene la dirección donde se encuentra la pila. Segmento Extra: Contiene la dirección donde podemos almacenar datos extras. PROCEDIMIENTO DE ENSAMBLE, ENLACE Y EJECUCIÓN. Tal como está en el programa es solo un archivo de texto que no puede ejecutarse; primero debe ensamblarse y enlazarlo. 1. El paso de ensamble consiste en la traducción del código fuente en código objeto y la generación de un archivo intermedio.obj. El ensamblador también crea un encabezado al frente del modulo. Obj generado; por parte del encabezado tiene información acerca de direcciones incompletas. 2. El paso de enlace implica convertir un módulo .OBJ en un módulo de código maquina .EX 3. el último paso es cargar el programa para su ejecución. Ya que el cargador conoce en donde está el programa a punto de ser cargado, puede completar las direcciones indicadas en el encabezado que estaban incompletas. CÓMO ENSAMBLAR UN PROGRAMA FUENTE Puede teclear el comando a ejecutar MASM o TASM en una línea de comando o por medio de peticiones. Por Ejemplo: MASM/TASM [opciones] fuente [, objeto] [, listado] [, recruzadas]
  • 13. Fundamento del lenguaje Página 13 Opciones: estipula características como configuración del nivel de mensajes de advertencia. Ya que los valores por omisión del ensamblador por lo regular son los adecuados, rara vez necesitara utilizar opciones. Fuente: identifica el nombre del programa fuente, como Prog1. El ensamblador asume que es extensión ASM de modo que no necesita introducirla. Objeto: estipula un archivo .OBJ generado. Listado: estipula un archivo .LST generado que contiene tanto el código fuente como el código objeto. Recruzadas: genera un archivo de referencias cruzadas con los símbolos usados en el programa, que puede usar para un listado de referencias cruzadas. ENTORNO DE PROGRAMACIÓN Antes de que el COMMAND.COM pase el control al programa que se pretende ejecutar, se crea un bloque de 256 bytes llamado PSP (Program Segment Prefix), cuya descripción detallada se verá en el próximo capítulo. En él aparecen datos tales como la dirección de retorno al dos cuando finalice el programa, la dirección de retorno en caso de Ctrl-Break y en caso de errores críticos. Además de la cantidad de memoria disponible y los posibles parámetros suministrados del programa. Cuando el programa toma el control, DS y ES apuntan al PSP. Tipos de programas: En los de tipo COM: - CS apunta al PSP e IP=100h (el programa empieza tras el PSP). - SS apunta al PSP y SP toma la dirección más alta dentro del segmento del PSP. En los de tipo EXE: - CS e IP toman los valores del punto de arranque del programa (directiva END etiqueta). - SS apunta al segmento de pila y SP = tamaño de la pila definida. Los programas de tipo COM se cargan en memoria tal y como están en disco, entregándoseles el control. Los de tipo EXE, que pueden llegar a manejar múltiples
  • 14. Fundamento del lenguaje Página 14 segmentos de código de hasta 64 Kb, se almacenan en disco «semiensamblados». En realidad, al ser cargados en memoria, el DOS tiene que realizar la última fase de montaje, calculando las direcciones de memoria absolutas. Por ello, estos programas tienen un formato especial en disco, generado por los ensambladores y compiladores, y su imagen en memoria no se corresponde realmente con lo que está grabado en el disco, aunque esto al usuario no le importe. Por ello, no se extrañe el lector de haber visto alguna vez ficheros EXE de más de 640 Kb: evidentemente, no se cargan enteros en memoria aunque lo parezca. EJEMPLO DE PROGRAMA TIPO COM. El siguiente ejemplo escribe una cadena en pantalla llamando a uno de los servicios estándar de impresión del DOS (función 9 de INT 21h): cr EQU 13 ; constante de retorno de carro lf EQU 10 ; constante de salto de línea Programa SEGMENT; segmento común a CS, DS, ES, SS. ASSUME CS: programa, DS: programa ORG 100h ; programa de tipo COM Inicio: LEA DX, texto; dirección de texto a imprimir MOV AH,9 ; función de impresión INT 21h ; llamar al DOS INT 20h ; volver al sistema operativo Texto DB cr, lf,"Grupo Universitario de Informática.", cr,lf,"$" Programa ENDS; fin del segmento END inicio; fin del programa y punto de inicio EJEMPLO PROGRAMA TIPO EXE Los programas EXE (listado al final de esta sección) requieren algo más de elaboración. En primer lugar, es necesario definir una pila y reservar espacio para la misma. Al contrario que los programas COM (cuya pila se sitúa al final del segmento compartido también con el código y los datos) esta característica obliga a definir un tamaño prudente en función de las necesidades del programa. ; Segmento de datos
  • 15. Fundamento del lenguaje Página 15 Datos SEGMENT texto DB cr, lf,"Texto a imprimir",cr,lf,"$" datos ENDS ; Segmento de pila Pila SEGMENT STACK ‘STACK’; poner STACK es obligatorio DB 128 dup ('pila'); reservados 512 bytes pila ENDS ; Segmento de código Código SEGMENT ejemplo PROC FAR ASSUME CS: codigo, DS: datos, SS: pila ; poner dirección de retorno al DOS en la pila: PUSH DS; segmento del PSP XOR AX, AX; AX = 0 PUSH AX; desplazamiento 0 al PSP ; direccionar segmento de datos con DS MOV AX, datos; AX = dirección del segmento de datos MOV DS, AX; inicializar DS ; escribir texto LEA DX, texto; DS: DX = dirección del texto MOV AH,9 INT 21h ; volver al DOS RET; en realidad, RETF (PROC FAR) Ejemplo ENDP Código ENDS; fin del código END ejemplo; punto de arranque del programa. EVALUACION DE WINDOWS La Evaluación de la experiencia en Windows es una medición que le indica lo bien que funciona el equipo con Windows y que utiliza una puntuación total para clasificar el
  • 16. Fundamento del lenguaje Página 16 rendimiento que puede esperar. Una puntuación total más alta suele indicar que el equipo será más rápido y responderá mejor que un equipo con una puntuación final menor. Números de la Evaluación de la experiencia en Windows en Información y herramientas de rendimiento Cada elemento de hardware del equipo obtiene su propia puntuación. La puntuación total del equipo se determina a partir de la puntuación individual más baja y no mediante el promedio de todas las puntuaciones. Puede ver las puntuaciones para conocer el rendimiento del hardware que más le interesa, lo que puede ayudarle a decidir si es necesario actualizar algunas partes del equipo. Para ver la puntuación total del equipo 1. Para abrir Información y herramientas de rendimiento, deslice rápidamente el dedo desde el borde derecho de la pantalla, pulse Buscar (o, si usa un mouse, apunte a la esquina superior derecha de la pantalla, mueva el puntero del mouse hacia abajo y, a continuación, haga clic en Buscar), escriba Información y herramientas de rendimiento en el cuadro de búsqueda, pulse o haga clic en Configuración y después pulse o haga clic en Información y herramientas de rendimiento. 2. Consulte la puntuación total y las puntuaciones del equipo de la Evaluación de la experiencia en Windows Si acaba de actualizar el hardware y desea ver si la puntuación ha cambiado, pulse o haga clic en Volver a ejecutar la evaluación. Puede que tengas que proporcionar una contraseña de administrador o confirmar tu elección. Si no ve las puntuaciones ni una puntuación total, pulse o haga clic en Evaluar este equipo. Puede que tengas que proporcionar una contraseña de administrador o confirmar tu elección.
  • 17. Fundamento del lenguaje Página 17 CONCLUSIÓN En conclusión puedo agregar que estos fueron temas muy importantes y me sirvieron mucho ya que aprendí cosas de gran importancia, que me servirán el resto de mi carrera y
  • 18. Fundamento del lenguaje Página 18 que pondré en práctica, así mismo recomiendo a todos los interesados a poner interés en temas como estos ya que aprenderán mucho y les será de gran utilidad. BIBLIOGRAFÍA www.uned.es/.../INGENIERIA%20EN%20TECNOLOGIAS%20INDUST.
  • 19. Fundamento del lenguaje Página 19 www.eumed.net/libros-gratis/2006c/220/1v.htm gente-itsm.blogspot.com/2011/09/unidad-1-fundamentos.html atc2.aut.uah.es/~avicente/.../leoc/.../t1_fundamentosdelensamblador.pdf https://es.scribd.com/.../Unidad-1-Fundamentos-Introduccion-Lenguaje-