基本程序运行寄存器

通用寄存器 (General Purpse Resigisters,32位,8个)

段寄存器 (Segment Register,16位,6个)

程序状态与控制寄存器 (Program Status and Contral Register,32位,1个)

指令指针寄存器(Instruction Pointer, 32位,1个)

  1. 通用寄存器

EAX:(针对操作数和结果数据的) 累加器

EBX:(DS段中的数据指针)基址寄存器

ECX:(字符串和循环操作的)计数器

EDX (I/O指针)数据寄存器

注意: Windows 汇编程序中,Windows API 函数会在内部使用ECX和EDX,会导致这两者寄存器内的数据发生改变,为了保护数据,调用API 还函数之前要把这些数据备份到其他寄存器或栈。

EBP:(SS段中栈内数据指针)扩展基址指针寄存器

ESI:(字符串操作源指针)源变址寄存器

EDI:(字符串操作目的指针)目的变址寄存器

ESP: (SS段中栈指针) 栈指针寄存器

  1. 段寄存器

CS: Code Segment,代码寄存器

SS: stack Segment, 栈段寄存器

DS: Data Segment, 数据段寄存器

ES: Exera(Data), 附加(数据)寄存器

FS:Data Segment, 数据段寄存器

GS:Data Segment, 数据段寄存器

  1. 程序状态寄存器

EFLAGS (大小:4个字节)

  • ZF

若运算结果为0时,其值为1,否则其值为0.

  • OF

有符号整数(signed integer)溢出时,OF被置为1,此外,MSB(Most Significent Bit,最高有效位)改变时候,其值也被置为1.

  • CF

无符号整数(unsined integer) 溢出时,其值也被置为1.

  1. 指令指针寄存器

EIP:instruction Pointer, 指针指针寄存器

2020-10-16

⬆︎TOP