有两种方式执行系统调用:使用c库,或者直接系统调用。c库的函数并不全部是系统调用外包,例如printf,malloc。直接的内核调用,更快速的获得内核服务。
linux下的使用方法,eax中放调用号,可以在asm/unistd.h中查到。可传递6个参数,ebx,ecx,edx,esi,edi,ebp。如果还有更多的参数,他们将被简单的传成结构体作为第一个参数。返回值放在eax中。没有使用到栈。
0xa代表'\n'
阅读(470) | 评论(0) | 转发(0) |
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
linux下的使用方法,eax中放调用号,可以在asm/unistd.h中查到。可传递6个参数,ebx,ecx,edx,esi,edi,ebp。如果还有更多的参数,他们将被简单的传成结构体作为第一个参数。返回值放在eax中。没有使用到栈。
|
0xa代表'\n'
$ nasm -f elf hello.asm # this will produce hello.o ELF object file
$ ld -s -o hello hello.o # this will produce hello executable
./hello运行
结果类似于
write(1,msg,len);
相关热门文章
给主人留下些什么吧!~~
评论热议