我的目标是攻克LINUX和UNIX内核,做一名系统工程师。1:学习马哥LINUX课程(Centos,mysql数据库,相关网络等)2:内核是由C语言和汇编写成的,所以作为学习内核的语言基矗有英文版的尽可能看英文版。汇编语言(LINUX环境下)书籍:深入理解程序设计:使用LINUX汇编语言,Assemb..
分类:
系统相关 时间:
2014-12-12 17:11:53
阅读次数:
326
紧接上一篇博文,上篇写的是用GAS汇编调用C语言,这次讲用C语言调用GAS汇编。在内核编写中主要用的是前者,但是在日常程序优化中,主要用的是后者。还是同样的功能,实现两个数值的交换,把参数从C语言传递进汇编,再用C语言接收从汇编函数返回的返回值,返回值又分为普通整数..
分类:
编程语言 时间:
2014-10-05 15:39:29
阅读次数:
274
Blum的书上只讲了C语言调用汇编,没讲汇编调用C语言。我自己尝试了下。最终试验成功了,在此写出与大家分享。期间历经无数错误,无数异常,我不是醉了,而是跪了。。。好在最后好了。程序实现一个换值功能,在main.s里定义a=10,b=20,然后调用C语言函数把a,b换值。新建两个文..
分类:
编程语言 时间:
2014-10-04 00:01:16
阅读次数:
331
留作备忘: gcc -S -masm=intel xxxx.c 生成elf可执行文件: gcc
-o xxx xxxx.s
分类:
系统相关 时间:
2014-07-22 23:07:53
阅读次数:
581
今天又看CS630[1]的Chapter 15,发现里头的一个例程manydots.s无法正常编译。
$ gcc manydots.s -o manydots
/tmp/ccIvmRVT.o: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4....
分类:
其他好文 时间:
2014-07-06 00:50:42
阅读次数:
206
Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数,而Windows下却是相反。
1、 基本操作指令
简单的操作数类型说明,一般有三种,
(1)立即数操作数,也就是常数值。立即数的书写方式是“$”后面跟一个整数,比如$0x1F,这个会在后面的具体分析中见到很多。
(2)寄存器操作数,它表示某个寄存器的内容,用符号Ea来表示任意寄存器a,用...
分类:
数据库 时间:
2014-06-08 10:35:44
阅读次数:
356
一、简介
作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。就拿 Linux
内核来讲,虽然绝大部分代码是用 C 语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在 Linux 的启动部分。由于这部分代码与硬...
分类:
编程语言 时间:
2014-05-01 08:34:19
阅读次数:
622