通用寄存器的一些特殊用例是什么

逆向工程 拆卸 部件
2021-07-07 10:18:01

某些通用寄存器用于某些特定原因。例如EAX被用作累加器和存储的返回值,ECX被用作一个计数器,ESIEDI用于存储在src和dst的地址,分别。类似地,ESP并且EBP

EBX注册有什么特定的用例吗?还有什么我错过了通用寄​​存器的特殊用例吗?

谢谢你。

1个回答

• AX/EAX/RAX:累加器

• BX/EBX/RBX:基本索引(用于数组)

• CX/ECX/RCX:计数器

• DX/EDX/RDX:数据/一般

• SI/ESI/RSI:字符串操作的源索引。

• DI/EDI/RDI:字符串操作的目标索引。

• SP/ESP/RSP:栈顶地址的栈指针。

• BP/EBP/RBP:栈基指针,用于保存当前栈帧的地址。

• IP/EIP/RIP:指令指针。保存程序计数器,当前指令地址。

段寄存器:

• CS:代码段(用于 IP)

• DS:数据段(用于 MOV)

• SS:堆栈段(用于 SP)

• ES:目标段(用于 MOVS 等)

• FS:本地商店

• GS:本地商店