[转贴]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等协议 ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
操作系统中,前台进程和后台进程有什么区别?特征是什么?
后台程序基本上不和用户交互,优先级别稍微低一点
前台的程序和用户交互,需要较高的响应速度,优先级别稍微高一点
直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行 ......
这几天装了Ubuntu才发现,Xmark早就被河蟹钳了。难怪之前书签一直传不上去。。幸好win7还没删,不然我整个月的书签都没了。
在此记录一下破墙的方法:
sudo emacs /etc/hosts
添加
64.147.188.86 www.xmark.com
64.147.188.92 api.xmarks.com
64.147.188.89 login.xmarks.com
64.147.188.87 sync.xmarks.com
......
http://server.it168.com/a2008/1016/208/000000208085.shtml
如果在Red Hat Enterprise Linux 5安装时已经默认安装了NFS组件,接下来的工作主要是配置相关文件使服务器提供NFS服务,步骤如下。
(1)设定某台计算机为NFS服务器,并在后台启动相关的守护进程(在"服务配置"中启动)。一般来说,如果NFS服务器要 ......