[转贴]linux下c语言嵌入汇编
网上看到的这篇关于Linux下C语言嵌入汇编的文章写的非常全,转载过来。
Using Assembly Language in Linux.
Intel和AT&T汇编语法差异:
1。前缀:
Intel汇编寄存器和立即数无需前缀。后者寄存器前缀为%,立即数前缀为$。
eg:
Intex Syntax
mov eax,1
mov ebx,0ffh
int 80h
AT&T Syntax
movl $1,%eax
movl $0xff,%ebx
int $0x80
2。二者对操作数处理方向不同:
eg:
Intel 汇编语法:
instr dest,source
mov eax,[ecx]
AT&T 汇编语法:
instr source,dest
movl (%ecx),%eax
3。内存变量语法差异:
Intel语法使用中括号[],后者使用小括号()
eg:
Intex Syntax
mov eax,[ebx]
mov eax,[ebx+3]
AT&T Syntax
movl (%ebx),%eax
movl 3(%ebx),%eax
4。后缀:
AT&T汇编指令有后缀,以表明数据类型(8位、16位等);Intel则根据寄存器自动识别。
eg:
Intel Syntax
mov al,bl
mov ax,bx
mov eax,ebx
mov eax, dword ptr [ebx]
AT&T Syntax
movb %bl,%al
movw %bx,%ax
movl %ebx,%eax
movl (%ebx),%eax
5。
Intel:segreg:[base+index*scale+disp]
AT&T: %segreg:disp(base,index,scale).
例子:
1 #include <stdio.h>
2
3 int main(void) {
4 long eax=4;
5 long ebx=2;
6
7 __asm__ __volatile__ ("addl %1, %0"
8
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
(八)创新篇
Linux是自由软件,而自由软件和非自由软的区别在于:
1. 自由软件是开放的,成千上万的人可以检查这个软件,快速地找到并修改其错误码。
2. 最终用户可以按照自己的意愿自定义自由软件,有特殊需要的用户也可以完全按照他们认为合适的方式定制自己的Linux。
3. 自由软 ......
linux网址精选
http://hi.baidu.com/digast/blog/item/31cd94efba1348ebcf1b3ed3.html
2008-04-01 14:57
国外
http://lwn.net/
http://www.tldp.org/
https://rhn.redhat.com
http://www.justlinux.com/
http://www.linuxtoday.com/
http://www.linuxquestions.org/
http://ww ......
Linux学习高手写给初学者的经验谈
2008-04-01 15:02
现在好多的人开始接触电脑的时候,见到的应该是Windows98说实话,98 已经是一个很人性化,封装的很好的一个系统了一个对电脑一窍不通的人都能很快的使用它。这样很多人对 "电脑"的印象和那些和我一样一开始接触的是DOS人是绝然不同的。在DO ......