Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: x64core en 20 Febrero 2012, 07:36 am



Título: Rapidez entre distincia de los Calls?
Publicado por: x64core en 20 Febrero 2012, 07:36 am
Hola a todos, bueno tengo una pequeña duda que no es nada sobre codigos ni algo por el estilo
quiza es mas teorico o quiza no :P bueno estaba estudiando los Calls y se me vino a la mente
si los "saltos" de los calls afectan en algo la velocidad con que se ejecuta un codigo...?

digamos que estoy en la direccion 0000 0010 y hay un call a la direccion FFFF 0090 por decir algo, hay alguna diferencia en velocidad si cambia esa direccion de destino? osea que entre la direccion desde donde se "salta" a la direccion a "saltar" afecta
la distancia entre ellas en velocidad?
bueno quiza esto puede o no afectar pero es simple dudilla jeje
Gracias de ante mano!  :-*


Título: Re: Rapidez entre distincia de los Calls?
Publicado por: MCKSys Argentina en 23 Febrero 2012, 13:46 pm
Respuesta: http://en.wikipedia.org/wiki/CAS_latency (http://en.wikipedia.org/wiki/CAS_latency)

Saludos!


Título: Re: Rapidez entre distincia de los Calls?
Publicado por: x64core en 23 Febrero 2012, 18:14 pm
no entendi  :xD pero me imagino que es tan poca la diferencia que ní se nota :P Gracias


Título: Re: Rapidez entre distincia de los Calls?
Publicado por: Caster en 23 Febrero 2012, 18:19 pm
No tengo nada que ver el link que te dejaron antes quizás lo entiendas mejor traducido. http://es.wikipedia.org/wiki/Latencia_CAS


Título: Re: Rapidez entre distincia de los Calls?
Publicado por: MCKSys Argentina en 23 Febrero 2012, 18:36 pm
Si, pero en ingles esta la tablita "Memory timing examples". En esa tabla, las importantes en esta pregunta son las 3 ultimas columnas.

Donde muestra la diferencia de tiempo al acceder a posiciones mas "lejanas" de la RAM...


Título: Re: Rapidez entre distincia de los Calls?
Publicado por: jacosito en 6 Abril 2012, 21:57 pm
Hola a todos, bueno tengo una pequeña duda que no es nada sobre codigos ni algo por el estilo
quiza es mas teorico o quiza no :P bueno estaba estudiando los Calls y se me vino a la mente
si los "saltos" de los calls afectan en algo la velocidad con que se ejecuta un codigo...?

digamos que estoy en la direccion 0000 0010 y hay un call a la direccion FFFF 0090 por decir algo, hay alguna diferencia en velocidad si cambia esa direccion de destino? osea que entre la direccion desde donde se "salta" a la direccion a "saltar" afecta
la distancia entre ellas en velocidad?
bueno quiza esto puede o no afectar pero es simple dudilla jeje
Gracias de ante mano!  :-*

Efectivamente, hay saltos largos y cortos y se codifican en la llamada, por ejemplo:
Call short Call far. Normalmente el compilador decide si utilizas solamente Call, lo ideal es forzarlo utilizando short or Far.

Además, JP son saltos de corta distancia y  JMP también se puede forzar a short o far.

Como dice cierto usuario la diferencia es mínima pero cuando se programa en assembler es para utilizar los ciclos eficientemente. De lo contrario sigan utilizando alto nivel al programar.

La forma de programar en assembler es codificar lo requerido y luego optimizar el código en base a los ciclos utilizados por instrucción, mientras menos mejor. Tambien, hay que tener en cuenta que ciertas instrucciones solo permiten la ejecución de una sola instrucción por el procesador; otras instrucciones permiten que el procesador ejecute varias por ciclo.

Saludos