SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Contenido
1. Definición
2. Historia
3. Componentes
4. Software Utilizado
5. Registros
6. Instrucciones
7. Ejemplos
1. definicion
El término ensamblador (del inglés assembler) se refiere a un tipo de
programa informático que se encarga de traducir un fichero fuente
escrito en un lenguaje ensamblador, a un fichero objeto que contiene
código máquina, ejecutable directamente por la máquina para la que se
ha generado.
El propósito para el que se crearon este tipo de aplicaciones es la de
facilitar la escritura de programas, ya que escribir directamente en
código binario, que es el único código entendible por la computadora,
es en la práctica imposible.
La evolución de los lenguajes de programación a partir del lenguaje
ensamblador originó también la evolución de este programa
ensamblador hacia lo que se conoce como programa compilador.
3
2. historia
El primer compilador fue escrito por Grace Hopper, en 1952 para el
lenguaje de programación A-0.
En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje
algebraico.
En 1954 se empezó a desarrollar un lenguaje que permitía escribir
fórmulas matemáticas de manera traducible por un ordenador; le
llamaron FORTRAN (FORmulae TRANslator).
Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso
de la computadora IBM modelo 704.
4
2. historia
El primer compilador de FORTRAN tardó 18 años-
persona en realizarse y era muy sencillo
5
2. historia
El primer compilador autocontenido, es decir, capaz de compilar su
propio código fuente fue el creado para Lisp por Hart y Levin en el MIT
en 1962. Desde 1970 se ha convertido en una práctica común escribir el
compilador en el mismo lenguaje que este compila, aunque Pascal y C
han sido alternativas muy usadas.
Crear un compilador autocontenido genera un problema llamado
bootstrapping, es decir el primer compilador creado para un lenguaje
tiene que o bien ser compilado por un compilador escrito en otro
lenguaje o bien compilado al ejecutar el compilador en un intérprete.
6
3. componentes
Los elementos básicos del lenguaje ensamblador son:
 Etiquetas
 Instrucciones
 Operandos
 Directivas
 Comentarios
7
etiquetas
Una etiqueta es una palabra utilizada para designar alguna línea o secci
ón del programa, se pueden utilizar para saltar de una parte hacia esa
etiqueta.
Es importante que las etiquetas empiecen con una letra o con un guión
bajo "_". La longitud de una etiqueta puede ser de hasta 32 caracteres y
como ya se dijo se deben escribir en la primer columna.
8
instrucciones
Las instrucciones son las operaciones
que realiza el microcontrolador, así que esta
s ya están definidas para cada familia de
PIC.
9
Microcontrolador PIC
Los PIC son una familia de microcontroladores tipo
RISC fabricados por Microchip Technology Inc. y
derivados del PIC1650, originalmente desarrollado
por la división de microelectrónica de General
Instrument.
El nombre actual no es un acrónimo. En realidad, el
nombre completo es PICmicro, aunque
generalmente se utiliza como Peripheral Interface
Controller (controlador de interfaz periférico)*.
10
Microcontrolador PIC
11
operandos
Son los elementos que emplea la instru
cción que se está ejecutando. Usualmen
te los operandos son los registros, las
variables o las constantes.
12
directivas
Las directivas son similares a las instrucciones, pero a diferencia de
estas las directivas
son propias del lenguaje ensamblador e independientes del microcontr
olador que se utilice.
Las directivas representan algunas características del lenguaje ensambl
ador, se utilizan
para especificar el procesador empleado así como la configuración de e
ste, también para asignar locaciones de memoria.
13
comentarios
Los comentarios son las palabras, frases y oracione
s que se pueden escribir en el código para hacer el
programa más claro y legible, o solo para recordar.
Los comentarios se pueden escribir en cualquier
parte del código pero siempre deben
empezar con punto y coma ";".
14
4. Software editores
Un programador escribe el programa origen en
lenguaje ensamblador utilizando cualquier editor de
textos o procesador de palabras que sea capaz de
producir una salida de texto en ASCII. Una vez que el
código origen ha sido escrito, el archivo origen es
ensamblado mediante su procesamiento a través de
algún ensamblador.
15
4. Software reglas de
programación
Para la programación se utiliza una cierta tabulación que se
debe respetar, además utilizar
una tabulación adecuada hace los programas más claros y le
gibles.
Las etiquetas
se escriben en la primer columna de cualquier línea, las inst
rucciones y directivas en la
segunda y por último, en la tercer columna, los operandos.
Los comentarios
se pueden escribir en cualquier parte del programa.
16
4. Software
ENS2001
17
4. Software
MASM
18
4. Software
TAST
19
Ejemplo
Hola
alumno
4. Software MASM Y TLINK
El Turbo Assembler (TASM) un paquete
ensamblador principalmente destinado a la
plataforma del IBM PC y sus compatibles.
El enlazador o linkador LINK permite
convertir el código objeto generado por
TASM en archivo ejecutable de tipo EXE*.
*empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que
invoca automáticamente al linkador.
21
5. registros
Se trata de una serie de "variables", que
contienen información que puede ser
cambiada.
22
REGISTROS IP Y CS
El registro CS es una variable de un tamaño de
dos bytes. Contiene el Segmento actual en que
se encuentra el programa.
El registro IP es la variable, de dos bytes
también, que contiene el Offset actual. Esto
significa, el ordenador va interpretando las
secuencias de bytes, pero necesita "algo" que le
indique donde tiene que leer.
23
COMBINACION DE REGISTROS
IP Y CS
La combinación CS:IP contiene la dirección en la que el
ordenador está interpretando información en el
momento. Indica la dirección de la próxima instrucción que
se va a ejecutar.
El registro DS y el registro ES también sirven para guardar
direcciones de Segmentos, y también son variables de dos
bytes, pueden ser utilizados para por ejemplo mover
datos en memoria, imprimir cadenas, etc. Son
"punteros", que apuntan a cierta zona de memoria. El
registro SS apunta a la pila, y el SP es el que contiene el
offset de la pila.
24
REGISTROS AX,BX,CX,DX
Todos ocupan dos bytes, y se pueden utilizar divididos en dos partes con un byte de longitud.
◦ AX se divide en AH y AL
◦ BX en BH y BL
◦ CX en CH y CL
◦ DX en DH y DL.
AX
|-----------------------------|
11010110 10111000
AH AL
La 'H' se refiere a High en inglés, alto (de mayor valor), y la 'L' a Low (de menor valor).
25
REGISTROS
AX y BX
AX se suele utilizar como propósito general, indica función a las
interrupciones, etc., y es el más flexible, ya que ser el único que
permita multiplicaciones y divisiones. Se denomina a veces
acumulador. Realiza operaciones como entrada/salida de datos,
ultiplicación, división, operaciones con decimales codificados en binario,
etc.
BX nos servirá mucho como "handler", para abrir/cerrar archivos,
etc, y como registro de propósito general al igual que AX, CX y DX.
Funciona como registro Base, en algunas ocasiones, para
referenciar direcciones de memoria En estos casos mantiene la
dirección de base, comienzo de tabla o matrices, en la que la dirección
se determina usando valores de desplaza- miento.
26
REGISTROS
cX y dX
CX se suele usar como contador. Es decir, cuenta el número de bits o
palabras en una determinada cadena de datos durante los
operaciones con cadenas.
◦ Ej: Si se va a mover de un área de memoria a otra n palabras, CX mantiene inicialmente el
número total de palabras a desplazar llevando la cuenta de la palabra o byte que va siendo
trasladada.
DX suele ser el puntero, señalando haciendo el papel de Offset
lugares en memoria. Se usa en la multiplicación para mantener
parte del producto de 32 bits o en las divisiones para antener el
valor del resto. Y en operaciones de Entrada/Salida de datos para
especificar la dirección del puerto de E/S usado.
27
6. instrucciones
Se pueden clasificar en los siguientes grupos:
De Transferencia.
Aritméticos.
 Lógicos.
 De salto.
28
INSTRUCCIONES DE
TRANSFERENCIA
Este grupo de instrucciones se utiliza para efectuar la
transferencia de datos, copian datos de un origen a un destino
sin modificar dicho origen. Pueden transferir palabras,
fracciones de palabras, o bloques completos.
29
INSTRUCCIONES DE
TRANSFERENCIA push
PUSH: Guarda en la cima de la pila 16 bits, decrementando el puntero de
la pila en dos bytes, hay que tener en cuenta que no se puede guardar en
la pila el contenido del registro CS o el contenido del registro IP ya que
estos deben ser modificados por las instrucciones de salto.
SINTAXIS:
PUSH: reg16
PUSH: mem16
Ejemplo: PUSH: CX
PUSH: TABLA (SI)
30
INSTRUCCIONES DE
TRANSFERENCIA pop
POP: Extrae de la cima de la pila el valor de 16 bits almacenado,
depositándolo en la dirección de memoria indicada y a diferencia
del PUSH incrementa el puntero de la pila en dos bytes,
igualmente se debe tener en cuenta que no se debe rescatar
valores para los registros CS e IP ya que estos deben ser
modificados por las instrucciones de salto.
SINTAXIS:
PUSH: reg16
PUSH: mem16
Ejemplo: POP: DX
POP: [BX]
31
INSTRUCCIONES DE
TRANSFERENCIA xchg
XCHG: (Intercambio): Consta de dos operandos e intercambia
sus valores por lo que modifica los operandos a no ser que
tengan idéntico valor, cabe recalcar que no se permite que los
operandos estén los dos en la misma memoria.
SINTAXIS: XCHG destino, origen
Indicadores:
Ejemplo: XCHGN: bl, ch
XCHGN: mem pal, bx
32
INSTRUCCIONES
aritméticas
Son efectuada por la
Unidad Aritmeto – logica (ALU) y suelen
cambian los flags o indicadores de
condición.
33
INSTRUCCIONES aritméticas
inc
INC: Incrementa. Suma 1 al contenido de un registro o de una posición de
memoria, dicho contenido puede ser byte o palabra.
SINTAXIS: INC destino
Indicadores: OF DF IF TF SF ZF AF PF CF
Ejemplo: INC AX ; AX = AX+1
INC DL ; DL = DL +1
INC WORD PTR ES: [DI+4]; Increm. Palabra contenida
; es ES: DI+4
34
INSTRUCCIONES aritméticas
dec
DEC: Decrementa. resta 1 al contenido de un registro o de una posición
de memoria, dicho contenido puede ser byte o palabra.
SINTAXIS: DEC destino
Indicadores: OF DF IF TF SF ZF AF PF CF
Ejemplo: DEC AX ; AX = AX+1
DEC DL ; DL = DL-1
DEC WORD PTR ES: [DI+4] ; Decrem. Byte contenido
;en ES: DI+4
35
INSTRUCCIONES aritméticas
sub
SUB: Resta el operando destino al operando origen, colocando
dicho resultado en el operando destino, los operandos pueden
tener signo siempre y cuando sean del mismo tipo byte o palabra.
SINTAXIS:
SUB op_destino, op_fuente ; sintaxis básica.
Ejemplo: SUB al, bl
SUB dx,dx
36
INSTRUCCIONES LOGICAS
En este grupo se incluyen las instrucciones de conjunción,
disyunción, exclusiva y negación, la aplicación practica no es de
siempre sin embargo suelen estar presentes en la mayoría de
los programas.
37
INSTRUCCIONES LOGICAS
and
AND: Realiza una operación de “Y” lógico entre el operando origen y el
operando destino quedando el resultado en el operando destino.
SINTAXIS:
AND destino, origen
Ejemplo: AND AX,BX ; AX = AX AND BX
AND SI,ES:[DI] ; SI=SI AND ES:[DI]
AND BX,0A34H ; BX=BX AND 0A34H
AND ES:[BX], CX ; ES: [BX] = ES: [BX] AND CX
AND BYTE PTR [SI+4],5 ; [SI+4] = [SI+4] AND 5
38
INSTRUCCIONES LOGICAS
or
OR: Realiza una operación de “O” lógico a nivel de bits entre los dos operandos ,
almacenándose después dicho resultado en el operando destino.
SINTAXIS:
OR destino, origen
Ejemplo: OR AL,BL ; AL = AL OR BL
OR DI:[BX] ; DI=DI OR [BX]
OR CL,34 ; CL=CL OR 34
OR [DI], BX ; [DI] = [DI] OR BX
OR BYTE PTR [DI],8 ; [DI] = [DI] OR 8
39
INSTRUCCIONES LOGICAS
xor
XOR: Realiza una operación de “O” exclusivo lógico a nivel de bits entre los dos
operandos , almacenándose después dicho resultado en el operando destino.
SINTAXIS:
XOR destino, origen
Ejemplo: XOR CX,BX ; CX = CX XOR BX
XOR DI,ES:[SI] ; DI= DI XOR ES:[SI]
XOR AX,4500H ; AX=AX XOR 4500H
XOR [BX], AX ; [BX] = [BX] XOR AX
XOR BYTE PTR [SI+BX],50 ; [SI+BX] = [SI+BX] XOR 50
40
INSTRUCCIONES de salto
Sirven para que el procesador, en lugar de
ejecutar la siguiente instrucción , pase a
ejecutar otra en lugar que se denomina
“destino de salto”.
41
INSTRUCCIONES de salto
jmp
JMP: Realiza un salto de ejecución incondicional hacia la dirección o etiqueta especifica.
SINTAXIS:
JMP dirección o JMP SHORT dirección
Ejemplos: JMP 100H ; Salta a CX:100h
JMP 55AAH:100H ; Salto lejano a otro segmento
JMP WORD PTR [BX] ; Salto a la dirección contenida en
; la dirección de memoria especificada
; por BX (salto indirecto)
JMP REPITE ; Salto a la etiqueta REPITE
42
INSTRUCCIONES de salto
call
CALL: El efecto de esta instrucción es similiar a la de salto
incondicional con la diferencia de que el procesador guarda
ciertos datos en lugares para facilitar el retorno una vez
terminada la ejecución de la subrutina.
SINTAXIS:
CALL destino
43
LAB1 50%>.: Tarea 1 - GUIA DE EJERCICIOS 02-Junio
Investigar que otras instrucciones hay disponibles para ensamblador y
desarrolle 6 ejemplos donde se utilicen estas.
Tarea:
1. Traer los archivos de código fuente escritos en su cuaderno
2. Presentar los archivos en digital listo para ser compilador en una
memoria usb
3. El docente seleccionara uno para que lo explique a sus compañeros
4. Individual

Weitere ähnliche Inhalte

Was ist angesagt?

Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda HashBlanca Parra
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientosaaronastorga4
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamientoLalo Chooper
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoJosé Antonio Sandoval Acosta
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPUEduardo Suarez
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Equivalencia de automatas finitos determinista
Equivalencia de automatas finitos deterministaEquivalencia de automatas finitos determinista
Equivalencia de automatas finitos deterministaAtahualpa Acosta
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 

Was ist angesagt? (20)

Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Método de Búsqueda Hash
Método de Búsqueda HashMétodo de Búsqueda Hash
Método de Búsqueda Hash
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
assembler
assembler assembler
assembler
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Código intermedio
Código intermedioCódigo intermedio
Código intermedio
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
Equivalencia de automatas finitos determinista
Equivalencia de automatas finitos deterministaEquivalencia de automatas finitos determinista
Equivalencia de automatas finitos determinista
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 

Ähnlich wie Clase10 2-lenguaje ensamblador

Ähnlich wie Clase10 2-lenguaje ensamblador (20)

Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07Programacion Lenguaje Assembler 25 10 07
Programacion Lenguaje Assembler 25 10 07
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Unidad I.pdf
Unidad I.pdfUnidad I.pdf
Unidad I.pdf
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Mipag web
Mipag webMipag web
Mipag web
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
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
 
Evolución de la programación
Evolución de la programaciónEvolución de la programación
Evolución de la programación
 
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
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
LENGUAJE en C
LENGUAJE en CLENGUAJE en C
LENGUAJE en C
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Data segment
Data segmentData segment
Data segment
 
Arquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzadosArquitecturas de ordenadores y compiladores cruzados
Arquitecturas de ordenadores y compiladores cruzados
 

Mehr von Infomania pro

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
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semanticoInfomania pro
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbInfomania pro
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devInfomania pro
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS Infomania pro
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppInfomania pro
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexicoInfomania pro
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoInfomania pro
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de CompiladoresInfomania pro
 
Compiladores clase02
Compiladores clase02Compiladores clase02
Compiladores clase02Infomania pro
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosInfomania pro
 
Mapa mental y esquemas
Mapa mental y esquemasMapa mental y esquemas
Mapa mental y esquemasInfomania pro
 
Clase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesClase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesInfomania pro
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretesInfomania pro
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓNInfomania pro
 

Mehr von Infomania pro (19)

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
 
Manual80x86
Manual80x86Manual80x86
Manual80x86
 
Unidad4 analisis-semantico
Unidad4 analisis-semanticoUnidad4 analisis-semantico
Unidad4 analisis-semantico
 
Clase09 guia1-as
Clase09 guia1-asClase09 guia1-as
Clase09 guia1-as
 
Clase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugbClase8 3 ejemplo analisis lexico-sintactico miniugb
Clase8 3 ejemplo analisis lexico-sintactico miniugb
 
Clase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini devClase8 2-explicacion analizador lexico-sintactico mini dev
Clase8 2-explicacion analizador lexico-sintactico mini dev
 
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
ANALIZADOR SINTACTICO: INTRODUCION, CONCEPTOS, CARACTERISTICAS
 
Clase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cppClase6 ejemplo analisis lexico dev cpp
Clase6 ejemplo analisis lexico dev cpp
 
Clase analisis lexico
Clase analisis lexicoClase analisis lexico
Clase analisis lexico
 
Clase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexicoClase6 conceptos del analisis lexico
Clase6 conceptos del analisis lexico
 
Test1 de Compiladores
Test1 de CompiladoresTest1 de Compiladores
Test1 de Compiladores
 
Compiladores clase02
Compiladores clase02Compiladores clase02
Compiladores clase02
 
Tabla simbolos
Tabla simbolosTabla simbolos
Tabla simbolos
 
TABLA DE SÍMBOLOS
TABLA DE SÍMBOLOSTABLA DE SÍMBOLOS
TABLA DE SÍMBOLOS
 
Clase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptosClase3 guia1-introduccion-compiladores-conceptos
Clase3 guia1-introduccion-compiladores-conceptos
 
Mapa mental y esquemas
Mapa mental y esquemasMapa mental y esquemas
Mapa mental y esquemas
 
Clase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretesClase2 introduccion-compiladores-interpretes
Clase2 introduccion-compiladores-interpretes
 
Clase2 clasificacion de interpretes
Clase2 clasificacion de interpretesClase2 clasificacion de interpretes
Clase2 clasificacion de interpretes
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓN
 

Kürzlich hochgeladen

actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 

Kürzlich hochgeladen (20)

actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 

Clase10 2-lenguaje ensamblador

  • 1.
  • 2. Contenido 1. Definición 2. Historia 3. Componentes 4. Software Utilizado 5. Registros 6. Instrucciones 7. Ejemplos
  • 3. 1. definicion El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador. 3
  • 4. 2. historia El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programación A-0. En 1950 John Backus dirigió una investigación en IBM sobre un lenguaje algebraico. En 1954 se empezó a desarrollar un lenguaje que permitía escribir fórmulas matemáticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Fue el primer lenguaje de alto nivel y se introdujo en 1957 para el uso de la computadora IBM modelo 704. 4
  • 5. 2. historia El primer compilador de FORTRAN tardó 18 años- persona en realizarse y era muy sencillo 5
  • 6. 2. historia El primer compilador autocontenido, es decir, capaz de compilar su propio código fuente fue el creado para Lisp por Hart y Levin en el MIT en 1962. Desde 1970 se ha convertido en una práctica común escribir el compilador en el mismo lenguaje que este compila, aunque Pascal y C han sido alternativas muy usadas. Crear un compilador autocontenido genera un problema llamado bootstrapping, es decir el primer compilador creado para un lenguaje tiene que o bien ser compilado por un compilador escrito en otro lenguaje o bien compilado al ejecutar el compilador en un intérprete. 6
  • 7. 3. componentes Los elementos básicos del lenguaje ensamblador son:  Etiquetas  Instrucciones  Operandos  Directivas  Comentarios 7
  • 8. etiquetas Una etiqueta es una palabra utilizada para designar alguna línea o secci ón del programa, se pueden utilizar para saltar de una parte hacia esa etiqueta. Es importante que las etiquetas empiecen con una letra o con un guión bajo "_". La longitud de una etiqueta puede ser de hasta 32 caracteres y como ya se dijo se deben escribir en la primer columna. 8
  • 9. instrucciones Las instrucciones son las operaciones que realiza el microcontrolador, así que esta s ya están definidas para cada familia de PIC. 9
  • 10. Microcontrolador PIC Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (controlador de interfaz periférico)*. 10
  • 12. operandos Son los elementos que emplea la instru cción que se está ejecutando. Usualmen te los operandos son los registros, las variables o las constantes. 12
  • 13. directivas Las directivas son similares a las instrucciones, pero a diferencia de estas las directivas son propias del lenguaje ensamblador e independientes del microcontr olador que se utilice. Las directivas representan algunas características del lenguaje ensambl ador, se utilizan para especificar el procesador empleado así como la configuración de e ste, también para asignar locaciones de memoria. 13
  • 14. comentarios Los comentarios son las palabras, frases y oracione s que se pueden escribir en el código para hacer el programa más claro y legible, o solo para recordar. Los comentarios se pueden escribir en cualquier parte del código pero siempre deben empezar con punto y coma ";". 14
  • 15. 4. Software editores Un programador escribe el programa origen en lenguaje ensamblador utilizando cualquier editor de textos o procesador de palabras que sea capaz de producir una salida de texto en ASCII. Una vez que el código origen ha sido escrito, el archivo origen es ensamblado mediante su procesamiento a través de algún ensamblador. 15
  • 16. 4. Software reglas de programación Para la programación se utiliza una cierta tabulación que se debe respetar, además utilizar una tabulación adecuada hace los programas más claros y le gibles. Las etiquetas se escriben en la primer columna de cualquier línea, las inst rucciones y directivas en la segunda y por último, en la tercer columna, los operandos. Los comentarios se pueden escribir en cualquier parte del programa. 16
  • 21. 4. Software MASM Y TLINK El Turbo Assembler (TASM) un paquete ensamblador principalmente destinado a la plataforma del IBM PC y sus compatibles. El enlazador o linkador LINK permite convertir el código objeto generado por TASM en archivo ejecutable de tipo EXE*. *empleando el ML de MASM 6.X se obtiene directamente el fichero EXE ya que invoca automáticamente al linkador. 21
  • 22. 5. registros Se trata de una serie de "variables", que contienen información que puede ser cambiada. 22
  • 23. REGISTROS IP Y CS El registro CS es una variable de un tamaño de dos bytes. Contiene el Segmento actual en que se encuentra el programa. El registro IP es la variable, de dos bytes también, que contiene el Offset actual. Esto significa, el ordenador va interpretando las secuencias de bytes, pero necesita "algo" que le indique donde tiene que leer. 23
  • 24. COMBINACION DE REGISTROS IP Y CS La combinación CS:IP contiene la dirección en la que el ordenador está interpretando información en el momento. Indica la dirección de la próxima instrucción que se va a ejecutar. El registro DS y el registro ES también sirven para guardar direcciones de Segmentos, y también son variables de dos bytes, pueden ser utilizados para por ejemplo mover datos en memoria, imprimir cadenas, etc. Son "punteros", que apuntan a cierta zona de memoria. El registro SS apunta a la pila, y el SP es el que contiene el offset de la pila. 24
  • 25. REGISTROS AX,BX,CX,DX Todos ocupan dos bytes, y se pueden utilizar divididos en dos partes con un byte de longitud. ◦ AX se divide en AH y AL ◦ BX en BH y BL ◦ CX en CH y CL ◦ DX en DH y DL. AX |-----------------------------| 11010110 10111000 AH AL La 'H' se refiere a High en inglés, alto (de mayor valor), y la 'L' a Low (de menor valor). 25
  • 26. REGISTROS AX y BX AX se suele utilizar como propósito general, indica función a las interrupciones, etc., y es el más flexible, ya que ser el único que permita multiplicaciones y divisiones. Se denomina a veces acumulador. Realiza operaciones como entrada/salida de datos, ultiplicación, división, operaciones con decimales codificados en binario, etc. BX nos servirá mucho como "handler", para abrir/cerrar archivos, etc, y como registro de propósito general al igual que AX, CX y DX. Funciona como registro Base, en algunas ocasiones, para referenciar direcciones de memoria En estos casos mantiene la dirección de base, comienzo de tabla o matrices, en la que la dirección se determina usando valores de desplaza- miento. 26
  • 27. REGISTROS cX y dX CX se suele usar como contador. Es decir, cuenta el número de bits o palabras en una determinada cadena de datos durante los operaciones con cadenas. ◦ Ej: Si se va a mover de un área de memoria a otra n palabras, CX mantiene inicialmente el número total de palabras a desplazar llevando la cuenta de la palabra o byte que va siendo trasladada. DX suele ser el puntero, señalando haciendo el papel de Offset lugares en memoria. Se usa en la multiplicación para mantener parte del producto de 32 bits o en las divisiones para antener el valor del resto. Y en operaciones de Entrada/Salida de datos para especificar la dirección del puerto de E/S usado. 27
  • 28. 6. instrucciones Se pueden clasificar en los siguientes grupos: De Transferencia. Aritméticos.  Lógicos.  De salto. 28
  • 29. INSTRUCCIONES DE TRANSFERENCIA Este grupo de instrucciones se utiliza para efectuar la transferencia de datos, copian datos de un origen a un destino sin modificar dicho origen. Pueden transferir palabras, fracciones de palabras, o bloques completos. 29
  • 30. INSTRUCCIONES DE TRANSFERENCIA push PUSH: Guarda en la cima de la pila 16 bits, decrementando el puntero de la pila en dos bytes, hay que tener en cuenta que no se puede guardar en la pila el contenido del registro CS o el contenido del registro IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: PUSH: CX PUSH: TABLA (SI) 30
  • 31. INSTRUCCIONES DE TRANSFERENCIA pop POP: Extrae de la cima de la pila el valor de 16 bits almacenado, depositándolo en la dirección de memoria indicada y a diferencia del PUSH incrementa el puntero de la pila en dos bytes, igualmente se debe tener en cuenta que no se debe rescatar valores para los registros CS e IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: POP: DX POP: [BX] 31
  • 32. INSTRUCCIONES DE TRANSFERENCIA xchg XCHG: (Intercambio): Consta de dos operandos e intercambia sus valores por lo que modifica los operandos a no ser que tengan idéntico valor, cabe recalcar que no se permite que los operandos estén los dos en la misma memoria. SINTAXIS: XCHG destino, origen Indicadores: Ejemplo: XCHGN: bl, ch XCHGN: mem pal, bx 32
  • 33. INSTRUCCIONES aritméticas Son efectuada por la Unidad Aritmeto – logica (ALU) y suelen cambian los flags o indicadores de condición. 33
  • 34. INSTRUCCIONES aritméticas inc INC: Incrementa. Suma 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: INC destino Indicadores: OF DF IF TF SF ZF AF PF CF Ejemplo: INC AX ; AX = AX+1 INC DL ; DL = DL +1 INC WORD PTR ES: [DI+4]; Increm. Palabra contenida ; es ES: DI+4 34
  • 35. INSTRUCCIONES aritméticas dec DEC: Decrementa. resta 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: DEC destino Indicadores: OF DF IF TF SF ZF AF PF CF Ejemplo: DEC AX ; AX = AX+1 DEC DL ; DL = DL-1 DEC WORD PTR ES: [DI+4] ; Decrem. Byte contenido ;en ES: DI+4 35
  • 36. INSTRUCCIONES aritméticas sub SUB: Resta el operando destino al operando origen, colocando dicho resultado en el operando destino, los operandos pueden tener signo siempre y cuando sean del mismo tipo byte o palabra. SINTAXIS: SUB op_destino, op_fuente ; sintaxis básica. Ejemplo: SUB al, bl SUB dx,dx 36
  • 37. INSTRUCCIONES LOGICAS En este grupo se incluyen las instrucciones de conjunción, disyunción, exclusiva y negación, la aplicación practica no es de siempre sin embargo suelen estar presentes en la mayoría de los programas. 37
  • 38. INSTRUCCIONES LOGICAS and AND: Realiza una operación de “Y” lógico entre el operando origen y el operando destino quedando el resultado en el operando destino. SINTAXIS: AND destino, origen Ejemplo: AND AX,BX ; AX = AX AND BX AND SI,ES:[DI] ; SI=SI AND ES:[DI] AND BX,0A34H ; BX=BX AND 0A34H AND ES:[BX], CX ; ES: [BX] = ES: [BX] AND CX AND BYTE PTR [SI+4],5 ; [SI+4] = [SI+4] AND 5 38
  • 39. INSTRUCCIONES LOGICAS or OR: Realiza una operación de “O” lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: OR destino, origen Ejemplo: OR AL,BL ; AL = AL OR BL OR DI:[BX] ; DI=DI OR [BX] OR CL,34 ; CL=CL OR 34 OR [DI], BX ; [DI] = [DI] OR BX OR BYTE PTR [DI],8 ; [DI] = [DI] OR 8 39
  • 40. INSTRUCCIONES LOGICAS xor XOR: Realiza una operación de “O” exclusivo lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: XOR destino, origen Ejemplo: XOR CX,BX ; CX = CX XOR BX XOR DI,ES:[SI] ; DI= DI XOR ES:[SI] XOR AX,4500H ; AX=AX XOR 4500H XOR [BX], AX ; [BX] = [BX] XOR AX XOR BYTE PTR [SI+BX],50 ; [SI+BX] = [SI+BX] XOR 50 40
  • 41. INSTRUCCIONES de salto Sirven para que el procesador, en lugar de ejecutar la siguiente instrucción , pase a ejecutar otra en lugar que se denomina “destino de salto”. 41
  • 42. INSTRUCCIONES de salto jmp JMP: Realiza un salto de ejecución incondicional hacia la dirección o etiqueta especifica. SINTAXIS: JMP dirección o JMP SHORT dirección Ejemplos: JMP 100H ; Salta a CX:100h JMP 55AAH:100H ; Salto lejano a otro segmento JMP WORD PTR [BX] ; Salto a la dirección contenida en ; la dirección de memoria especificada ; por BX (salto indirecto) JMP REPITE ; Salto a la etiqueta REPITE 42
  • 43. INSTRUCCIONES de salto call CALL: El efecto de esta instrucción es similiar a la de salto incondicional con la diferencia de que el procesador guarda ciertos datos en lugares para facilitar el retorno una vez terminada la ejecución de la subrutina. SINTAXIS: CALL destino 43
  • 44. LAB1 50%>.: Tarea 1 - GUIA DE EJERCICIOS 02-Junio Investigar que otras instrucciones hay disponibles para ensamblador y desarrolle 6 ejemplos donde se utilicen estas. Tarea: 1. Traer los archivos de código fuente escritos en su cuaderno 2. Presentar los archivos en digital listo para ser compilador en una memoria usb 3. El docente seleccionara uno para que lo explique a sus compañeros 4. Individual