lunes, 22 de diciembre de 2008

32 bits vs 64 bits

En estas navideñas fechas reaparezco para mostrar la diferencia entre el código ensamblador de un Hola mundo en C, variando entre un sistema operativo de 32 bits y otro de 64.

El Hola mundo del ejemplo es el clásico en C:

#include

void main (void) {

printf ("¡Hola mundo!");

}



Este es el código ensamblador generado en una Debian Lenny de 32 bits:

.file "holamundo.c"
.section .rodata
.LC0:
.string "\302\241Hola mundo!"
.text
.globl main
.type main, @function
main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $4, %esp
movl $.LC0, (%esp)
call printf
addl $4, %esp
popl %ecx
popl %ebp
leal -4(%ecx), %esp
ret
.size main, .-main
.ident "GCC: (GNU) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)"
.section .note.GNU-stack,"",@progbits



Y este otro, es lo mismo pero esta vez generado en Debian Lenny de 64 bits:

.file "holamundo.c"
.section .rodata
.LC0:
.string "\302\241Hola mundo!"
.text
.globl main
.type main, @function
main:
.LFB2:
pushq %rbp
.LCFI0:
movq %rsp, %rbp
.LCFI1:
movl $.LC0, %edi
movl $0, %eax
call printf
leave
ret
.LFE2:
.size main, .-main
.section .eh_frame,"a",@progbits
.Lframe1:
.long .LECIE1-.LSCIE1
.LSCIE1:
.long 0x0
.byte 0x1
.string "zR"
.uleb128 0x1
.sleb128 -8
.byte 0x10
.uleb128 0x1
.byte 0x3
.byte 0xc
.uleb128 0x7
.uleb128 0x8
.byte 0x90
.uleb128 0x1
.align 8
.LECIE1:
.LSFDE1:
.long .LEFDE1-.LASFDE1
.LASFDE1:
.long .LASFDE1-.Lframe1
.long .LFB2
.long .LFE2-.LFB2
.uleb128 0x0
.byte 0x4
.long .LCFI0-.LFB2
.byte 0xe
.uleb128 0x10
.byte 0x86
.uleb128 0x2
.byte 0x4
.long .LCFI1-.LCFI0
.byte 0xd
.uleb128 0x6
.align 8
.LEFDE1:
.ident "GCC: (Debian 4.3.2-1) 4.3.2"
.section .note.GNU-stack,"",@progbits



A simple vista parece bastante más largo el de 64 bits, es la primera impresión que nos da si le echamos un vistazo rápido a ambas versiones del código.

Ahora aclaremos que todas las sentencias que empiezan por un punto son directivas del ensamblador es decir, no generan instrucción, simplemente dan información sobre el programa pero no consumen tiempo de CPU.

Sin embargo las líneas que no tienen un punto al principio son las instrucciones del programa, que si consumen tiempo de CPU.

Aunque cada instrucción tenga un consumo de CPU característico, por regla general a más instrucciones, más consumo de CPU como es lógico.


Echando un nuevo vistazo a las dos versiones del Hola mundo, parece que la primera impresión cambia bastante.

Estamos comparando un programa que simplemente imprime una línea en la pantalla, imaginemos la diferencia en un programa un poco más serio por ejemplo, un navegador web ..


Si, es una pena que no se desarrolle más en serio para 64 bits.


Feliz Navidad.

viernes, 12 de diciembre de 2008

Sed originales, niños.



Os ha quedado claro ? Pues eso xd!

Siete niños marcados de por vida, me pregunto si responsabilizarán a sus padres cuando comprendan lo que han hecho, y también si no será ilegal manipular a los críos de este modo, porque esto huele a condicionamiento a kilómetros ..

martes, 9 de diciembre de 2008

Concurso de fotografía - Diciembre 2008

Tras dos meses sin participar, vuelvo a la carga con esta fotografía:



El tema del mes es: Inclemencias meteorológicas. Y más inclemencias que he tenido yo esta mañana [incluido empotramiento contra un todo terreno ..] no ha tenido nadie, asi que la foto era obligada ;)


Edito para subir el resto de fotos de la sesión, ya puestos ..







Ésta última parece ser que es la que más gusta a la gente para el concurso, a mi también es la que más me gusta.

viernes, 5 de diciembre de 2008

Humedades en el baño de la disco.

No recordaba este saborcillo que deja la resaca de DYC en la boca la mañana de después ..

Anoche cambiamos el habitual plan de los colacaos y las pipas al raso por una barra libre en un local de cuyo nombre si me acuerdo pero por respeto no mencionaré aquí.

Las barras libres baratas tienen una importante contrapartida; el perfil de cliente al que atrae, y que cada vez más habitualmente decide aderezar la fiesta por su cuenta en los lavabos del local en cuestión.

Esta foto es de anoche.



Como bien dice Jona, esto son simples humedades. Y yo le creo cuando lo dice, son humedades .. de a 60 € el gramo.

Por suerte no hubo jaleo.

Es increíble ver como cada día somos menos los que no gustamos de "mojarnos la nariz" cuando salimos de fiesta.

El día que deje de ver como gente de a pie se gasta 60 € todas las semanas solamente en esto, ese día empezaré a creer en la crisis esa en la que dicen que estamos.

lunes, 1 de diciembre de 2008

Se vende el Nocivo.

A Nocivo le ha llegado la hora, después de tanto vivido, de pasar a mejores manos.
Ni siquiera es mío y aún asi me da pena la pérdida, pero era algo que se veía venir.

Para darle algo de publicidad a la venta, y sobretodo para ver el acertadísimo anuncio en la ventanilla del coche, sirva la siguiente imágen:



Hay que ser muy moñas para poner una foto del coche en un anuncio de venta que está puesto .. en la ventanilla del propio coche que se vende. Y qué decir de ese inmenso texto explicando las características del coche, no deja lugar a la más mínima duda oiga, eso es saber expresarse uno.

En fin, no se como estará de mecánica, ni si tendrá alitas de pollo en descomposición debajo de los asientos, o alfombrillas de cáscaras de pipa, lo que es seguro es que el que se lleve este coche se está llevando un trocito de las vidas de mucha gente. Incluída la mía.

Mala suerte en la venta López, ese coche deberías meterlo en una vitrina de por vida.