SlideShare una empresa de Scribd logo
Lenguaje Ensamblador (Assembler)
Carlos Guillén
C.I.:25.894.646
Programación II
SAIA A
Lenguaje Ensamblador
• Consiste en abreviaturas similares al Inglés, llamadas instrucciones
mnemotécnicas, que permiten representar las operaciones elementales
de la computadora.
Código de operación
• 00010101
• 00010111
• 00010110
Dirección
• 10000001
• 10000010
• 10000011
Instrucción en lenguaje
• LOAD A
• ADD B
• STORE C
• El microprocesador 8086 tiene 14 registros de 16bits:
• Registros de datos:
- AX (AH, AL)
- BX (BH, BL)
- CX (CH, CL)
- DX (DH, DL)
• Registros punteros:
- SP - Puntero de pila
- BP - Puntero base de pila
- SI - Registro Indice
- DI - Registro Indice
- IP - Contador de Programa
• Registros de estado del procesador:
- PSW
• Registros de segmento:
- CS - Segmento de codigo
- DS - Segmento de datos
- ES - Segmento extra
- SS - Segmento pila
Instrucciones de transferencia de datos
• MOV (Destino, Origen)
Transfiere un Byte o una palabra desde el origen hasta el
destino.
Ejemplo:
- MOV ES, AX ; ES = AX
- MOV BL, 255 ; BL = 255 = FFh
• PUSH (Origen)
Decrementa el puntero de pila (SP) en 2 y transfiere la palabra
especificada en el origen a lo alto de la pila.
Ejemplo:
- PUSH BX ; Coloca BX en la pila.
• POP (Destino)
Transfiere un byte o una palabra desde lo alto de la pila al
destino e incrementa la pila en 2.
Ejemplo:
- POP BX ; Pone en BX el contenido de la cima de la
pila.
Instrucciones Aritméticas
• ADD (Destino, Origen)
Suma los dos operadores y deja el resultado en el destino.
Los operadores deben ser del mismo tipo.
Ejemplo:
- ADD CX, DX ; CX = CX + DX
• ADC (Destino, Origen)
Similar a la instrucción ADD, pero agrega el posible
acarreo de una operación anterior.
Ejemplo:
- ADC CX, DX ; CX = CX + DX + CF
• SUB (Destino, Origen)
Resta el origen del destino, y su resultado se almacena en el destino.
Ejemplo:
- SUB CX, DX ; CX = CX – DX
• SBB (Destino, Origen)
Similar a la instrucción SUB, pero se resta uno si el flag de acarreo está
activo.
Ejemplo:
- SBB CX, DX ; CX = CX – DX - CF
• MUL (Origen)
Multiplica, sin considerar el signo el acumulador (AL o AX) por el
operando origen. Si el operando origen es de tipo byte, lo multiplica por
AL y el resultado se almacena en AX. Si es de tipo palabra, lo multiplica
por AX y el resultado se almacena en DX (palabra superior) y AX (palabra
inferior).
Ejemplo:
– ; AX = 1234h
– ; BX = 1000h
– MUL BX ; DX = 0123h, AX = 4000h
• IMUL (Origen)
Multiplica, considerando el signo, el acumulador AL o AX por el operando
origen. Si el operando fuente es un byte, lo multiplica por AL y se
almacena el resultado en AX. Si se trata de una palabra, lo multiplica por
AX y el resultado se almacena en DX (palabra superior) AX (palabra
inferior).
Ejemplo:
- ; AL = FEh = -2
– ; BL = 12h = 18
– IMUL BL ; AX = FFDCh = -36
• DIV (Origen)
Divide, sin considerar el signo, el acumulador AL o AX y su extensión (AH o
DX) por el operando origen. Si el operando origen es un byte, divide AX
por dicho operando y el resultado se almacena en AL y el resto en AH. Si
el origen es una palabra, divide DX y AX entre dicho operando y el
resultado se almacena en AX y el resto en DX.
Ejemplo:
– ; AX = 0013h = 19
– ; BL = 02h = 2
– DIV BL ; AH = 1, AL = 9
• IDIV (Origen)
Divide, considerando el signo, el acumulador AL o AX y su extensión
(AH o DX) por el operando origen. Si el operando origen es un byte,
divide AX por dicho operando y el resultado se almacena en AL y el
resto en AH. Si el origen es una palabra, divide DX y AX entre dicho
operando y el resultado se almacena en AX y el resto en DX.
Ejemplo:
– ; AX = FFEDh = -19
– ; BL = 02h = 2
– IDIV BL ; AH = 1, AL = F7h = -9
• INC (Destino)
Suma una unidad al operando destino. El operando puede ser de
tipo byte o palabra.
Ejemplo:
– ; AX = 1234h
– INC AX ; AX = 1235h
– INC AH ; AH = 13h
• DEC (Destino)
Resta una unidad al operando destino. El operando puede ser
de tipo byte o palabra.
Ejemplo:
– ; AX = 1234h
– DEC AX ; AX = 1233h
– DEC AH ; AH = 11h
• NEG (Destino)
Cambia de signo mediante el complemento a 2 del operando
destino. Deja el resultado en el operando destino. El operando
puede ser de tipo byte o palabra.
Ejemplo:
– NEG AL ; Si AL = F2h antes de la operación, después AL = 0Eh
Instrucción para leer caracteres
• Código para leer carácter con eco:
mov ah,01h ;petición de leer carácter
int 21h ;llama al DOS
la función 01h indica la operación para leer un carácter desde el teclado, carácter
con eco quiere decir: que cuando pulsas un carácter se imprime en la pantalla
enseguida.
• Código para leer carácter sin eco:
mov ah,07h ;petición de leer carácter
int 21h ;llama al DOS
la función 07h o también 08h ambas indica la operación para leer un carácter
desde el teclado, carácter sin eco quiere decir: que cuando pulsas un carácter no
es impreso el carácter pulsado hasta que se manda imprimir con otra función
Lenguaje ensamblador (assembler)
Técnicas de Codificación
• Bucles: Inicialización de un registro (a modo de contador) al número de
vueltas del bucle.
• Saltos Condicionales: Instrucción de comparación (If). Evaluar condición
y si se cumple saltar a la etiqueta prefijada.
• Ejemplo:
• MACROS:
Declaración:
<nombre de la macro> MACRO
<instrucciones de la macro>
ENDM
Llamada:
<nombre de la macro>
• Ejemplo:
• Subrutinas:
Declaración:
<nombre la de subrutina> PROC
<instrucciones de la subrutina>
RET
<nombre de la subrutina> ENDP
Llamada:
CALL <nombre de la subrutina>
Procedimientos
Los procedimientos son un conjunto de instrucciones
que realizan una tarea -y preferentemente solo una- que
se ha de utilizar en más de una ocasión pero se declara
una sola vez en el código fuente.
Un procedimiento puede llamar a otro, y este a su vez a
otro y así sucesivamente
El procedimiento se guarda en memoria cuando se
ensambla y ejecuta y entonces puede ser llamado tantas
veces como sea necesario, ahorrando espacio y
facilitando el desarrollo de software gracias a que
permite organizarlo.

Más contenido relacionado

PPTX
macros Lenguaje ensamblador
PPTX
Clases abstractas e interfaces
PDF
PDF
Metodología de desarrollo de software basada en componentes
DOCX
Traductores y compiladores con lex
PPT
Compiladores
PDF
Tutorial de JFLAP
PPTX
Gramática Libre de Contexto
macros Lenguaje ensamblador
Clases abstractas e interfaces
Metodología de desarrollo de software basada en componentes
Traductores y compiladores con lex
Compiladores
Tutorial de JFLAP
Gramática Libre de Contexto

La actualidad más candente (20)

PDF
Lenguajes aceptados por una maquina de turing
PPTX
Autómatas de Pila
PPSX
Traductores de lenguaje
PPSX
Tipos De Ensambladores
PDF
Unidad 1 verificacion y-validacion
PDF
Codigo intermedio
PPT
1.4 ensambladores y compiladores
PPTX
Algoritmo del baquero
PPTX
PAGINACION Y SEGMENTACION DE MEMORIA
PPTX
Registros del cpu
PDF
Lenguajes de interfaz
PPTX
Microprocessor chapter 9 - assembly language programming
PDF
Proceso unificado
PPT
Operaciones entre lenguajes
PPTX
Two pass Assembler
PPTX
CLASIFICACION DE LENGUAJES DE PROGRAMACION
PPT
Estructura+del+sistema+mac+os+x
PPTX
Algoritmos y Pseudocódigo
DOC
Registros del procesador 01
PDF
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Lenguajes aceptados por una maquina de turing
Autómatas de Pila
Traductores de lenguaje
Tipos De Ensambladores
Unidad 1 verificacion y-validacion
Codigo intermedio
1.4 ensambladores y compiladores
Algoritmo del baquero
PAGINACION Y SEGMENTACION DE MEMORIA
Registros del cpu
Lenguajes de interfaz
Microprocessor chapter 9 - assembly language programming
Proceso unificado
Operaciones entre lenguajes
Two pass Assembler
CLASIFICACION DE LENGUAJES DE PROGRAMACION
Estructura+del+sistema+mac+os+x
Algoritmos y Pseudocódigo
Registros del procesador 01
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
Publicidad

Similar a Lenguaje ensamblador (assembler) (20)

PPT
Arranque de Sistema Operativo con Assembler
PPTX
Matematicos
PDF
Intrucciones 16 bits.pdf
PPT
Instrucciones lenguaje assembler
PPT
Organizacion de la unidad central de procesamiento
PPT
Organizacion-de-la-unidad-central-de-procesamiento
PPT
Comparativa Intel 8086 Motorola 68000
PDF
asm_mododir2.pdf
PDF
Asm mododir2
PDF
Esamblador8086
PPT
MSX88 simulador assembly programación arquitectura de software.ppt
PPTX
Assembler
PPT
18613352 assembler
PDF
Manual80x86
PPTX
assembler
PDF
Sintaxis del lenguaje ensamblador
PPTX
Edianny.adan.programacion.docx
PDF
Microcomputadoras al detalle
PPTX
Arquitectura De Los Computadore
DOCX
Registros del procesador
Arranque de Sistema Operativo con Assembler
Matematicos
Intrucciones 16 bits.pdf
Instrucciones lenguaje assembler
Organizacion de la unidad central de procesamiento
Organizacion-de-la-unidad-central-de-procesamiento
Comparativa Intel 8086 Motorola 68000
asm_mododir2.pdf
Asm mododir2
Esamblador8086
MSX88 simulador assembly programación arquitectura de software.ppt
Assembler
18613352 assembler
Manual80x86
assembler
Sintaxis del lenguaje ensamblador
Edianny.adan.programacion.docx
Microcomputadoras al detalle
Arquitectura De Los Computadore
Registros del procesador
Publicidad

Último (6)

PPTX
Conceptos basicos de Base de Datos y sus propiedades
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
sistemas de informacion.................
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
Conceptos basicos de Base de Datos y sus propiedades
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
sistemas de informacion.................
AutoCAD Herramientas para el futuro, Juan Fandiño
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Derechos_de_Autor_y_Creative_Commons.pptx

Lenguaje ensamblador (assembler)

  • 1. Lenguaje Ensamblador (Assembler) Carlos Guillén C.I.:25.894.646 Programación II SAIA A
  • 2. Lenguaje Ensamblador • Consiste en abreviaturas similares al Inglés, llamadas instrucciones mnemotécnicas, que permiten representar las operaciones elementales de la computadora. Código de operación • 00010101 • 00010111 • 00010110 Dirección • 10000001 • 10000010 • 10000011 Instrucción en lenguaje • LOAD A • ADD B • STORE C
  • 3. • El microprocesador 8086 tiene 14 registros de 16bits: • Registros de datos: - AX (AH, AL) - BX (BH, BL) - CX (CH, CL) - DX (DH, DL) • Registros punteros: - SP - Puntero de pila - BP - Puntero base de pila - SI - Registro Indice - DI - Registro Indice - IP - Contador de Programa • Registros de estado del procesador: - PSW • Registros de segmento: - CS - Segmento de codigo - DS - Segmento de datos - ES - Segmento extra - SS - Segmento pila
  • 4. Instrucciones de transferencia de datos • MOV (Destino, Origen) Transfiere un Byte o una palabra desde el origen hasta el destino. Ejemplo: - MOV ES, AX ; ES = AX - MOV BL, 255 ; BL = 255 = FFh • PUSH (Origen) Decrementa el puntero de pila (SP) en 2 y transfiere la palabra especificada en el origen a lo alto de la pila. Ejemplo: - PUSH BX ; Coloca BX en la pila.
  • 5. • POP (Destino) Transfiere un byte o una palabra desde lo alto de la pila al destino e incrementa la pila en 2. Ejemplo: - POP BX ; Pone en BX el contenido de la cima de la pila.
  • 6. Instrucciones Aritméticas • ADD (Destino, Origen) Suma los dos operadores y deja el resultado en el destino. Los operadores deben ser del mismo tipo. Ejemplo: - ADD CX, DX ; CX = CX + DX • ADC (Destino, Origen) Similar a la instrucción ADD, pero agrega el posible acarreo de una operación anterior. Ejemplo: - ADC CX, DX ; CX = CX + DX + CF
  • 7. • SUB (Destino, Origen) Resta el origen del destino, y su resultado se almacena en el destino. Ejemplo: - SUB CX, DX ; CX = CX – DX • SBB (Destino, Origen) Similar a la instrucción SUB, pero se resta uno si el flag de acarreo está activo. Ejemplo: - SBB CX, DX ; CX = CX – DX - CF • MUL (Origen) Multiplica, sin considerar el signo el acumulador (AL o AX) por el operando origen. Si el operando origen es de tipo byte, lo multiplica por AL y el resultado se almacena en AX. Si es de tipo palabra, lo multiplica por AX y el resultado se almacena en DX (palabra superior) y AX (palabra inferior). Ejemplo: – ; AX = 1234h – ; BX = 1000h – MUL BX ; DX = 0123h, AX = 4000h
  • 8. • IMUL (Origen) Multiplica, considerando el signo, el acumulador AL o AX por el operando origen. Si el operando fuente es un byte, lo multiplica por AL y se almacena el resultado en AX. Si se trata de una palabra, lo multiplica por AX y el resultado se almacena en DX (palabra superior) AX (palabra inferior). Ejemplo: - ; AL = FEh = -2 – ; BL = 12h = 18 – IMUL BL ; AX = FFDCh = -36 • DIV (Origen) Divide, sin considerar el signo, el acumulador AL o AX y su extensión (AH o DX) por el operando origen. Si el operando origen es un byte, divide AX por dicho operando y el resultado se almacena en AL y el resto en AH. Si el origen es una palabra, divide DX y AX entre dicho operando y el resultado se almacena en AX y el resto en DX. Ejemplo: – ; AX = 0013h = 19 – ; BL = 02h = 2 – DIV BL ; AH = 1, AL = 9
  • 9. • IDIV (Origen) Divide, considerando el signo, el acumulador AL o AX y su extensión (AH o DX) por el operando origen. Si el operando origen es un byte, divide AX por dicho operando y el resultado se almacena en AL y el resto en AH. Si el origen es una palabra, divide DX y AX entre dicho operando y el resultado se almacena en AX y el resto en DX. Ejemplo: – ; AX = FFEDh = -19 – ; BL = 02h = 2 – IDIV BL ; AH = 1, AL = F7h = -9 • INC (Destino) Suma una unidad al operando destino. El operando puede ser de tipo byte o palabra. Ejemplo: – ; AX = 1234h – INC AX ; AX = 1235h – INC AH ; AH = 13h
  • 10. • DEC (Destino) Resta una unidad al operando destino. El operando puede ser de tipo byte o palabra. Ejemplo: – ; AX = 1234h – DEC AX ; AX = 1233h – DEC AH ; AH = 11h • NEG (Destino) Cambia de signo mediante el complemento a 2 del operando destino. Deja el resultado en el operando destino. El operando puede ser de tipo byte o palabra. Ejemplo: – NEG AL ; Si AL = F2h antes de la operación, después AL = 0Eh
  • 11. Instrucción para leer caracteres • Código para leer carácter con eco: mov ah,01h ;petición de leer carácter int 21h ;llama al DOS la función 01h indica la operación para leer un carácter desde el teclado, carácter con eco quiere decir: que cuando pulsas un carácter se imprime en la pantalla enseguida. • Código para leer carácter sin eco: mov ah,07h ;petición de leer carácter int 21h ;llama al DOS la función 07h o también 08h ambas indica la operación para leer un carácter desde el teclado, carácter sin eco quiere decir: que cuando pulsas un carácter no es impreso el carácter pulsado hasta que se manda imprimir con otra función
  • 13. Técnicas de Codificación • Bucles: Inicialización de un registro (a modo de contador) al número de vueltas del bucle.
  • 14. • Saltos Condicionales: Instrucción de comparación (If). Evaluar condición y si se cumple saltar a la etiqueta prefijada. • Ejemplo:
  • 15. • MACROS: Declaración: <nombre de la macro> MACRO <instrucciones de la macro> ENDM Llamada: <nombre de la macro> • Ejemplo:
  • 16. • Subrutinas: Declaración: <nombre la de subrutina> PROC <instrucciones de la subrutina> RET <nombre de la subrutina> ENDP Llamada: CALL <nombre de la subrutina>
  • 17. Procedimientos Los procedimientos son un conjunto de instrucciones que realizan una tarea -y preferentemente solo una- que se ha de utilizar en más de una ocasión pero se declara una sola vez en el código fuente. Un procedimiento puede llamar a otro, y este a su vez a otro y así sucesivamente El procedimiento se guarda en memoria cuando se ensambla y ejecuta y entonces puede ser llamado tantas veces como sea necesario, ahorrando espacio y facilitando el desarrollo de software gracias a que permite organizarlo.