打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
学 Win32 汇编[16]: 常用寄存器的常规功能

通用寄存器
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 位是字符串操作控制标志位;
其他标志位一般不用或无权使用
 

0CF进位(Carry)标志目标无法容纳无符号算术运算的结果, 需要进位或借位时被设置; 可用 STC 指令设置, CLC 指令取消.
1
2PF奇偶(Parity)标志低 8 位中有偶数个 1 时被设置
3
4AF辅助(Auxiliary)标志使用 BCD 码运算导致 3 位到 4 位产生进位时被设置
5
6ZF零(Zero)标志运算结果为 0 时被设置
7SF符号(Sign)标志运算结果为负数时被设置
8
9
10DF方向(Direction)标志字符串操作是从高位到低位时被设置; 可用 STD 指令设置, CLD 指令取消.
11OF溢出(Overflow)标志因有符号运算的结果太宽而导致数据丢失时被设置
...
31
...


其中的 EAX、ECX、EDX 三个寄存器相对自由些, 所以练习时用它们较多.

没理会段寄存器: CS、DS、SS、ES、FS、GS, 是因在 Win32 保护模式下编程它们不再重要了.

还有 FPU、MMX 系列寄存器, 等用到再说吧.
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
微机原理——2.微处理器
关于汇编语言寄存器和指令操作的整理
汇编学习 1 寄存器的作用 寻址方式 - DraculaW - JavaEye技术网站
3. ARM寻址方式
寄存器表
第一课 易语言之寄存器 - 易语言,易源码,易语言教程,易语言模块,支持库 - 一起资源吧...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服