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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Dudas sobre convenciones y particularidades...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dudas sobre convenciones y particularidades...  (Leído 4,087 veces)
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Dudas sobre convenciones y particularidades...
« en: 26 Agosto 2010, 02:30 am »

¡Buenas a todos!

Viendo que mi anterior post parece ser demasiado general, empiezo por dudas concretas.

En el libro que estoy siguiendo en este momento no comentan nada sobre la devolucion de valores (de momento) por funciones, pero he visto que la mayor parte (sino, todas) de las funciones que se utilizan, devuelven los valores en registros. Entonces planteo lo siguiente. A mi me parece "demasiado trabajo", estar pusheando o popeando registros en la pila, porque determinada funcion requiera un registro concreto para devolver un valor, o porque otra funcion pueda cambiar de forma inesperada los valores de determinados registros. Me parece mucho mas comodo dejar al usuario de la funcion escoger el registro o posicion de memoria en el que quiere guardar dicho valor. Para ello devuelvo los valores en la pila, y el usuario decide cual es el registro que mas le conviene utilizar segun sus necesidades. Para ello hay que desplazar el punetro de pila antes de pushear los parametros, para poder guardar el valor (los valores) devuelto(s). Establecer un estandar sobre esto a estas alturas en la que existe tanto codigo ensamblador para muy diversas situaciones creo que seria absurdo, asi que supondre que no esxiste una opinion unificada. Pero lo que si querria saber, aun cuando haya poca portabilidad por parte del codigo que escriba, es si actualmente existe algun tipo de "convencion" generalizada sobre la devolucion de valores por parte de las funciones.

Otra cosa que me gustaria saber, es cuales de las palabras reservadas en ensamblador son especificas de MASM32, ya que aunque el codigo de por si sea muy poco portable, me gustaria poder ensamblar el codigo creado en la mayor parte de ensambladores posibles...

Esperando que mis dudas aporten aclaraciones a mas gente a parte de a mi, me despido con...

¡Un saludo!


En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Dudas sobre convenciones y particularidades...
« Respuesta #1 en: 26 Agosto 2010, 11:03 am »

Se devuelve un solo valor y en EAX, este puede ser un puntero a una estructura si necesitas mas, asi de simple y concreto.

Busca el manual de MASM.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Dudas sobre convenciones y particularidades...
« Respuesta #2 en: 27 Agosto 2010, 02:26 am »

Lee sobre convenciones de llamadas o "calling conventions". El chiste en ensamblador es que vos te manejas como queres con las convenciones de llamadas, osea que vos si queres podes crear tu propia manera de manejar ya sea el paso de parametros, el valor de retorno, si restaura la pila la funcion o el codigo que la llamo, etc.
Si queres "portabilidad" palabra que con ensamblador suena un poco absurdo, podes usar la convencion de llamada mas popular o mas utilizada como cdecl o stdcall... igual vos fijate cuando programas una funcion tenes que tener el contexto donde se utilice esa funcion nunca vas a lograr 100 % de compatibilidad, por ejemplo si se utiliza tu funcion en un programa en C hay registros como edi y esi que tenes que tener en cuenta que no los podes usar y listo tenes que agregar al prologo y epilogo los push y pop para dejarlos como estan si los vas a usar...
en fin tenes q tener en cuenta varias cosas no vas a lograr portabilidad .. pero wee es ensamblador que queres.. jaja
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Dudas sobre convenciones y particularidades...
« Respuesta #3 en: 30 Agosto 2010, 01:30 am »

¡Muchas gracias por todo!

¡Un saludo!
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Placa tp-link con particularidades
Materiales y equipos
Pepediaz 1 2,719 Último mensaje 8 Abril 2013, 02:03 am
por P4nd3m0n1um
[APORTE] Buenas prácticas y convenciones en Java - Parte uno - Convenciones
Java
3n31ch 8 24,029 Último mensaje 22 Agosto 2015, 21:56 pm
por BlackZeroX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines