>>25
Let me tell you why it won't link (though it will assemble, since it's perfectly valid syntax):
+ You're declaring the label '_start' as global, yet you only define 'start', instead of '_start'.
Also
section .text
global _start
_start:
$ nasm -f elf proggles.asm
$ ld proggles.o -o proggles
$ file proggles
proggles: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), corrupted program header size, not stripped
$ ./proggles
bash: ./proggles: cannot execute binary file
Solution (PROTIP: you have to return to the kernel):
section .text
global _start
_start:
ret 0x80