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

原文链接: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

时间: 2024-10-05 04:09:25

[原创]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 edi 11 mov eax,edi 12 add eax,0x30 13 mov byte [ft+7],al 1

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

原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: 1 section .data 2 ft db "now is %d",10 3 4 section .text 5 extern puts 6 extern exit 7 extern sleep 8 extern printf 9 global main 10 11 main: 12 mov edi,1

[原创]Linux系统启动过程分析

经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究.这当中就包括系统的启动流程.文件系统的组成结构.基于动态库和静态库的程序在执行时的异同.协议栈的架构和原理.驱动程序的机制等等. 本人在综合了现有网上大家智慧的基础上,结合对2.6.32的内核代码的研读,基于CentOS 6.0系统对Linux的启动流程做了些分析.由于才疏学浅,知识所限,有些地方分析不妥之处还请各位高手不吝赐教. OK,我们言归正传.对于一台安装了Linux系统的主机来说,当用户按下开机按钮时,一共要经

五大Linux简单命令解决系统性能问题

五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样.许多管理员在遇到性能问题的时候常常简单化处理,依靠硬件的更新换代,更大的内存和更强的CPU来解决问题.事实上,利用一些简单的命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 管理Linux主机的性能看起来经常象是在变魔术一

linux简单用于监控队脚本

######################################################################### # File Name: monitor.sh # Author: fangtest # mail: [email protected] # Created Time: Sun 29 Jun 2014 06:55:18 PM EDT ###########################################################

[原创]css3简单几步画一个乾坤图

效果如上,鼠标移上去会有动画. 代码如下非常简单: 1 <html> 2 <head> 3 <style> 4 .outer{height:100px;width:200px;border-radius:100px 100px 0px 0px;border:solid 1px #666;border-bottom:none; margin:0 auto;background:#fff;overflow:hidden;} 5 .inner{width:300px;heig

Linux简单命令使用

1.  学会使用tar命令压缩(解压).tar.gz文件 tar zxvf *.tar.gz   tar jxvf  *.tar.gz2 2.  学会简单的拷贝cp命令 cp yuan mudi 3.  普通用户转换为超级用户的命令 su –  su - root 4.  查看当前目录下文件命令 ls ls -l   ls -a  ls 5    学会自动补全命令行的技巧   首字母+Tab键 6.  学会使用多种方法安装rpm软件包  rpm -ivh 11.rpm ——rpm命令的使用 rm

Linux 简单字符设备驱动程序 (自顶向下)

第零章:扯扯淡 特此总结一下写的一个简单字符设备驱动程序的过程,我要强调一下“自顶向下”这个介绍方法,因为我觉得这样更容易让没有接触过设备驱动程序的童鞋更容易理解,“自顶向下”最初从<计算机网络 自顶向下方法>这本书学到的,我觉得有时候这是一种很好的方式. 第一章:测试程序 咦?你怎么跟别人的思路不一样???自顶向下嘛,我就直接从测试程序来说啦,这样那个不是更熟悉吗?看看下面的测试程序的代码,是不是很熟悉? 1 #include <stdio.h> 2 #include <u

《简单之美》读后感(part1)

<简单之美>一书,对于软件开发的过程,在很多地方值得我们深思. 作者讲述了软件开发中各种常见问题,从思想层面深刻剖析,最后还是归结到以人为本这一核心思想.以人为本不是一句空话,核心就是对思想和文化的关注,软件是给人用的,如果抓不住以人为本这一核心思想,那软件注定是失败的. 本书传递的思想是,用简单的原则.富于想象的精神.文化的视角来认识软件开发. 软件的美和价值在于创造,创造的根源在于想象.当然这必须基于对软件开发的深刻理解.重点在于需要形成一个自己的,系统而且完整的观念.