在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式
来搞呢?显然可以!
section .data ft db "now is X",10 section .text global _start _start: mov edi,10 again: dec edi mov eax,edi add eax,0x30 mov byte [ft+7],al mov eax,4 mov ebx,1 mov ecx,ft mov edx,9 int 0x80 mov eax,162 push 0 push 1 mov ebx,esp mov ecx,0 int 0x80 cmp edi,0 jnz again mov eax,4 mov ebx,1 mov ecx,msg mov edx,15 int 0x80 mov eax,1 mov ebx,0 int 0x80 msg: db "happy xxx day!",10
ld -m elf_i386 -o main main.o
在代码中延时使用的是nanosleep,其他和第一篇一致,只不过做了一个bin->ascii的小转换.