x86汇编总结

2015.03.27发布于笔记暂无评论#asm#总结#汇编

近来工作和学习的时候多少会遇到一些汇编代码,特在此总结一些简单的汇编语言知识点。以能看懂常见的汇编代码为目的,不做深入探究。

语法

x86汇编语言主要有两个语法分支: AT&T和Intel。我们平常接触到的GNU系的工具(包括GCC,OBJDUMP等)都是使用AT&T语法,若无特别说明,下面的汇编代码例子也是如此。

两种语法分支的主要区别[1][2]:

AT&T Intel 注释
寄存器前缀 %eax eax
立即数前缀 $5 5
指令后缀 movl mov 操作数长度[3]
参数次序 movl $5, %eax mov eax, 5 R[eax] = 5
取址1 var [var] 变量
取址2 0x8(%eax) [eax + 0x8] 偏移
取址3 arr(, %eax, 4) [eax * 4 + arr] 数组
继续阅读...