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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Diferencias resultado ensambladores (no, no es la pregunta clásica VS)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Diferencias resultado ensambladores (no, no es la pregunta clásica VS)  (Leído 3,715 veces)
farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Diferencias resultado ensambladores (no, no es la pregunta clásica VS)
« en: 14 Diciembre 2010, 23:45 pm »

Holas a todos,

Llevo unos días pensando en una cosilla que me tiene hasta ahí. La cosa es que por internet hay muchos VS entre tal ensamblador o tal otro. Si bien he leído mucho acerca de ello, mi pregunta es más concreta.

Cuando se ensambla con un ensamblador u otro ¿hay diferencia alguna entre el resultado de cada uno? Es decir, el resultado en binario será el mismo en todo los ensambladores o habrá alguno que difiera un poco.

¿Se puede 'optimizar' un ensamblador? Por ejemplo, supongamos que tenemos éste código, sacado de una web:
Código:
Game Port

;  GAMEPORT.ASM
;

        .MODEL TINY

        .DATA

        yes     DB      13,10,"Game port is installed.",13,10,"$"
        no      DB      13,10,"Game port is not installed.",13,10,"$"

        .CODE
        ORG 100h

start:  mov     al, 1           ;value to write to port
        mov     dx, 201h        ;port number
        out     dx, al          ;write to port
        mov     cx, 0F00h       ;# of loops

port_loop:
        in      al, dx          ;read from port
        and     al, 0Fh         ;if jstick present, then AL should be
        cmp     al, 0Fh         ; 0Fh after ANDing with 0Fh.
        je      jstick_exists
        loop    port_loop
        mov     dx, OFFSET no   ;gameport not installed
        jmp     SHORT done

jstick_exists:                 
        mov     dx, OFFSET yes  ;gameport installed

done:   mov     ah, 9h
        int     21h

        mov     ax, 4c00h
        int     21h

END     start

El resultado en binario será el mismo en cada ensamblador (usando, por supuesto, el mismo linker)?

Es este aspecto el que hace un ensamblador 'mejor' o 'peor' que otro o solo es los formatos que acepta, los macros... etc.

¡Un abrazo! Agradezco de antemano sus respuestas :)


En línea

Yurix

Desconectado Desconectado

Mensajes: 72


Paz para la guerra y guerra por la paz


Ver Perfil
Re: Diferencias resultado ensambladores (no, no es la pregunta clásica VS)
« Respuesta #1 en: 21 Diciembre 2010, 19:52 pm »


La respuesta parcial es SI , empezamos >

En el conjunto de instrucciones X86 hay instrucciones que se pueden codificar de varias maneras , incluso manteniendo el mismo tama;o. Se puede incluso identificar el ensamblador o compilador que se uso ,gracias a esto que te acabo de escribir.

Incluso hay un programa que incrusta informacion dentro de los opcodes sin modificar el funcionamiento.

Lee >
http://www.strchr.com/machine_code_redundancy
http://www.crazyboy.com/hydan/

Por ejemplo , un compilador o ensamblador (de calidad) puede usar una instruccion mas larga para que la proxima instruccion este alineada (con las respectivas ganancias en velocidad que esto puede traer si esa instruccion se encuentra dentro de un loop donde sera ejecutada varias veces)

ver alineamiento en >:
http://www.asmcommunity.net/book/Alignment


Saludos
Espero que te sea util.





En línea



http://kapetres.wordpress.com/ < Mi blog sobre ASM

Parece que alguien no quiere que la info sea liebre >

Alguien lo movio a ese lugar.
farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Diferencias resultado ensambladores (no, no es la pregunta clásica VS)
« Respuesta #2 en: 26 Diciembre 2010, 11:26 am »

Muchisimas gracias por tu respuesta y por la buena explicacion :)

Todo entendido :)

¡Un abrazo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Fans de música clásica y heavy metal se parecen « 1 2 »
Foro Libre
daryo 13 5,137 Último mensaje 23 Mayo 2013, 21:11 pm
por daryo
[+]Ensambladores, Documentación, Herramientas
ASM
x64core 9 15,357 Último mensaje 17 Agosto 2017, 04:45 am
por wicd
Trucos de Magia Clasica: Michael Vincent
Foro Libre
sirdarckcat 3 1,960 Último mensaje 31 Octubre 2016, 13:18 pm
por Orubatosu
Olvídense de la clásica impresión 3D: Llega el 'replicador'
Noticias
wolfbcn 4 1,262 Último mensaje 6 Febrero 2019, 18:55 pm
por Serapis
[Pregunta]: ¿Como muestro el siguiente resultado?
Bases de Datos
Leguim 3 2,898 Último mensaje 19 Octubre 2019, 18:24 pm
por Leguim
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines