自制编译器 青木峰郎 笔记 Ch12 x86架构的概要

12.2 x86系列的CPU历史

  1. 遵循同一指令集架构的CPU应该能够执行依据该指令集架构编译的程序
  2. MMX指令用于整数并行处理,SSE用于浮点数并行处理
  3. AMD先于Intel提出了x86系列的64位扩展,其指令集架构称为AMD64,之后Intel提出了自己的Intel64,AMD64和Intel64合称为x86-64。此外,Intel还和HP一起开发IA-64,不过Core2和Xeon等64位CPU都不是这个IA-64的

12.3 IA-32概要

寄存器

  • 通用寄存器
  • 指令指针寄存器
  • flag register
  • MMX register
  • floating point number register
  • XMM register: 为了SSE指令
  • mxcsr register: 表示SSE指令的运算状态
  • system register
  • debug register
  • segment register

机器栈

在LA-32的Linux平台上,机器栈位于各个进程的地址空间中靠近3GB处,向0地址方向延申。栈顶保存在ESP中。用来保存临时变量和参数。
当寄存器不够时,临时变量等都会放入机器栈。机器栈是根据每个函数分开管理的,单个函数调用对应的称之为stack frame,基址指针ebp寄存器总是指向正在执行中的函数栈帧的底部。

eflags

eflags寄存器中有

  1. 用于表示运算结果的状态flag,比如发生进位
  2. 用于控制运算的控制flag
  3. 用于控制计算机整体的系统flag
原文地址:https://www.cnblogs.com/xuesu/p/14382836.html