现在的位置: 首页 > 综合 > 正文

各类寄存器总结

2017年11月24日 ⁄ 综合 ⁄ 共 1053字 ⁄ 字号 评论关闭

寄存器在汇编和反汇编中都是必需品,我把各类寄存器及其作用总结了一下,希望大家多多交流大笑


4个数据寄存器(EAXEBXECXEDX) 

2个变址和指针寄存器(ESIEDI) 2个指针寄存器(ESPEBP) 

6个段寄存器(ESCSSSDSFSGS)

1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)

EBP :(Extended Base Pointer)基址指针寄存器,存放栈底指针

ESP :(Extended Stack Pointer)栈指针寄存器,存放栈顶指针

EAX :(Extended Accumulate )累加寄存器,用做加减乘除运算

EBX :(Extended Base)基址寄存器,可以用来存储指针

ECX :(Extended Count)计数寄存器,用在循环中控制循环的次数

EDX :(Extended Data)数据寄存器,在进行乘、除运算时,它可作为默认的操作数参与运算,通常用来保存余数。也 可用于存放I/O的端口地址

ESI:(Extended Source Index)源索引寄存器,可以存放任何数据,但是习惯把它存放指针。

EDI:(Extended Destination Index)目的索引寄存器,但是ESIEDI虽然他俩经常配合,但是之间的区别还是比较大的。在字符串处理指令中,ESIDS结合,DSESI构成全指针,在穿处理指令方面,ESI负责只读,EDI负责只写。关于为啥只能ESIDS结合形参全指针,这是硬件构造决定的,没有选择性。ESEDI,同样构成全指针。

EIP:(Extended Instruction Pointer)指令指针寄存器,要存放下一条执行指令的地址

EFL:(Extended Flag)标志寄存器,用来运算结果标志(进位,溢出等),状态控制标志(跟踪,中断允许等)。

CS——代码段寄存器(Code Segment Register),其值为代码段的段值;

DS——数据段寄存器(Data Segment Register),其值为数据段的段值;

ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

SS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值;

FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;

GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。

抱歉!评论已关闭.