Primul mesaj de pe blog nu are cum sa nu fie un “Hello World!”.
Majoritatea limbajelor de programare, cu care am lucrat, nu au un “Hello world!” prea sofisticat; asa ca voi da doar 2 exemple, in C, ceva mai interesante :
1) Well, hai sa nu mai punem compilatorul la munca sa-mi aseze in memorie string-ul :
int a, b, c, d;
a = 256 * 256 * 256 * ‘l’ + 256 * 256 * ‘l’ + 256 * ‘e’ + ‘H’;
b = 256 * 256 * 256 * ‘o’ + 256 * 256 * ‘w’ + 256 * ‘ ‘ + ‘o’;
c = 256 * 256 * 256 * ‘!’ + 256 * 256 * ‘d’ + 256 * ‘l’ + ‘r’;
d = 256 * ” + ‘\n’;
printf(“%s”, (char *) &a);
Dupa ce am scris asta, ma rog sa nu-mi rearanjeze variabilele si astfel sa afiseze cu totul altceva decat ce vreau eu.
2) Acum, ceva mai frumos
void hello_world()
{
printf(“Please do not print this !!!\n”);
printf(“Hello world!\n”);
}
Ok, trebuie sa ruleze doar al doilea printf, cum pot face asta ? Ne uitam in disassembly si facem asa :
void (*my_hello_world)(void) = (void(*)(void)) hello_world + 18;
my_hello_world();
Acestea fiind zise, va salut din primul meu post pe blog-ul personal