码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2014-07-08 23:30:36      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   文件   art   

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

 

话说windows也有syscall,这是必须的。但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念。下面看看linux是如何做的吧。

 1 section .data
 2 msg db "hello hopy!",0x0a
 3 
 4 section .text
 5 global _start
 6 
 7 _start:
 8     mov eax,4
 9     mov ebx,1
10     mov ecx,msg
11     mov edx,12
12     int 0x80
13     
14     mov eax,1
15     mov ebx,0
16     int 0x80

关键是系统调用号要知道,开始找的是usr/include/asm-gen*/unistd.h,可是都不对。后来找的是usr/include/x86_64_linux_gnu/asm/下的头文件,有2个,分别对应x86和x64.、编译连接指令如下:

 

nasm -f elf main.asm

ld main.o

 

运行,段转储错误鸟,查了一下,本猫用的是x64位的linux,所以要生成x64位的程序,或者指明是x86的程序,我选择后者:

 

ld -m elf_i386 -o main main.o

 

哦鸟!

[原创]linux简单之美(一),布布扣,bubuko.com

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

标签:style   blog   http   color   文件   art   

原文地址:http://www.cnblogs.com/hopy/p/3830295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!