常用寄存器及其说明
| 通用寄存器 | ||||||
|---|---|---|---|---|---|---|
| EAX | 累加(Accumulator)寄存器 | AX(AH、AL) | 常用于乘、除法和函数返回值 | |||
| EBX | 基址(Base)寄存器 | BX(BH、BL) | 常做内存数据的指针, 或者说常以它为基址来访问内存. | |||
| ECX | 计数器(Counter)寄存器 | CX(CH、CL) | 常做字符串和循环操作中的计数器 | |||
| EDX | 数据(Data)寄存器 | DX(DH、DL) | 常用于乘、除法和 I/O 指针 | |||
| ESI | 来源索引(Source Index)寄存器 | SI | 常做内存数据指针和源字符串指针 | |||
| EDI | 目的索引(Destination Index)寄存器 | DI | 常做内存数据指针和目的字符串指针 | |||
| ESP | 堆栈指针(Stack Point)寄存器 | SP | 只做堆栈的栈顶指针; 不能用于算术运算与数据传送 | |||
| EBP | 基址指针(Base Point)寄存器 | BP | 只做堆栈指针, 可以访问堆栈内任意地址, 经常用于中转 ESP 中的数据, 也常以它为基址来访问堆栈; 不能用于算术运算与数据传送 | |||
| 指令指针寄存器 | ||||||
| EIP | 指令指针(Instruction Pointer)寄存器 | 总是指向下一条指令的地址; 所有已执行的指令都被它指向过(类比程序计数器PC) | ||||
| 标志寄存器 | ||||||
| EFLAGS | 标志(Flag)寄存器: | 0 | CF | 进位(Carry)标志 | 目标无法容纳无符号算术运算的结果, 需要进位或借位时被设置; 可用 STC 指令设置, CLC 指令取消. | |
| 1 | ||||||
| 2 | PF | 奇偶(Parity)标志 | 低 8 位中有偶数个 1 时被设置 | |||
| 3 | ||||||
| 4 | AF | 辅助(Auxiliary)标志 | 使用 BCD 码运算导致 3 位到 4 位产生进位时被设置 | |||
| 5 | ||||||
| 6 | ZF | 零(Zero)标志 | 运算结果为 0 时被设置 | |||
| 7 | SF | 符号(Sign)标志 | 运算结果为负数时被设置 | |||
| 8 | ||||||
| 9 | ||||||
| 10 | DF | 方向(Direction)标志 | 字符串操作是从高位到低位时被设置; 可用 STD 指令设置, CLD 指令取消. | |||
| 11 | OF | 溢出(Overflow)标志 | 因有符号运算的结果太宽而导致数据丢失时被设置 | |||
| ... | ||||||
| 31 | ||||||
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号