.section .data .equ open, 5 .equ write, 4 .equ read, 3 .equ rdonly, 0 .equ stdin, 0 .equ stdout, 1 .equ linux, 0x80 .equ eof, 0 .section .comment .section .text .globl _start _start: pushl $104 call printc subl $4, %esp pushl $101 call printc subl $4, %esp pushl $108 call printc subl $4, %esp pushl $108 call printc subl $4, %esp pushl $111 call printc subl $4, %esp pushl $32 call printc subl $4, %esp pushl $119 call printc subl $4, %esp pushl $111 call printc subl $4, %esp pushl $114 call printc subl $4, %esp pushl $108 call printc subl $4, %esp pushl $100 call printc subl $4, %esp pushl $33 call printc subl $4, %esp pushl $10 call printc subl $4, %esp jmp exit print: mov $write, %eax mov $stdout, %ebx mov %esp, %ecx mov $1, %edx int $linux exit: #we'll make this function more complex laters movl $0,%ebx # first argument: exit code movl $1,%eax # system call number (sys_exit) int $linux # call kernel .type printc, @function printc: popl %ebp #movl $, %ebp movl $write, %eax movl $stdout, %ebx movl %esp, %ecx movl $1, %edx int $linux pushl %ebp ret #So, let's do something?