• 汇编格式
    • AT&T: op src, dst
    • Intel: op dst, src
  • Intel处理器
    • 8086(16)-80286-i386(32)-i486(FPU)-Pentium-PentiumPro(P6)-Pentium/MMX-PentinumIII(SSE)-Pentium4E(x86-64)-Core2(多核)-Core i7
  • i386寄存器组织
    • 定点寄存器
      • EAX,EBX,ECX,EDX,ESP,EIP,ESI,EDI
      • EIP,EFLAGS
      • CS,SS,DS,ES,FS,GS
    • 寻址模式
      • 立即寻址,寄存器寻址
      • 基址加比例变址加位移寻址:$LA=(SR)+(B)+(I)*S+A$
      • 相对寻址
    • 浮点处理架构
      • x87 FPU: ST(0)-ST(7),80位。控制寄存器、状态寄存器、标记寄存器各一个。组织为浮点寄存器栈。64位尾数。
      • MMX指令: MM0-MM7,通常借用ST(0)-ST(7),使用64位
      • SSE指令集(兼容MMX,采用SIMD(单指令多数据)技术): 增加8个128位SSE专用多媒体扩展通用寄存器XMM0-XMM7
      • AVX指令集:矢量扩展指令集
      • FMA指令集:fused multiply-accumulate
    • 过程调用
      • 储存传递参数
      • 保存返回地址,转移控制权
      • 被调用者保存现场,并分配空间
      • 执行函数体
      • 恢复现场,释放空间
      • 取出返回地址,转移到调用者函数
    • 非静态局部变量的储存分配方式属于未定义行为;不同变量的地址除(!=和==)外为未定义行为
    • 缓冲区溢出防范
      • ASLR(Address Space Layout Randomization)
      • 栈破坏检测
      • 可执行代码区域限制
    • char可为signed char,也可为unsigned char,为不确定类型
    • union的存放顺序是所有成员从低地址开始,利用该特性可测试CPU的大/小端方式