学 Win32 汇编[16]: 常用寄存器的常规功能
2015-04-27 20:39
302 查看
其中的 EAX、ECX、EDX 三个寄存器相对自由些, 所以练习时用它们较多.
没理会段寄存器: CS、DS、SS、ES、FS、GS, 是因在 Win32 保护模式下编程它们不再重要了.
还有 FPU、MMX 系列寄存器, 等用到再说吧.
通用寄存器 | |||||
---|---|---|---|---|---|
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)寄存器 | 总是指向下一条指令的地址; 所有已执行的指令都被它指向过. | |||
标志寄存器 | |||||
EFLAGS | 标志(Flag)寄存器: EFLAGS 中的 32 位被分成 0-31 个二进制位分别使用; 第 0、2、4、6、7、11 位是状态标志位; 第 10 位是字符串操作控制标志位; 其他标志位一般不用或无权使用 | 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 | |||||
... |
没理会段寄存器: CS、DS、SS、ES、FS、GS, 是因在 Win32 保护模式下编程它们不再重要了.
还有 FPU、MMX 系列寄存器, 等用到再说吧.
相关文章推荐
- 学 Win32 汇编[16]: 常用寄存器的常规功能
- win32汇编各寄存器常规功能
- 汇编学习--常用寄存器功能介绍(基于8086CPU)
- 汇编-32位寄存器的功能及其使用之整理篇
- 【汇编】DOS功能调用-常用输入输出
- 汇编常用int 21H系统功能调用
- 学 Win32 汇编[20]: 洞察标志寄存器
- Win32汇编 寄存器
- 使用WDM驱动实现在NT下读取物理端口,特殊寄存器,物理内存的代码(Win32汇编源代码)
- 汇编基础——常用寄存器及其用途
- Win32汇编--- Spy--(功能还未完善)
- ***汇编语言 实验16 编写包含多个功能子程序的中断例程
- 51单片机常用寄存器功能总结
- WIN32汇编: 16.事件对象
- 16-集合框架-02-常用对象API(集合框架-体系&共性功能)
- 寄存器(内存访问)04 - 零基础入门学习汇编语言16
- 模块管理常规功能自定义系统的设计与实现(16--模块数据的导出和打印[1])
- 学习汇编:常用寄存器
- 汇编语言----实验16--编写包含多个功能子程序的中断例程
- 汇编中各寄存器的功能