SlideShare a Scribd company logo
1 of 27
Republica Bolivariana de Venezuela
Ministerio del Poder Popular para la Educación
Universidad Fermín Toro
Facultad de Ingeniería
LENGUAJE ENSAMBLADOR
Autor:
Arianny
Lopez
El lenguaje ensamblador, o assembler, es
un lenguaje de programación de bajo nivel.
Consiste en un conjunto de mnemónicos
que representan instrucciones básicas para
los computadores, microprocesadores, micr
ocontroladores y otros circuitos
programables.
Implementa una representación simbólica
de los códigos de máquina binarios y otras
constantes necesarias para programar
una arquitectura de procesador y constituye
la representación más directa del código
máquina específico para cada arquitectura
legible por un programador.
PROGRAMA EMSAMBLADOR
Generalmente, un programa ensamblador moderno
crea código objeto traduciendo instrucciones mnemónicas de
lenguaje ensamblador en opcodes, y resolviendo los nombres
simbólicos para las localizaciones de memoria y otras
entidades. El uso de referencias simbólicas es una
característica clave del lenguaje ensamblador, evitando
tediosos cálculos y actualizaciones manuales de las
direcciones después de cada modificación del programa. La
mayoría de los ensambladores también incluyen facilidades
de macros para realizar sustitución textual. Los
ensambladores son generalmente más simples de escribir que
los compiladores para los lenguajes de alto nivel, y han
estado disponibles desde los años 1950. Los ensambladores
modernos, especialmente para las arquitecturas basadas
en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, así
como también para el x86 (-64), optimizan la planificación de
instrucciones para explotar la segmentación del CPU
eficientemente.
En los compiladores para lenguajes de alto nivel, son el
último paso antes de generar el código ejecutable.
El lenguaje ensamblador refleja directamente la
arquitectura y las instrucciones en lenguaje de
máquina de la CPU, y pueden ser muy diferentes de
una arquitectura de CPU a otra. Cada arquitectura de
microprocesador tiene su propio lenguaje de máquina,
y en consecuencia su propio lenguaje ensamblador ya
que este se encuentra muy ligado a la estructura del
hardware para el cual se programa. Los
microprocesadores difieren en el tipo y número de
operaciones que soportan; también pueden tener
diferente cantidad de registros, y distinta
representación de los tipos de datos en memoria.
Aunque la mayoría de los microprocesadores son
capaces de cumplir esencialmente las mismas
funciones, la forma en que lo hacen difiere y los
respectivos lenguajes ensamblador reflejan tal
diferencia.
REGISTROS
La UCP o CPU tiene 14 registros
internos, cada uno de ellos de 16
bits (una palabra). Los bits están
enumerados de derecha a izquierda,
de tal modo que el bit menos
significativo es el bit 0.
REGISTROS DE DATOS
AX: Registro acumulador. Es el principal empleado en las
operaciones aritméticas.
BX: Registro base. Se usa para indicar un desplazamiento.
CX: Registro contador. Se usa como contador en los bucles.
DX: Registro de datos. También se usa en las operaciones
aritméticas.
Estos registros son de uso general y también pueden ser utilizados
como registros de 8 bits, para utilizarlos como tales es necesario
referirse a ellos como por ejemplo: AH y AL, que son los bytes alto
(high) y bajo (low) del registro AX. Esta nomenclatura es aplicable
también a los registros BX, CX y DX.
REGISTRO DE SEGMENTOS
CS: Registro de segmento de código. Contiene la
dirección de las instrucciones del programa.
DS: Registro segmento de datos. Contiene la dirección
del área de memoria donde se encuentran los datos del
programa.
SS: Registro segmento de pila. Contiene la dirección del
segmento de pila. La pila es un espacio de memoria
temporal que se usa para almacenar valores de 16 bits
(palabras).
ES: Registro segmento extra. Contiene la dirección del
segmento extra. Se trata de un segmento de datos
adicional que se utiliza para superar la limitación de los
64Kb del segmento de datos y para hacer transferencias
de datos entre segmentos.
REGISTRO PUNTEROS DE PILA
SP: Puntero de la pila. Contiene la
dirección relativa al segmento de la pila.
BP: Puntero base. Se utiliza para fijar
el puntero de pila y así poder acceder a
los elementos de la pila.
REGISTRO INDICES
SI: Índice fuente.
DI: Índice destino.
PUNTERO DE INSTRUCCIONES
IP: Registro puntero de instrucción o
contador de programa (PC). Contiene el
desplazamiento de la siguiente instrucción
a ejecutar respecto al segmento de código
en ejecución. Por lo tanto, la dirección
completa de la siguiente instrucción sería
CS:IP. La única forma de influir en este
registro es de forma indirecta mediante
instrucciones de bifurcación.
REGISTRO DE BANDERAS
Banderas de estado: Registran el estado del procesador,
normalmente asociado a una comparación o a una
instrucción aritmética.
CF: Bandera de acareo
OF: Bandera de desbordamiento (aritmético).
ZF: Bandera de resultado 0 o comparación igual.
SF: Bandera de resultado o comparación negativa.
PF: Bandera de paridad (número par de bits).
AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las
operaciones aritméticas con números BCD.
Banderas de control:
DF: Bandera de dirección. Controla la dirección de las
operaciones con cadenas de caracteres incrementando o
decrementando automáticamente los registros índices (SI y
DI)
IF: Bandera de interrupciones. Indica si están permitidas o
no las interrupciones de los dispositivos externos.
TF: Bandera de atrape. Controla la operación de modo paso
a paso
Cada bandera es un bit y se usa para
registrar la información de estado y de
control de las operaciones del
microprocesador. Hay nueve banderas (los
7 bits restantes no se utilizan):
En el lenguaje ensamblador las líneas de código constan de dos partes, la primera es el nombre de
la instrucción que se va a ejecutar y la segunda son los parámetros del comando u operando. Por
ejemplo:
ADD ah bh Aquí "ADD" es el comando a ejecutar (en este caso una adición o suma) y tanto "ah"
como "bh" son los parámetros. El nombre de las instrucciones en este lenguaje puede estar
formado de 2 a 6 letras, a estas instrucciones también se les llama nombres mnemónicos o
códigos de operación, ya que representan alguna función que habrá de realizar el procesador.
Existen algunos comandos que no requieren parámetros para su operación, así como otros que
requieren solo un parámetro. Algunas veces se utilizarán las instrucciones como sigue:
ADD al,[170] Los corchetes en el segundo parámetro nos indican que vamos a trabajar con el
contenido de la casilla de memoria número 170 y no con el valor 170, a esto se le conoce como
direccionamiento directo (en la instrucción viene la dirección del objeto).
TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR
En ensamblador los bucle, condicionales, subrutinas y demás elementos se
codifica de forma distinta de cómo se hace en otros lenguajes de alto nivel.
BUCLES: Inicialización de un
registro(a modo de contador) al
nº de vueltas del bucle
Etiqueta: Primera instrucción
del bucle decrementar el
contador saltar a la etiqueta si
el contador es mayor que cero
SALTOS CONDICIONALES:
Instrucción de comparación
Evaluar condición y si se
cumple saltar a la etiqueta
prefijada saltar fuera del
condicional
MACROS:
Declaración:
<nombre de la macro>
MACRO
<instrucciones de la
macro> ENDM
Llamada:
<nombre de la macro>
SUBRUTINAS:
Declaración:
<nombre de la subrutina>PROC
<instrucciones de la macro>
RET
<nombre de la subrutina>
ENDP
Llamada:
CALL <nombre de la subrutina>
Una interrupción es una instrucción que detiene la ejecución de un programa para permitir el uso de la
UCP a un proceso prioritario. Una vez concluido este último proceso se devuelve el control a la aplicación
anterior. Por ejemplo, cuando estamos trabajando con un procesador de palabras y en ese momento llega
un aviso de uno de los puertos de comunicaciones, se detiene temporalmente la aplicación que
estábamos utilizando para permitir el uso del procesador al manejo de la información que está legando en
ese momento. Una vez terminada la transferencia de información se reanudan las funciones normales del
procesador de palabras. Las interrupciones ocurren muy seguido, sencillamente la interrupción que
actualiza la hora del día ocurre aproximadamente 18 veces por segundo. Para lograr administrar todas
estas interrupciones, la computadora cuenta con un espacio de memoria, llamado memoria baja, donde
se almacenan las direcciones de cierta localidad de memoria donde se encuentran un juego de
instrucciones que la UCP ejecutará para después regresar a la aplicación en proceso. La sentencia para
usar una interrupción en ensamblador es INT número. En el programa anterior hicimos uso de la
interrupción número 21h para llamar a DOS.
Instrucciones de Transferencia de Datos.
Su misión es intercambiar la información entre los registros y las posiciones de memoria. Las operaciones
de este tipo más relevantes son:
Las operaciones MOV no permitidas son
de memoria a memoria, inmediato a
registro de segmento y de registro de
segmento a registro de segmento. Para
estas operaciones es necesario utilizar
más de una instrucción.
No pueden utilizarse registros de segmento como operandos, ni tampoco dos direcciones de memoria.
La instrucción LEA AX, MEN1 es equivalente a MOV AX, OFFSET MEN1. Sin embargo no siempre
ocurre así, por ejemplo, LEA DX, [SI + datos] corresponde a MOV DX, OFFSET datos, mas la
instrucción ADD DX, SI
Instrucciones Aritméticas
Sirven para llevar a cabo operaciones aritméticas manipulando los registros y las posiciones de
memoria:
Instrucciones Lógicas y de Manejo de Bits
Se trata de instrucciones para realizar operaciones lógicas con los datos tales como AND, OR, XOR, etc.,
así como manipulación de los mismos a nivel de bits
Instrucciones Lógicas
Instrucciones de Manejo de Bits.
Instrucciones de Transferencia de Control
Dentro de esta categoría de instrucciones, podemos distinguir entre instrucciones de transferencia de
control condicionales e incondicionales, bucles, llamadas a procedimientos y subrutinas de atención a
la interrupción. Las condicionales provocan una alteración en la secuencia normal de ejecución del
programa, haciendo que el flujo de ejecución ‘salte’ de un punto del programa a otro sin que ambos
sean consecutivos, dependiendo de que se cumpla o no una determinada condición relacionada
normalmente con el registro de estado. Las incondicionales tienen el mismo efecto pero sin depender
de los valores que en ese momento tengan las banderas del registro de estado. Los bucles permiten
ejecutar una determinada secuencia de operaciones varias veces. Por último, los procedimientos o
subrutinas aglutinan operaciones que se repiten reiteradamente a lo largo del programa, o bien,
contienen instrucciones que realizan una acción muy específica.
Instrucciones de Transferencia de Control Condicionales
Transfieren el control dependiendo de las configuraciones en el registro de banderas. Por ejemplo, se
pueden comparar dos datos y después saltar considerando los valores de las banderas que la comparación
ha establecido. Cada instrucción posee un único operando que no es más que el desplazamiento que indica
dónde ir si el test es positivo. Según consideremos los datos a comparar con o sin signo, distinguimos tres
tipos de saltos condicionales.
Instrucciones de Transferencia de Control Incondicionales
Bucles
Un bucle es un grupo de instrucciones que se ejecutan cíclicamente un número concreto de veces. Para
construir bucles disponemos de las siguientes instrucciones
Llamada a procedimientos
Dentro del segmento de código es posible tener cualquier número de procedimientos. Un procedimiento (o
subrutina) es una sección de código que realiza una tarea bien definida y clara (por ejemplo, situar el
cursor en una posición concreta de la pantalla). La utilización de procedimientos en los programas es
aconsejable porque:
• Reduce el número de líneas de código.
• Permite una mejor organización del programa.
• Facilita la localización de errores.
• Aumenta la legibilidad del programa.
La llamada a procedimientos se gestiona mediante dos instrucciones: CALL y RET
Instrucciones para Manejo de Cadenas
Una cadena es una secuencia de bytes contiguos. Las operaciones que se pueden realizar sobre las
cadenas son las siguientes:
Instrucciones de Control de Flags
Estas instrucciones permiten manipular los bits del registro de estado:
Instrucciones de entrada/salida
Los puertos de entrada y salida (E/S) permiten al procesador comunicarse con los periféricos. El 8086/88
utiliza buses de direcciones y datos ordinarios para acceder a los periféricos, pero habilitando una línea que
distinga el acceso a los mismos de un acceso convencional a la memoria (si no existieran los puertos de
entrada y salida, los periféricos deberían interceptar el acceso a la memoria y estar colocados en un área de la
misma). Para acceder a los puertos de entrada y salida se utilizan las instrucciones IN y OUT.
EJEMPLO DE LENGUAJE ENSAMBLADOR

More Related Content

What's hot

Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assemblerangel
 
Lenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorLenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorsmfch
 
Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkInfomania pro
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjuan1993are
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!romo91
 
ENSAMBLADOR PIC 8086
ENSAMBLADOR PIC  8086ENSAMBLADOR PIC  8086
ENSAMBLADOR PIC 8086Nazue Rap
 
Temario lenguaje ensamblador
Temario lenguaje ensambladorTemario lenguaje ensamblador
Temario lenguaje ensambladorFrancisco Cardona
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Formatos de instrucción
Formatos de instrucciónFormatos de instrucción
Formatos de instrucciónSantiago Rozo
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigEfrain Zrng
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01Isaias Castro
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 

What's hot (17)

Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Lenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesadorLenguaje ensamblador del microprocesador
Lenguaje ensamblador del microprocesador
 
Esamblador8086
Esamblador8086Esamblador8086
Esamblador8086
 
Clase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlinkClase10 ejemplos asm con tasm y tlink
Clase10 ejemplos asm con tasm y tlink
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!
 
ENSAMBLADOR PIC 8086
ENSAMBLADOR PIC  8086ENSAMBLADOR PIC  8086
ENSAMBLADOR PIC 8086
 
Temario lenguaje ensamblador
Temario lenguaje ensambladorTemario lenguaje ensamblador
Temario lenguaje ensamblador
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Formatos de instrucción
Formatos de instrucciónFormatos de instrucción
Formatos de instrucción
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransig
 
Definición de registro de procesador
Definición de registro de procesadorDefinición de registro de procesador
Definición de registro de procesador
 
Registros del procesador 01
Registros del procesador 01Registros del procesador 01
Registros del procesador 01
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 

Similar to Emsamblador (20)

Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador
 
Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Unidad I.pdf
Unidad I.pdfUnidad I.pdf
Unidad I.pdf
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Jin Unidad5
Jin Unidad5Jin Unidad5
Jin Unidad5
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
asm_mododir2.pdf
asm_mododir2.pdfasm_mododir2.pdf
asm_mododir2.pdf
 
Assambler
AssamblerAssambler
Assambler
 
Modos de direccionamiento.pdf
Modos de direccionamiento.pdfModos de direccionamiento.pdf
Modos de direccionamiento.pdf
 
Mipag web
Mipag webMipag web
Mipag web
 
Asm mododir2
Asm mododir2Asm mododir2
Asm mododir2
 
Yeimir rincon 20%
Yeimir rincon 20%Yeimir rincon 20%
Yeimir rincon 20%
 
Unidad 2 arquitectura del computador
Unidad 2 arquitectura del computadorUnidad 2 arquitectura del computador
Unidad 2 arquitectura del computador
 
Arquitectura x86_ Registros
Arquitectura x86_ RegistrosArquitectura x86_ Registros
Arquitectura x86_ Registros
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 

More from arianny lopez

Conocimiento en la inteligencia artificial
Conocimiento en la inteligencia artificialConocimiento en la inteligencia artificial
Conocimiento en la inteligencia artificialarianny lopez
 
Analisis numerico y manejo de errores
Analisis numerico y manejo de erroresAnalisis numerico y manejo de errores
Analisis numerico y manejo de erroresarianny lopez
 
Análisis crítico del sistema nacional de ciencia
Análisis crítico del sistema nacional de cienciaAnálisis crítico del sistema nacional de ciencia
Análisis crítico del sistema nacional de cienciaarianny lopez
 
Ciencia y tecnología
Ciencia y tecnologíaCiencia y tecnología
Ciencia y tecnologíaarianny lopez
 
Remedios naturales online
Remedios naturales onlineRemedios naturales online
Remedios naturales onlinearianny lopez
 

More from arianny lopez (7)

Conocimiento en la inteligencia artificial
Conocimiento en la inteligencia artificialConocimiento en la inteligencia artificial
Conocimiento en la inteligencia artificial
 
Los lenguajes
Los lenguajesLos lenguajes
Los lenguajes
 
Analisis numerico y manejo de errores
Analisis numerico y manejo de erroresAnalisis numerico y manejo de errores
Analisis numerico y manejo de errores
 
Arianny lopez a2
Arianny lopez a2Arianny lopez a2
Arianny lopez a2
 
Análisis crítico del sistema nacional de ciencia
Análisis crítico del sistema nacional de cienciaAnálisis crítico del sistema nacional de ciencia
Análisis crítico del sistema nacional de ciencia
 
Ciencia y tecnología
Ciencia y tecnologíaCiencia y tecnología
Ciencia y tecnología
 
Remedios naturales online
Remedios naturales onlineRemedios naturales online
Remedios naturales online
 

Recently uploaded

SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALEdwinC23
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxMaxPercyBorjaVillanu
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOFernando Bravo
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de GestiónYanet Caldas
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosandersonsubero28
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJOJimyAMoran
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxwilliam801689
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanaArnolVillalobos
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstDavidRojas870673
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfElisaLen4
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESJHONJAIROVENTURASAUC
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdfGustavoAdolfoDiaz3
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGUROalejandrocrisostomo2
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasIANMIKELMIRANDAGONZA
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxjhorbycoralsanchez
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cerealescarlosjuliogermanari1
 

Recently uploaded (20)

SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONALSESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
SESION 11 SUPERVISOR SSOMA SEGURIDAD Y SALUD OCUPACIONAL
 
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptxG4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
G4 - CASO DE ESTUDIO - VOLUMEN DE UN RESERVORIO (1).pptx
 
Análisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECOAnálisis de Costos y Presupuestos CAPECO
Análisis de Costos y Presupuestos CAPECO
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
Auditoría de Sistemas de Gestión
Auditoría    de   Sistemas     de GestiónAuditoría    de   Sistemas     de Gestión
Auditoría de Sistemas de Gestión
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
Tipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplosTipos de suelo y su clasificación y ejemplos
Tipos de suelo y su clasificación y ejemplos
 
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJODIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
DIAPOSITIVAS DE SEGURIDAD Y SALUD EN EL TRABAJO
 
Clasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docxClasificación de Equipos e Instrumentos en Electricidad.docx
Clasificación de Equipos e Instrumentos en Electricidad.docx
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
docsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbanadocsity-manzaneo-y-lotizacion para habilitacopm urbana
docsity-manzaneo-y-lotizacion para habilitacopm urbana
 
sistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gstsistema de CLORACIÓN DE AGUA POTABLE gst
sistema de CLORACIÓN DE AGUA POTABLE gst
 
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdfAportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
Aportes a la Arquitectura de Le Corbusier y Mies Van Der Rohe.pdf
 
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALESCAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
CAPACITACIÓN EN AGUA Y SANEAMIENTO EN ZONAS RURALES
 
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
3.6.2 Lab - Implement VLANs and Trunking - ILM.pdf
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf  PARA TRABAJO SEGUROATS-FORMATO cara.pdf  PARA TRABAJO SEGURO
ATS-FORMATO cara.pdf PARA TRABAJO SEGURO
 
portafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidenciasportafolio final manco 2 1816827 portafolio de evidencias
portafolio final manco 2 1816827 portafolio de evidencias
 
ingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptxingenieria grafica para la carrera de ingeniera .pptx
ingenieria grafica para la carrera de ingeniera .pptx
 
Cereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. CerealesCereales tecnología de los alimentos. Cereales
Cereales tecnología de los alimentos. Cereales
 

Emsamblador

  • 1. Republica Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universidad Fermín Toro Facultad de Ingeniería LENGUAJE ENSAMBLADOR Autor: Arianny Lopez
  • 2. El lenguaje ensamblador, o assembler, es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, micr ocontroladores y otros circuitos programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura de procesador y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. PROGRAMA EMSAMBLADOR Generalmente, un programa ensamblador moderno crea código objeto traduciendo instrucciones mnemónicas de lenguaje ensamblador en opcodes, y resolviendo los nombres simbólicos para las localizaciones de memoria y otras entidades. El uso de referencias simbólicas es una característica clave del lenguaje ensamblador, evitando tediosos cálculos y actualizaciones manuales de las direcciones después de cada modificación del programa. La mayoría de los ensambladores también incluyen facilidades de macros para realizar sustitución textual. Los ensambladores son generalmente más simples de escribir que los compiladores para los lenguajes de alto nivel, y han estado disponibles desde los años 1950. Los ensambladores modernos, especialmente para las arquitecturas basadas en RISC, tales como MIPS, Sun SPARC, y HP PA-RISC, así como también para el x86 (-64), optimizan la planificación de instrucciones para explotar la segmentación del CPU eficientemente. En los compiladores para lenguajes de alto nivel, son el último paso antes de generar el código ejecutable.
  • 3. El lenguaje ensamblador refleja directamente la arquitectura y las instrucciones en lenguaje de máquina de la CPU, y pueden ser muy diferentes de una arquitectura de CPU a otra. Cada arquitectura de microprocesador tiene su propio lenguaje de máquina, y en consecuencia su propio lenguaje ensamblador ya que este se encuentra muy ligado a la estructura del hardware para el cual se programa. Los microprocesadores difieren en el tipo y número de operaciones que soportan; también pueden tener diferente cantidad de registros, y distinta representación de los tipos de datos en memoria. Aunque la mayoría de los microprocesadores son capaces de cumplir esencialmente las mismas funciones, la forma en que lo hacen difiere y los respectivos lenguajes ensamblador reflejan tal diferencia.
  • 4. REGISTROS La UCP o CPU tiene 14 registros internos, cada uno de ellos de 16 bits (una palabra). Los bits están enumerados de derecha a izquierda, de tal modo que el bit menos significativo es el bit 0.
  • 5. REGISTROS DE DATOS AX: Registro acumulador. Es el principal empleado en las operaciones aritméticas. BX: Registro base. Se usa para indicar un desplazamiento. CX: Registro contador. Se usa como contador en los bucles. DX: Registro de datos. También se usa en las operaciones aritméticas. Estos registros son de uso general y también pueden ser utilizados como registros de 8 bits, para utilizarlos como tales es necesario referirse a ellos como por ejemplo: AH y AL, que son los bytes alto (high) y bajo (low) del registro AX. Esta nomenclatura es aplicable también a los registros BX, CX y DX.
  • 6. REGISTRO DE SEGMENTOS CS: Registro de segmento de código. Contiene la dirección de las instrucciones del programa. DS: Registro segmento de datos. Contiene la dirección del área de memoria donde se encuentran los datos del programa. SS: Registro segmento de pila. Contiene la dirección del segmento de pila. La pila es un espacio de memoria temporal que se usa para almacenar valores de 16 bits (palabras). ES: Registro segmento extra. Contiene la dirección del segmento extra. Se trata de un segmento de datos adicional que se utiliza para superar la limitación de los 64Kb del segmento de datos y para hacer transferencias de datos entre segmentos. REGISTRO PUNTEROS DE PILA SP: Puntero de la pila. Contiene la dirección relativa al segmento de la pila. BP: Puntero base. Se utiliza para fijar el puntero de pila y así poder acceder a los elementos de la pila. REGISTRO INDICES SI: Índice fuente. DI: Índice destino.
  • 7. PUNTERO DE INSTRUCCIONES IP: Registro puntero de instrucción o contador de programa (PC). Contiene el desplazamiento de la siguiente instrucción a ejecutar respecto al segmento de código en ejecución. Por lo tanto, la dirección completa de la siguiente instrucción sería CS:IP. La única forma de influir en este registro es de forma indirecta mediante instrucciones de bifurcación. REGISTRO DE BANDERAS Banderas de estado: Registran el estado del procesador, normalmente asociado a una comparación o a una instrucción aritmética. CF: Bandera de acareo OF: Bandera de desbordamiento (aritmético). ZF: Bandera de resultado 0 o comparación igual. SF: Bandera de resultado o comparación negativa. PF: Bandera de paridad (número par de bits). AF: Bandera auxiliar. Indica si hay necesidad de ajuste en las operaciones aritméticas con números BCD. Banderas de control: DF: Bandera de dirección. Controla la dirección de las operaciones con cadenas de caracteres incrementando o decrementando automáticamente los registros índices (SI y DI) IF: Bandera de interrupciones. Indica si están permitidas o no las interrupciones de los dispositivos externos. TF: Bandera de atrape. Controla la operación de modo paso a paso Cada bandera es un bit y se usa para registrar la información de estado y de control de las operaciones del microprocesador. Hay nueve banderas (los 7 bits restantes no se utilizan):
  • 8. En el lenguaje ensamblador las líneas de código constan de dos partes, la primera es el nombre de la instrucción que se va a ejecutar y la segunda son los parámetros del comando u operando. Por ejemplo: ADD ah bh Aquí "ADD" es el comando a ejecutar (en este caso una adición o suma) y tanto "ah" como "bh" son los parámetros. El nombre de las instrucciones en este lenguaje puede estar formado de 2 a 6 letras, a estas instrucciones también se les llama nombres mnemónicos o códigos de operación, ya que representan alguna función que habrá de realizar el procesador. Existen algunos comandos que no requieren parámetros para su operación, así como otros que requieren solo un parámetro. Algunas veces se utilizarán las instrucciones como sigue: ADD al,[170] Los corchetes en el segundo parámetro nos indican que vamos a trabajar con el contenido de la casilla de memoria número 170 y no con el valor 170, a esto se le conoce como direccionamiento directo (en la instrucción viene la dirección del objeto).
  • 9. TÉCNICAS DE CODIFICACIÓN EN ENSAMBLADOR En ensamblador los bucle, condicionales, subrutinas y demás elementos se codifica de forma distinta de cómo se hace en otros lenguajes de alto nivel. BUCLES: Inicialización de un registro(a modo de contador) al nº de vueltas del bucle Etiqueta: Primera instrucción del bucle decrementar el contador saltar a la etiqueta si el contador es mayor que cero SALTOS CONDICIONALES: Instrucción de comparación Evaluar condición y si se cumple saltar a la etiqueta prefijada saltar fuera del condicional MACROS: Declaración: <nombre de la macro> MACRO <instrucciones de la macro> ENDM Llamada: <nombre de la macro> SUBRUTINAS: Declaración: <nombre de la subrutina>PROC <instrucciones de la macro> RET <nombre de la subrutina> ENDP Llamada: CALL <nombre de la subrutina>
  • 10. Una interrupción es una instrucción que detiene la ejecución de un programa para permitir el uso de la UCP a un proceso prioritario. Una vez concluido este último proceso se devuelve el control a la aplicación anterior. Por ejemplo, cuando estamos trabajando con un procesador de palabras y en ese momento llega un aviso de uno de los puertos de comunicaciones, se detiene temporalmente la aplicación que estábamos utilizando para permitir el uso del procesador al manejo de la información que está legando en ese momento. Una vez terminada la transferencia de información se reanudan las funciones normales del procesador de palabras. Las interrupciones ocurren muy seguido, sencillamente la interrupción que actualiza la hora del día ocurre aproximadamente 18 veces por segundo. Para lograr administrar todas estas interrupciones, la computadora cuenta con un espacio de memoria, llamado memoria baja, donde se almacenan las direcciones de cierta localidad de memoria donde se encuentran un juego de instrucciones que la UCP ejecutará para después regresar a la aplicación en proceso. La sentencia para usar una interrupción en ensamblador es INT número. En el programa anterior hicimos uso de la interrupción número 21h para llamar a DOS.
  • 11. Instrucciones de Transferencia de Datos. Su misión es intercambiar la información entre los registros y las posiciones de memoria. Las operaciones de este tipo más relevantes son: Las operaciones MOV no permitidas son de memoria a memoria, inmediato a registro de segmento y de registro de segmento a registro de segmento. Para estas operaciones es necesario utilizar más de una instrucción. No pueden utilizarse registros de segmento como operandos, ni tampoco dos direcciones de memoria.
  • 12. La instrucción LEA AX, MEN1 es equivalente a MOV AX, OFFSET MEN1. Sin embargo no siempre ocurre así, por ejemplo, LEA DX, [SI + datos] corresponde a MOV DX, OFFSET datos, mas la instrucción ADD DX, SI
  • 13. Instrucciones Aritméticas Sirven para llevar a cabo operaciones aritméticas manipulando los registros y las posiciones de memoria:
  • 14.
  • 15.
  • 16.
  • 17. Instrucciones Lógicas y de Manejo de Bits Se trata de instrucciones para realizar operaciones lógicas con los datos tales como AND, OR, XOR, etc., así como manipulación de los mismos a nivel de bits Instrucciones Lógicas
  • 19. Instrucciones de Transferencia de Control Dentro de esta categoría de instrucciones, podemos distinguir entre instrucciones de transferencia de control condicionales e incondicionales, bucles, llamadas a procedimientos y subrutinas de atención a la interrupción. Las condicionales provocan una alteración en la secuencia normal de ejecución del programa, haciendo que el flujo de ejecución ‘salte’ de un punto del programa a otro sin que ambos sean consecutivos, dependiendo de que se cumpla o no una determinada condición relacionada normalmente con el registro de estado. Las incondicionales tienen el mismo efecto pero sin depender de los valores que en ese momento tengan las banderas del registro de estado. Los bucles permiten ejecutar una determinada secuencia de operaciones varias veces. Por último, los procedimientos o subrutinas aglutinan operaciones que se repiten reiteradamente a lo largo del programa, o bien, contienen instrucciones que realizan una acción muy específica.
  • 20. Instrucciones de Transferencia de Control Condicionales Transfieren el control dependiendo de las configuraciones en el registro de banderas. Por ejemplo, se pueden comparar dos datos y después saltar considerando los valores de las banderas que la comparación ha establecido. Cada instrucción posee un único operando que no es más que el desplazamiento que indica dónde ir si el test es positivo. Según consideremos los datos a comparar con o sin signo, distinguimos tres tipos de saltos condicionales.
  • 21. Instrucciones de Transferencia de Control Incondicionales
  • 22. Bucles Un bucle es un grupo de instrucciones que se ejecutan cíclicamente un número concreto de veces. Para construir bucles disponemos de las siguientes instrucciones
  • 23. Llamada a procedimientos Dentro del segmento de código es posible tener cualquier número de procedimientos. Un procedimiento (o subrutina) es una sección de código que realiza una tarea bien definida y clara (por ejemplo, situar el cursor en una posición concreta de la pantalla). La utilización de procedimientos en los programas es aconsejable porque: • Reduce el número de líneas de código. • Permite una mejor organización del programa. • Facilita la localización de errores. • Aumenta la legibilidad del programa. La llamada a procedimientos se gestiona mediante dos instrucciones: CALL y RET
  • 24. Instrucciones para Manejo de Cadenas Una cadena es una secuencia de bytes contiguos. Las operaciones que se pueden realizar sobre las cadenas son las siguientes:
  • 25. Instrucciones de Control de Flags Estas instrucciones permiten manipular los bits del registro de estado: Instrucciones de entrada/salida Los puertos de entrada y salida (E/S) permiten al procesador comunicarse con los periféricos. El 8086/88 utiliza buses de direcciones y datos ordinarios para acceder a los periféricos, pero habilitando una línea que distinga el acceso a los mismos de un acceso convencional a la memoria (si no existieran los puertos de entrada y salida, los periféricos deberían interceptar el acceso a la memoria y estar colocados en un área de la misma). Para acceder a los puertos de entrada y salida se utilizan las instrucciones IN y OUT.
  • 26.
  • 27. EJEMPLO DE LENGUAJE ENSAMBLADOR