Rapidez entre distincia de los Calls?

Iniciado por x64core, 20 Febrero 2012, 07:36 AM

0 Miembros y 1 Visitante están viendo este tema.

x64core

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!  :-*

MCKSys Argentina

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


x64core

no entendi  :xD pero me imagino que es tan poca la diferencia que ní se nota :P Gracias

Caster

No tengo nada que ver el link que te dejaron antes quizás lo entiendas mejor traducido. http://es.wikipedia.org/wiki/Latencia_CAS

MCKSys Argentina

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...
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


jacosito

Cita de: RHL 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!  :-*

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