易截截图软件、单文件、免安装、纯绿色、仅160KB

[转贴]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      


相关文档:

Linux启动与进程


操作系统中,前台进程和后台进程有什么区别?特征是什么?
后台程序基本上不和用户交互,优先级别稍微低一点
 前台的程序和用户交互,需要较高的响应速度,优先级别稍微高一点
直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行 ......

Linux实战攻略之NFS服务器安装配置

http://server.it168.com/a2008/1016/208/000000208085.shtml
 如果在Red Hat Enterprise Linux 5安装时已经默认安装了NFS组件,接下来的工作主要是配置相关文件使服务器提供NFS服务,步骤如下。
  (1)设定某台计算机为NFS服务器,并在后台启动相关的守护进程(在"服务配置"中启动)。一般来说,如果NFS服务器要 ......

linux下利用PF_PACKET协议族捕包方法

 

放一段示例程序,这段程序我在RH9和AS4下编译通过,程序功能就是用从2.2内核加入的PF_PACKET协议族来进行底层数据包捕获并显示。
PF_PACKET协议族是与系统TCP/IP协议栈并行的同级别模块,即从PF_PACKET协议族得到的数据包是没有经过系统TCP/IP协议栈处理
的。而且,通过设置混杂模式,可以很容易的实现sniffe ......

Linux 引导过程内幕

 
Linux 引导过程内幕
http://www.lemote.com/bbs/redirect.php?goto=newpost&tid=1723
当系统首次引导时,或系统被重置时,处理器会执行一个位于已知位置处的代码。在个人计算机(PC)中,这个位置在基本输入/输出系统(BIOS)中,它保存在主板上的闪存中。嵌入式系统中的中央处理单元(CPU)会调用这个重置向 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号