linux系统调用小实例

linux系统调用小实例

.text
  _entry:
    movl $
4  ,  % eax
    movl $
1  ,  % ebx
    movl $message , 
% ecx
    movl $
12  ,  % edx
    
int  $ 0x80
    movl $
1   ,  % eax
    
int  $ 0x80

  message:
     .ascii 
" Hello World\n "

  上面的代码中使用了两种系统调用,
   (1)  4号系统调用为写文件操作,eax为功能号,ebx为文件号,上述代码中的1 对应的是 标准输出stdout。
          ecx为参数,缓冲区指针。 edx为写数据的长度。
   (2) 1号系统调用,表示退出程序。
         
  代码编译方法:
    as -o asm.o asm.s
    ld -o asm asm.o

 运行 ./asm
  结果  Hello World

2 感悟
   常用的libc下的系统调用都是已经封装过的,而上述使用到的系统调用则是直接使用内核的方法。
     该代码不使用任何库,也可以独立成一个程序。 







   

你可能感兴趣的:(linux系统调用小实例)