首页 > 代码库 > [原创]linux简单之美(三)

[原创]linux简单之美(三)

原文链接:linux简单之美(三)

 

在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以!

 

 1 section .data 2     ft db "now is X",10 3  4 section .text 5 global _start 6  7 _start: 8     mov edi,10 9 again:10     dec edi11     mov eax,edi12     add eax,0x3013     mov byte [ft+7],al14 15     mov eax,416     mov ebx,117     mov ecx,ft18     mov edx,919     int 0x8020 21     mov eax,16222     push 023     push 124     mov ebx,esp25     mov ecx,026     int 0x8027     28     cmp edi,029     jnz again30     31     mov eax,432     mov ebx,133     mov ecx,msg34     mov edx,1535     int 0x8036     37     mov eax,138     mov ebx,039     int 0x8040     41 msg:42  db "happy xxx day!",10

编译链接命令如下:

nasm -f elf main.asm

ld -m elf_i386 -o main main.o

在代码中延时使用的是nanosleep,其他和第一篇一致,只不过做了一个bin->ascii的小转换.