[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [escepticos] endian-ness



txipi escribió:
Hola Eloy,

4) Explicación:

Como podemos ver, nuestro programita (cabecera) ha mostrado el valor
0x100010b8 para el entry_point del ejecutable de PowerPC. Este valor
coincide con lo mostrado por objdump, que tiene en cuenta la
endian-ness. Es decir, en el ejecutable PowerPC, sin tener en cuenta la
endian-ness vemos que el valor está en el mismo orden que como luego va
a ser empleado.

El caso contrario ocurre en el ejecutable para i386 (arquitectura
IA-32): nuestro programita muestra 0xe0910408 como valor del
entry_point, mientras que el objdump muestra 0x080491e0, que es
precisamente el equivalente a tomar los bytes 0xAABBCCDD como
0xDDCCBBAA, que es lo que sucede cuando se trabaja en una arquitectura
little-endian.


No se si se discute eso (no he seguido el hilo,sorry), pero hay un test muy conocido y comodo para saber el "endianismo" de tu maquina. Viene en bastantes libros de programacion, pero google lo sabe todo ;)


"A way to check what byteoredr your machine has is to run the following test:

printf("%d\n", htons(666));

If it prints 39462 you'r on a machine that uses LITTLE ENDIAN and if it prints 666 you'r on a BIG ENDIAN machine"