SlideShare une entreprise Scribd logo
1  sur  7
• La pila es un grupo de localidades de memoria que se
reservan con la finalidad de
• proporcionar un espacio para el almacenamiento
temporal de información.
• La pila de los programas es del tipo
• LIFO (Last In First Out, Ultimo en entrar, Primero en
salir).
• Para controlar la pila el microprocesador cuenta con dos
instrucciones básicas:
• Push (Meter) y Pop (sacar).
• El formato de estas instrucciones es el siguiente:
• Push operando
• Pop operando
• Cuando se ejecuta la instrucción Push, el contenido del
operando se almacena en la ultima posición de la pila
• Por ejemplo, si AX se carga previamente con el valor 5,
una instrucción Push AX almacenaría el valor 5 en la
ultima posición de la pila.
• Por otro lado la instrucción Pop saca el último dato
almacenado en la pila y lo coloca en el operando.
• Siguiendo el ejemplo anterior, la instrucción Pop BX
obtendría el número 5 y lo almacenaría en el registro BX.
• El siguiente ejemplo muestra como implementar la
instrucción XCHG por medio de las instrucciones Push y
Pop. Recuerde que la instrucción XCHG intercambia el
contenido de sus dos operandos.
• .COMMENT
• Programa: PushPop.ASM
• Descripción: Este programa demuestra el uso de las instrucciones para el
manejo de la
• pila, implementando la instrucción XCHG con Push y Pop
• *
• .MODEL tiny
• .CODE
• Inicio: ;Punto de entrada al programa
• Mov AX,5 ;AX=5
• Mov BX,10 ;BX=10
• Push AX ;Pila=5
• Mov AX,BX ;AX=10
• Pop BX ;BX=5
• Mov AX,4C00h ;Terminar programa y salir al DOS
• Int 21h ;
• END Inicio
• END
• ;Autor Victor De la Rocha
• ;URL http://www.mis-algoritmos.com
• .model small
• .stack ;Nos sirve como un almacen (segmento de pila)
• .data
• var1 db 5
• var2 db 3
• .code
• .startup
• mov ah, 02h
• mov dl, var1
• add dl, 30h
• int 21h
• mov dl, '+'
• int 21h
• mov dl, var2
• add dl, 30h
• int 21h
• mov dl,'='
• int 21h
• mov ah,0h
• mov al, var1
• add al, var2
• push AX ;Se guarda en la pila para no perder valores
• mov dl,ah
• mov ah, 02h
• add dl, 30h
• int 21h
• pop AX ; Saca todos los valores de la pila
• mov dl,al
• add dl,30h
• mov ah,02h
• int 21h
• .exit
• end
• ; HOLA.ASM
• ; Programa clásico de ejemplo. Despliega una leyenda en pantalla.
• STACK SEGMENT STACK ; Segmento de pila
• DW 64 DUP (?) ; Define espacio en la pila
• STACK ENDS
• DATA SEGMENT ; Segmento de datos
• SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena
• DATA ENDS
• CODE SEGMENT ; Segmento de Codigo
• ASSUME CS:CODE, DS:DATA, SS:STACK
• INICIO: ; Punto de entrada al programa
• MOV AX,DATA ; Pone direccion en AX
• MOV DS,AX ; Pone la direccion en los registros
• MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje
• MOV AH,09H ; Funcion: Visualizar cadena
• INT 21H ; Servicio: Funciones alto nivel DOS
• MOV AH,4CH ; Funcion: Terminar
• INT 21H
• CODE ENDS
• END INICIO ; Marca fin y define INICIO

Contenu connexe

Tendances

Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Historia y evolución de los microprocesadores
Historia y evolución de los microprocesadoresHistoria y evolución de los microprocesadores
Historia y evolución de los microprocesadores
OverMurillo
 

Tendances (20)

Arquitectura del procesador
Arquitectura del procesadorArquitectura del procesador
Arquitectura del procesador
 
Programacion MODULAR
Programacion MODULARProgramacion MODULAR
Programacion MODULAR
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
Comandos debug
Comandos debugComandos debug
Comandos debug
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
Pasos para el análisis de riesgo en proyectos tecnológicos
Pasos para el análisis de riesgo en proyectos tecnológicos Pasos para el análisis de riesgo en proyectos tecnológicos
Pasos para el análisis de riesgo en proyectos tecnológicos
 
Compiladores
CompiladoresCompiladores
Compiladores
 
El barbero-dormilón
El barbero-dormilónEl barbero-dormilón
El barbero-dormilón
 
Programación PIC16F84A
Programación PIC16F84AProgramación PIC16F84A
Programación PIC16F84A
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Ciclos
CiclosCiclos
Ciclos
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
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
 
Registro status PIC16F84A
Registro status PIC16F84ARegistro status PIC16F84A
Registro status PIC16F84A
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Historia y evolución de los microprocesadores
Historia y evolución de los microprocesadoresHistoria y evolución de los microprocesadores
Historia y evolución de los microprocesadores
 
programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84programacion con microcontrolador pic 16f84
programacion con microcontrolador pic 16f84
 
Funciones (subprocesos) en pseint
Funciones (subprocesos) en pseintFunciones (subprocesos) en pseint
Funciones (subprocesos) en pseint
 
PSeInt
PSeIntPSeInt
PSeInt
 
Manual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de alteraManual para usar la tarjeta del fpga cyclone iv de altera
Manual para usar la tarjeta del fpga cyclone iv de altera
 

En vedette

Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
jomapuga
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
Xavi Flores
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
ANDREA
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
Gustavo Davila
 
Sistema hombre maquina
Sistema hombre maquinaSistema hombre maquina
Sistema hombre maquina
car_bet8
 
Aventuras odiseo 4
Aventuras odiseo 4Aventuras odiseo 4
Aventuras odiseo 4
juanjofuro
 

En vedette (20)

Microcontrolador
MicrocontroladorMicrocontrolador
Microcontrolador
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Unidad 2-lenguajes-de-interfaz
Unidad 2-lenguajes-de-interfazUnidad 2-lenguajes-de-interfaz
Unidad 2-lenguajes-de-interfaz
 
Debug utilitario dos
Debug utilitario dosDebug utilitario dos
Debug utilitario dos
 
Ciclos y Condicionales - Iterate
Ciclos y Condicionales - IterateCiclos y Condicionales - Iterate
Ciclos y Condicionales - Iterate
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Dispositivos de Redes
Dispositivos de RedesDispositivos de Redes
Dispositivos de Redes
 
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSIDISPOSITIVOS DE CAPA 2 DEL MODELO OSI
DISPOSITIVOS DE CAPA 2 DEL MODELO OSI
 
Sistema hombre maquina
Sistema hombre maquinaSistema hombre maquina
Sistema hombre maquina
 
Trabajo buscadores miriadax
Trabajo buscadores miriadaxTrabajo buscadores miriadax
Trabajo buscadores miriadax
 
Libro sobre Doble via
Libro sobre Doble viaLibro sobre Doble via
Libro sobre Doble via
 
Aventuras odiseo 4
Aventuras odiseo 4Aventuras odiseo 4
Aventuras odiseo 4
 
Inteligencias multiples
Inteligencias multiplesInteligencias multiples
Inteligencias multiples
 
Evolucion de la web 1.0 a la 5.0
Evolucion de la web 1.0 a la 5.0Evolucion de la web 1.0 a la 5.0
Evolucion de la web 1.0 a la 5.0
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 

Similaire à Manipulacion de la pila!!

Understanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowUnderstanding Advanced Buffer Overflow
Understanding Advanced Buffer Overflow
Conferencias FIST
 

Similaire à Manipulacion de la pila!! (20)

Understanding Advanced Buffer Overflow
Understanding Advanced Buffer OverflowUnderstanding Advanced Buffer Overflow
Understanding Advanced Buffer Overflow
 
Slides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4edSlides taller de exploiting Navaja Negra 4ed
Slides taller de exploiting Navaja Negra 4ed
 
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
Manuel Blanco - GNU/Linux Binary Exploitation I&II [rooted2018]
 
dokumen.tips_arquitectura-de-von-neumann-unidad-de-control-ula-registradores-...
dokumen.tips_arquitectura-de-von-neumann-unidad-de-control-ula-registradores-...dokumen.tips_arquitectura-de-von-neumann-unidad-de-control-ula-registradores-...
dokumen.tips_arquitectura-de-von-neumann-unidad-de-control-ula-registradores-...
 
Programas asm
Programas asmProgramas asm
Programas asm
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
02c.Unidad central de proceso
02c.Unidad central de proceso02c.Unidad central de proceso
02c.Unidad central de proceso
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
 
Colas Sesion once definicion, ejercicios.
Colas Sesion once definicion, ejercicios.Colas Sesion once definicion, ejercicios.
Colas Sesion once definicion, ejercicios.
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcomputadoras al detalle
Microcomputadoras al detalleMicrocomputadoras al detalle
Microcomputadoras al detalle
 
Microcontroladores: Ejemplo de un computador real: AtmegaX8PA
Microcontroladores: Ejemplo de un computador real: AtmegaX8PAMicrocontroladores: Ejemplo de un computador real: AtmegaX8PA
Microcontroladores: Ejemplo de un computador real: AtmegaX8PA
 
Ejercicios Ordenador_zuz (1).pdf
Ejercicios Ordenador_zuz (1).pdfEjercicios Ordenador_zuz (1).pdf
Ejercicios Ordenador_zuz (1).pdf
 
Arranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con AssemblerArranque de Sistema Operativo con Assembler
Arranque de Sistema Operativo con Assembler
 
Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]
Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]
Eduardo Blázquez - Técnicas de Ingeniería Inversa I & II [rooted2018]
 
Curso c++
Curso c++Curso c++
Curso c++
 
Introducción al exploiting win32
Introducción al exploiting win32Introducción al exploiting win32
Introducción al exploiting win32
 
Leccion 3 y4_p1
Leccion 3 y4_p1Leccion 3 y4_p1
Leccion 3 y4_p1
 
Operaciones de pila
Operaciones de pilaOperaciones de pila
Operaciones de pila
 

Plus de romo91 (6)

Modos de direccionamiento!!
Modos de direccionamiento!!Modos de direccionamiento!!
Modos de direccionamiento!!
 
Modos de direccionamiento!!
Modos de direccionamiento!!Modos de direccionamiento!!
Modos de direccionamiento!!
 
Registros del cpu!
Registros del cpu!Registros del cpu!
Registros del cpu!
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPU
 
Direccionamiento directo
Direccionamiento directoDireccionamiento directo
Direccionamiento directo
 
El procesador y sus registros internos
El procesador y sus registros internosEl procesador y sus registros internos
El procesador y sus registros internos
 

Manipulacion de la pila!!

  • 1.
  • 2. • La pila es un grupo de localidades de memoria que se reservan con la finalidad de • proporcionar un espacio para el almacenamiento temporal de información. • La pila de los programas es del tipo • LIFO (Last In First Out, Ultimo en entrar, Primero en salir).
  • 3. • Para controlar la pila el microprocesador cuenta con dos instrucciones básicas: • Push (Meter) y Pop (sacar). • El formato de estas instrucciones es el siguiente: • Push operando • Pop operando • Cuando se ejecuta la instrucción Push, el contenido del operando se almacena en la ultima posición de la pila
  • 4. • Por ejemplo, si AX se carga previamente con el valor 5, una instrucción Push AX almacenaría el valor 5 en la ultima posición de la pila. • Por otro lado la instrucción Pop saca el último dato almacenado en la pila y lo coloca en el operando. • Siguiendo el ejemplo anterior, la instrucción Pop BX obtendría el número 5 y lo almacenaría en el registro BX. • El siguiente ejemplo muestra como implementar la instrucción XCHG por medio de las instrucciones Push y Pop. Recuerde que la instrucción XCHG intercambia el contenido de sus dos operandos.
  • 5. • .COMMENT • Programa: PushPop.ASM • Descripción: Este programa demuestra el uso de las instrucciones para el manejo de la • pila, implementando la instrucción XCHG con Push y Pop • * • .MODEL tiny • .CODE • Inicio: ;Punto de entrada al programa • Mov AX,5 ;AX=5 • Mov BX,10 ;BX=10 • Push AX ;Pila=5 • Mov AX,BX ;AX=10 • Pop BX ;BX=5 • Mov AX,4C00h ;Terminar programa y salir al DOS • Int 21h ; • END Inicio • END
  • 6. • ;Autor Victor De la Rocha • ;URL http://www.mis-algoritmos.com • .model small • .stack ;Nos sirve como un almacen (segmento de pila) • .data • var1 db 5 • var2 db 3 • .code • .startup • mov ah, 02h • mov dl, var1 • add dl, 30h • int 21h • mov dl, '+' • int 21h • mov dl, var2 • add dl, 30h • int 21h • mov dl,'=' • int 21h • mov ah,0h • mov al, var1 • add al, var2 • push AX ;Se guarda en la pila para no perder valores • mov dl,ah • mov ah, 02h • add dl, 30h • int 21h • pop AX ; Saca todos los valores de la pila • mov dl,al • add dl,30h • mov ah,02h • int 21h • .exit • end
  • 7. • ; HOLA.ASM • ; Programa clásico de ejemplo. Despliega una leyenda en pantalla. • STACK SEGMENT STACK ; Segmento de pila • DW 64 DUP (?) ; Define espacio en la pila • STACK ENDS • DATA SEGMENT ; Segmento de datos • SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena • DATA ENDS • CODE SEGMENT ; Segmento de Codigo • ASSUME CS:CODE, DS:DATA, SS:STACK • INICIO: ; Punto de entrada al programa • MOV AX,DATA ; Pone direccion en AX • MOV DS,AX ; Pone la direccion en los registros • MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje • MOV AH,09H ; Funcion: Visualizar cadena • INT 21H ; Servicio: Funciones alto nivel DOS • MOV AH,4CH ; Funcion: Terminar • INT 21H • CODE ENDS • END INICIO ; Marca fin y define INICIO