; Hello World Program (Getting input) ; Compile with: nasm -f elf helloworld-input.asm ; Link with (64 bit systems require elf_i386 option): ld -m elf_i386 helloworld-input.o -o helloworld-input ; Run with: ./helloworld-input %include 'functions.asm' SECTION .data msg1 db 'Please enter your name: ', 0h ; message string asking user for input msg2 db 'Hello, ', 0h ; message string to use after user has entered their name SECTION .bss sinput: resb 255 ; reserve a 255 byte space in memory for the users input string SECTION .text global _start _start: mov eax, msg1 call sprint mov edx, 255 ; number of bytes to read mov ecx, sinput ; reserved space to store our input (known as a buffer) mov ebx, 0 ; write to the STDIN file mov eax, 3 ; invoke SYS_READ (kernel opcode 3) int 80h mov eax, msg2 call sprint mov eax, sinput ; move our buffer into eax (Note: input contains a linefeed) call sprint ; call our print function call quit