SlideShare una empresa de Scribd logo
1 de 5
Lenguaje de Ensamblador
• El lenguaje ensamblador, o assembler (assembly language en inglés) es un lenguaje de
programación de bajo nivel para los computadores, microprocesadores, microcontroladores,
y otros circuitos integrados programables. Implementa una representación simbólica de los
códigos de máquina binarios y otras constantes necesarias para programar una arquitectura
dada de CPU y constituye la representación más directa del código máquina específico para
cada arquitectura legible por un programador. Esta representación es usualmente definida
por el fabricante de hardware.
• Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que
corresponden al flujo de órdenes ejecutables por un microprocesador.
• Por ejemplo, en el lenguaje ensamblador para un procesador x86:
• La sentencia
• MOV AL, 061h
• Asigna el valor hexadecimal 61 (97 decimal) al registro "AL".
• El programa ensamblador lee la sentencia de arriba y produce su equivalente binario en
lenguaje de máquina
• Binario: 10110000 01100001 (hexadecimal: B061)
• El mnemónico MOV es un código de operación u "opcode". El opcode es seguido por una lista
de argumentos o parámetros, completando una típica instrucción de ensamblador. En el
ejemplo, AL es un registro de 8 bits del procesador, al cual se le asignará el valor hexadecimal
61 especificado.
• El código de máquina generado por el ensamblador consiste de 2 bytes. El primer byte
contiene empaquetado la instrucción MOV y el código del registro hacia donde se va a mover
el dato:
• 10110 000 01100001
• | | |
• | | | +---- Número 61h en binario
• | |
• | +--- Registro AL
• +-------- Instrucción MOV
• En el segundo byte se especifica el número 61h, escrito en binario como 01100001, que se
asignará al registro AL, quedando la sentencia ejecutable como:
• 10110000 01100001
• La cual puede ser entendida y ejecutada directamente por el procesador.
• La descripción del programa es como sigue:
• 1.- Las declaraciones SEGMENT y ENDS definen los segmentos a usar.
• 2.- La variable SALUDO en el segmento DATA, define la cadena a ser desplegada. El signo de
dólares al final de la cadena (denominado centinela) es requerido por la función de
visualización de la cadena de MS-DOS. La cadena incluye los códigos para carriage-return y
line-feed.
• 3.- La etiqueta START en el segmento de código marca el inicio de las instrucciones del
programa.
• 4.- La declaración DW en el segmento de pila define el espacio para ser usado por el stack del
programa.
• 5.- La declaración ASSUME indica que registros de segmento se asociarán con las etiquetas
declaradas en las definiciones de segmentos.
• 6.- Las primeras dos instrucciones cargan la dirección del segmento de datos en el registro
DS. Estas instrucciones no son necesarias para los segmentos de código y stack puesto que la
dirección del segmento de código siempre es cargado en el registro CS y la dirección de la
declaración del stack segment es automáticamente cargada en el registro SS.
• 7.- Las últimas dos instrucciones del segmento CODE usa la función 4CH de MS-DOS para
regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero
ésta es la más recomendada.
• 8.- La directiva END indica el final del código fuente y especifica a START como punto de
arranque.

Más contenido relacionado

La actualidad más candente

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjuan1993are
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose RojasJose Rojas
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMフ乇丂ひ丂
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorDeisyVilchez
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorsalvaradomar
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPUromo91
 
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
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladoresGustavo Davila
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquinaErnes 28
 

La actualidad más candente (20)

FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADORFUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
FUNDAMENTOS DEL LENGUAJE ENSAMBLADOR
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Tasm
TasmTasm
Tasm
 
Ensambladores
EnsambladoresEnsambladores
Ensambladores
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Generalidades del lenguaje ensamblador
Generalidades del lenguaje ensambladorGeneralidades del lenguaje ensamblador
Generalidades del lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPU
 
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
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 

Destacado

Servo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellServo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellRuderocker Billy
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manualRuderocker Billy
 
Sistema interfaz visual para el control de la respiración en maniobras autonó...
Sistema interfaz visual para el control de la respiración en maniobras autonó...Sistema interfaz visual para el control de la respiración en maniobras autonó...
Sistema interfaz visual para el control de la respiración en maniobras autonó...Ruderocker Billy
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manualRuderocker Billy
 
Proyecto Microcontroladores
Proyecto MicrocontroladoresProyecto Microcontroladores
Proyecto Microcontroladoresimera
 
Siemens product & accessory price list
Siemens product & accessory price listSiemens product & accessory price list
Siemens product & accessory price listRuderocker Billy
 
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO manuel_lito
 
Servo 300 function check (each use)
Servo 300 function check (each use)Servo 300 function check (each use)
Servo 300 function check (each use)Ruderocker Billy
 
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1Ruderocker Billy
 
Microcontroladores tabla de referencia
Microcontroladores tabla de referenciaMicrocontroladores tabla de referencia
Microcontroladores tabla de referenciaRuderocker Billy
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Carlos Pastorino
 

Destacado (20)

como programar un pic
como  programar un piccomo  programar un pic
como programar un pic
 
Servo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cellServo 300 exchange 0 2 cell
Servo 300 exchange 0 2 cell
 
Servo 300 1000 hour pm
Servo 300 1000 hour pmServo 300 1000 hour pm
Servo 300 1000 hour pm
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manual
 
Sistema interfaz visual para el control de la respiración en maniobras autonó...
Sistema interfaz visual para el control de la respiración en maniobras autonó...Sistema interfaz visual para el control de la respiración en maniobras autonó...
Sistema interfaz visual para el control de la respiración en maniobras autonó...
 
Siemens 300 a_service_manual
Siemens 300 a_service_manualSiemens 300 a_service_manual
Siemens 300 a_service_manual
 
Servo 300 calibaration(2)
Servo 300 calibaration(2)Servo 300 calibaration(2)
Servo 300 calibaration(2)
 
Servo 300 3000 hour pm
Servo 300 3000 hour pmServo 300 3000 hour pm
Servo 300 3000 hour pm
 
Siemens300 300 apart2
Siemens300 300 apart2Siemens300 300 apart2
Siemens300 300 apart2
 
Proyecto Microcontroladores
Proyecto MicrocontroladoresProyecto Microcontroladores
Proyecto Microcontroladores
 
Siemens product & accessory price list
Siemens product & accessory price listSiemens product & accessory price list
Siemens product & accessory price list
 
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO
TEXTOS EN MATRIZ LED DE 64X16 CON ARDUINO
 
Sv 300 spare parts list
Sv 300 spare parts listSv 300 spare parts list
Sv 300 spare parts list
 
Servo 300 function check (each use)
Servo 300 function check (each use)Servo 300 function check (each use)
Servo 300 function check (each use)
 
Sv300service manual
Sv300service manualSv300service manual
Sv300service manual
 
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1
RESPIRADOR PARA EMERGENCIAS MEDICAS BioRohm PCA1
 
Microcontroladores tabla de referencia
Microcontroladores tabla de referenciaMicrocontroladores tabla de referencia
Microcontroladores tabla de referencia
 
Matriz de led
Matriz de ledMatriz de led
Matriz de led
 
Ventilacion mecanica
Ventilacion mecanicaVentilacion mecanica
Ventilacion mecanica
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 

Similar a Lenguaje de ensamblador

Similar a Lenguaje de ensamblador (20)

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Programación de microcontrolador
Programación de microcontroladorProgramación de microcontrolador
Programación de microcontrolador
 
Mipag web
Mipag webMipag web
Mipag web
 
Data segment
Data segmentData segment
Data segment
 
Como programar un pic
Como programar un pic  Como programar un pic
Como programar un pic
 
Práctica final tercer parcial
Práctica final  tercer parcialPráctica final  tercer parcial
Práctica final tercer parcial
 
Lenguaje de ensamblador daniel romo 9 a -san felipe
Lenguaje de ensamblador daniel romo 9 a -san felipeLenguaje de ensamblador daniel romo 9 a -san felipe
Lenguaje de ensamblador daniel romo 9 a -san felipe
 
Características Generales de EIGRP
Características Generales de EIGRPCaracterísticas Generales de EIGRP
Características Generales de EIGRP
 
Exposición ted
Exposición tedExposición ted
Exposición ted
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Modos de direccionamiento.pdf
Modos de direccionamiento.pdfModos de direccionamiento.pdf
Modos de direccionamiento.pdf
 
Lenguaje Ensamblador
Lenguaje Ensamblador Lenguaje Ensamblador
Lenguaje Ensamblador
 
Ensamblador pic16f84a
Ensamblador pic16f84aEnsamblador pic16f84a
Ensamblador pic16f84a
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Omron02
Omron02Omron02
Omron02
 

Lenguaje de ensamblador

  • 2. • El lenguaje ensamblador, o assembler (assembly language en inglés) es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador. Esta representación es usualmente definida por el fabricante de hardware.
  • 3. • Un programa escrito en lenguaje ensamblador consiste en una serie de instrucciones que corresponden al flujo de órdenes ejecutables por un microprocesador. • Por ejemplo, en el lenguaje ensamblador para un procesador x86: • La sentencia • MOV AL, 061h • Asigna el valor hexadecimal 61 (97 decimal) al registro "AL". • El programa ensamblador lee la sentencia de arriba y produce su equivalente binario en lenguaje de máquina • Binario: 10110000 01100001 (hexadecimal: B061) • El mnemónico MOV es un código de operación u "opcode". El opcode es seguido por una lista de argumentos o parámetros, completando una típica instrucción de ensamblador. En el ejemplo, AL es un registro de 8 bits del procesador, al cual se le asignará el valor hexadecimal 61 especificado. • El código de máquina generado por el ensamblador consiste de 2 bytes. El primer byte contiene empaquetado la instrucción MOV y el código del registro hacia donde se va a mover el dato: • 10110 000 01100001 • | | | • | | | +---- Número 61h en binario • | | • | +--- Registro AL • +-------- Instrucción MOV
  • 4. • En el segundo byte se especifica el número 61h, escrito en binario como 01100001, que se asignará al registro AL, quedando la sentencia ejecutable como: • 10110000 01100001 • La cual puede ser entendida y ejecutada directamente por el procesador.
  • 5. • La descripción del programa es como sigue: • 1.- Las declaraciones SEGMENT y ENDS definen los segmentos a usar. • 2.- La variable SALUDO en el segmento DATA, define la cadena a ser desplegada. El signo de dólares al final de la cadena (denominado centinela) es requerido por la función de visualización de la cadena de MS-DOS. La cadena incluye los códigos para carriage-return y line-feed. • 3.- La etiqueta START en el segmento de código marca el inicio de las instrucciones del programa. • 4.- La declaración DW en el segmento de pila define el espacio para ser usado por el stack del programa. • 5.- La declaración ASSUME indica que registros de segmento se asociarán con las etiquetas declaradas en las definiciones de segmentos. • 6.- Las primeras dos instrucciones cargan la dirección del segmento de datos en el registro DS. Estas instrucciones no son necesarias para los segmentos de código y stack puesto que la dirección del segmento de código siempre es cargado en el registro CS y la dirección de la declaración del stack segment es automáticamente cargada en el registro SS. • 7.- Las últimas dos instrucciones del segmento CODE usa la función 4CH de MS-DOS para regresar el control al sistema operativo. Existen muchas otras formas de hacer esto, pero ésta es la más recomendada. • 8.- La directiva END indica el final del código fuente y especifica a START como punto de arranque.