ассемблерный файл elf_tiny.asm, сконструированный голыми руками
Теперь, когда борьба идет за каждый байт, воспользуется ассемблерными трюками, оптимизирующими размер ассемблерного кода. Во-первых, заменим MOV EBX, 1 на XOR EBX,EBX/INC EBX
(напоминаю, NASM использует INTEL'й синтаксис), во вторых, сохраним это значение в стеке однобайтовой командой PUSH EBX — позднее оно нам понадобиться для системного вызова exit. В-третьих, не будет явно инициализировать код возврата — он ведь нам все равно не нужен.
$nasm -f bin -o elf_tiny elf_tiny.asm
$chmod +x elf_tiny
$ls -l elf_tiny
-rwxr-xr-x 1 root staff 118 2006-04-20 19:29 elf_tiny
./elf_tiny
hello, elf