31 lines
444 B
NASM
31 lines
444 B
NASM
|
sys_write equ 4
|
||
|
sys_exit equ 1
|
||
|
stdout equ 1
|
||
|
|
||
|
syscall macro nr
|
||
|
mov eax, nr // the syscall number goes in eax
|
||
|
int 80h
|
||
|
endm
|
||
|
|
||
|
nop nop
|
||
|
call foobar
|
||
|
toto_str db "toto\n"
|
||
|
toto_str_len equ $ - toto_str
|
||
|
|
||
|
foobar:
|
||
|
; setup write arguments
|
||
|
mov ebx, stdout ; fd
|
||
|
call got_eip
|
||
|
got_eip: pop ecx
|
||
|
add ecx, toto_str - got_eip // buf
|
||
|
mov edx, toto_str_len ; buf_len
|
||
|
syscall(sys_write)
|
||
|
|
||
|
/*
|
||
|
; hang forever
|
||
|
jmp $
|
||
|
*/
|
||
|
|
||
|
xor ebx, ebx
|
||
|
syscall(sys_exit)
|