寄存器
寄存器的概念和作用
-
寄存器是CPU内部的高速存储单元,访问速度比常规内存快很多。
-
处理器在执行程序时,需要一个助手,当执行一条指令时,比如将两个内存单元中存放的内容相加,处理器需要先把其中一个内容放入到寄存器中,然后在把另一个内容放入,这就是使用寄存器的一个例子。
-
OD寄存器窗口中显示的寄存器有EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI,EIP,这些寄存器都被成为32位寄存器,均以十六进制显示,每一位可以被设为0或1。
-
ESP:指向的是堆栈最顶端的地址
-
EIP:指向的是下一条要执行命令的地址
-
EAX:AX是EAX的一部分,是一个16位寄存器,是EAX的后4位数字,AX还可以分为AL和AH。
-
EAX, EBX, ECX, EDX都可以这样分割,修改时,右键点击modify。
-
但EIP是一个例外,它指向下一条将要执行的指令,改变其值时,需要在反汇编窗口中选择新的指令起始点,右键选择New origin here。
-
标志寄存器
- 标志分为C, P, A, Z, S, T, D, O,标志寄存器只能是0或1。
溢出标志O
- 当操作改变了符号位、返回错误值时被设置。该标志的目的是当指令的结果超过它能够存取的最大值时,将被设置为1。
辅助进位标志A
- 完成操作后,用其他的某种形式对其进行记录。
奇偶标志P
- 如果指令的结果用二进制表示,该二进制数中的1的总数为偶数时,P标志会被设置为1。
零标志Z
- 当运算产生的结果为0时,该标志会被设置为1。
符号标志S
- 当运算产生结果为负时,该标志会被设置为1。
标志进位表示C
- 无符号运算时,在超过最大数值时,该标志位被设置为1。