某些通用寄存器用于某些特定原因。例如EAX被用作累加器和存储的返回值,ECX被用作一个计数器,ESI和EDI用于存储在src和dst的地址,分别。类似地,ESP并且EBP。
EBX注册有什么特定的用例吗?还有什么我错过了通用寄存器的特殊用例吗?
谢谢你。
某些通用寄存器用于某些特定原因。例如EAX被用作累加器和存储的返回值,ECX被用作一个计数器,ESI和EDI用于存储在src和dst的地址,分别。类似地,ESP并且EBP。
EBX注册有什么特定的用例吗?还有什么我错过了通用寄存器的特殊用例吗?
谢谢你。
• 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:本地商店