1 程序编码
gcc -O1 -S/o 文件名
汇编代码.s,目标代码.o,可执行代码 。exe
反汇编代码:objdump -d* .o
2 数据格式
char 1,short 2,int 4,long 4,float 4,double1 8
3访问信息
8个寄存器
eax,ecx, edx, ebx, edi, esi, ebp, esp
4 操作类型
寄存器,立即数,存储器
5 算术和逻辑操作
加载有效地址
leal
一元操作和二元操作
既是源又是目的
6 移位操作
SAR算术移位,SHR逻辑移位
7控制
条件码:
CF:进位标志
ZF:零标志
SF:符号标志
OF:溢出标志
8 访问条件码
9 跳转指令以及编码
10 翻译分支
11 过程
:将数据和控制从代码的一部分传递到另一部分。
:必须在进入时为过程的局部变量分配空间,并在退出时释放空间。
12 栈帧结构
栈帧:单个过程空间
帧指针,栈指针
13转移移动
call ,leave,ret
14 递归过程
15 数组的分配和访问
基本原则
:
16 变长数组
17 结构
18 数据对齐