一般寄存器
-
eax 被称为累加寄存器(Accumulator),用以进行算数运算和返回函数结果等。
-
ebx 被称为基址寄存器(Base),在内存寻址时(比如数组运算)用以存放基地址。
-
ecx 被称为记数寄存器(Counter),用以在循环过程中记数。
-
edx 被称为数据寄存器(Data),常配合 eax 一起存放运算结果等数据。
索引寄存器(常用于字符串操作)
-
esi 指向要处理的数据地址(Source Index)。
-
edi 指向存放处理结果的数据地址(Destination Index)。
堆栈指针寄存器(esp、ebp)
-
esp --> stack point
段地址寄存器(ss、cs、ds、es、fs、gs)
-
ss 存储函数调用栈(Stack Segment)的地址
-
cs 存储代码段(Code Segment)的地址
-
ds 存储数据段(Data Segment)的地址
-
es、fs、gs 是附加的存储数据段地址的寄存器
标志位寄存器(EFLAGS)
-
OF(Overflow Flag)对应数值溢出
-
IF(Interrupt Flag)对应中断
-
ZF(Zero Flag)对应运算结果为0
-
CF(Carry Flag)对应运算产生进位
内存分段
-
栈段(Stack Segment)
-
堆(Heap Segment)
用于存放程序运行中动态分配的内存 -
数据段(Data Segment)
存储已经初始化且初值不为0的全局变量和静态局部变量 -
BSS段
存储未初始化或初值为0的全局变量和静态局部变量 -
代码段(Code Segment)
存储可执行代码和只读常量(如常量字符串),属性可读(r)可执行(x),但通常不可写(w)