elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)  (Leído 8,816 veces)
S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« en: 30 Enero 2011, 20:57 pm »

 Hola, que tal. Bueno, yo hace un bueeeen tiempo que vengo ojeando esta comunidad, y intenté registrarme hace tiempo con mi otro mail, y no me llegó nunca el correo de confirmación :P Con mail nuevo, estreno cuenta y dudas =)

 Estoy leyendo muuuchos manuales, tutoriales, FAQs, para esclarecer varios conceptos.
1-) Qué es una pila? No logro entender qué es.
2-) Registros de segmentos. Tengo esta explicacion sacada de una WEB.
Un registro de segmento se utiliza para alinear en un limite de párrafo o dicho de otra forma codifica la dirección de inicio de cada segmento y su dirección en un registro de segmento supone cuatro bits 0 a su derecha.
Un registro de segmento tiene 16 bits de longitud y facilita un área de memoria para direccionamientos conocidos como el segmento actual. Los registros de segmento son:
    * Registro CS
    * Registro DS
    * Registro SS
    * Registro ES
    * Registro FS y GS

En el debug, me aparece por ejemplo
151D:0100, 151D es el segmento y 0100 la dirección? Ahora, no entiendo la explicación, que quiere decir "alinear en un límite de párrafo" y no entiendo la utilidad del registro de segmento :S

3-) Un Desplazamiento es.....? De lo poco que entendí, es que por ejemplo, en 151D:0100 el desplazamiento es 0100 :\ Y seguro debe estar mal.

4-) Qué es un segmento de código?

Espero puedan ayudarme
Un abrazo, atte.


En línea

danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #1 en: 31 Enero 2011, 09:52 am »

Primero, para iniciarte en ensamblador, es necesario olvidarte un poco de lo que es el lenguaje de alto nivel, son muy poco parecidos a estos.

Bueno, pues cosas básicas te explicare:
Para saber que es una pila, leete esto: http://es.wikipedia.org/wiki/Pila_(inform%C3%A1tica)

Y ahora, para que es utilizado esto en asm? pues es utilizado como un elemento más para realizar tareas y tambien sirven para enviar parametros a una subrutina, para salvar las direcciones de las instrucciones realizadas cuando se llama a una subrutina, para salvar los valores de los registros al utilizarlos en una macro... en fin

En ensamblado existen segmentos básicos que se necesitan, entre estos segmentos se encuentra el segmento de codigo o cs, en este segmento es donde se desarrollan las operaciones que se desean realizar, existe el segmento de datos o ds, que sirve para inicializar los datos a utilizar.
Todo programa en ensamblador necesita cuando menos estos dos segmentos.

Ahora en lenguaje ensamblador se utilizan registros para la realizacion de las operaciones, estos registro son los llamados
ax,bx,cx,dx

y bueno, hay mucho que explicar, pero espero haberte respondido a algunas preguntas

aqui te dejo la pagina que utilice cuando curse la materia, esta muy buena para aprender asm desde 0
http://www.itescam.edu.mx/principal/webalumnos/sylabus/asignatura.php?clave_asig=SCM-0420&carrera=ISC0405001&id_d=16


En línea

S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #2 en: 31 Enero 2011, 17:19 pm »

 Dudas aclaradas, gracias. Lo explicaste de forma simple, ya pude entender todo. Pude seguir leyendo sin problemas todo.

Te agradezco la ayuda ENORMEMENTE.

Un abrazo y suerte.

En línea

danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #3 en: 31 Enero 2011, 20:09 pm »

=) de nada, para eso estamos aqui =)
En línea

S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #4 en: 1 Febrero 2011, 18:30 pm »

 Disculpá que moleste denuevo, seguí avanzando en el tutorial, y me EMBOLÉ TOTALMENTE con la "pila", leí en Wikipedia, pero no logro comprender, para que guardo yo algo en la pila? Cuál es la utilidad?

Desde ya, gracias :)
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #5 en: 1 Febrero 2011, 19:23 pm »

La de guardar datos. Con 6 "variables" no tienes para mucho sabes?
Vale, tambien sive para pasarle args a una funcion...
1. Meto en la pila "hola"
2. Meto el EIP (en que parte esta el prog) en la pila
3. Llamo a printf
4. Printf lee "Hola" de la pila
5. Printf la pone en la consola
6. Printf vuelve al main con la direccion metida antes en la pila

Espero que lo entiendas! Recuerda que lo que antes metas después sale. Es como una pila de libros: no puedo cojer el de abajo, solo el de arriba...
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
danielo-

Desconectado Desconectado

Mensajes: 218


:)


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #6 en: 1 Febrero 2011, 21:16 pm »

bueno, la pila es una estructura de datos, que pues, como su nombre lo dice, sirve para "apilar datos", esto es, imaginate que tienes una pila de libros, un libro sobre otro, entonces, cuando quieras tomar un libro de tu pila de libros, no podras tomar el de abajo, sino, el que esta más arriba, en programación, suponiendo que haz metido tres caracteres a una pila, a, b, c cuando quieras acceder a estos datos solo podras tomar la  c, y luego la b, y por último la c.

Una pila tiene muchas utilidades en programación, uno de sus usos más conocidos es en la resolución de expresiones algebraícas que utilizan paréntesis, y bueno, un sinfin de utilidades...

Ahora en asm para que nos sirve?
Pues conforme vayas leyendo te darás cuenta que asm es un lenguaje estructurado y que se ayuda de "subrutinas" o "procedimientos", estos procedimientos pueden estar almacenados en archivos diferentes al codigo que se esta escribiendo, y nos sirve para el desarrollo de tareas específicas, estás tareas muchas veces necesitan de parámetros (son muy parecidos a los parametros de alto nivel) y para enviárselos se hace uso de una pila, porque una pila?
Bueno, porque el procesador que se maneja, en mi caso el intel tiene definida una pila y es la única estructura de datos que se maneja.

...y esto es solo una de las utilidades, realmente el procesador todo el tiempo esta utilizando esta pila, para almacenar direcciones de memoria  sería otro ejemplo de su uso
En línea

S3kh

Desconectado Desconectado

Mensajes: 58


Ver Perfil
Re: Dudas de principiantes, qué es: Pila, registro de segmento y mas :)
« Respuesta #7 en: 4 Febrero 2011, 20:56 pm »

 Ahhh me quedé sin teclado, disculpen que no respondí. Gracias a ambos. Ya estoy haciendo programas simples :)
 Un abrazo! y gracias neuvamente :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Validar IP's que esten dentro de un segmento
PHP
FeArX 2 9,732 Último mensaje 29 Junio 2008, 19:58 pm
por FeArX
Algunas Dudas (Registro y Contacto)
PHP
Adramelech 6 2,489 Último mensaje 24 Agosto 2008, 07:46 am
por Adramelech
Problema con crear una Pila Generica (y otras dudas) (ACTUALIZADO)
Programación C/C++
DarkSorcerer 6 5,760 Último mensaje 28 Septiembre 2013, 23:43 pm
por DarkSorcerer
Dudas sobre registro y la ALU
Foro Libre
Stakewinner00 4 1,699 Último mensaje 22 Junio 2015, 00:33 am
por Stakewinner00
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines