概述
目录标题
- 1. 通用寄存器
- 数据寄存器
- AX
- BX
- CX
- DX
- 指针寄存器
- SP
- BP
- SI
- DI
- 2. 专用寄存器
- IP
- SP
- FLAGS
- 条件标志
- 控制标志
- 系统标志
- 3. 段寄存器
1. 通用寄存器
寄存器可以分为程序可见的寄存器和程序不可见的寄存器两大类。
程序可见的寄存器可以分为以下三类:
- 通用寄存器
- 专用寄存器
- 段寄存器
数据寄存器
AX、BX、CX、DX可称为数据寄存器,用来暂时存放计算过程中所用到的操作数。它们是16位,但也可以按字节访问,比如AH(高位字节)和AL(低位字节)。
AX
(accumulator),作为累加器用,所以是算术运算的主要寄存器。
BX
(base),在计算存储器地址时,常用作基址寄存器。
CX
(count),常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器。
DX
(data),一般在作双字长运算时把DX和AX组合在一起存放一个双字长数,DX用来存放高位字。
指针寄存器
可以存放操作数,但只能以字为单位使用。
SP
(stack pointer),堆栈指针寄存器。
BP
(base pointer),基址指针寄存器。可以和堆栈段寄存器SS联用来确定堆栈段中的某一存储单元的地址。
SI
(source index),源变址寄存器,一般与数据段寄存器DS联用,用来确定数据段中某一存储单元的地址。
DI
(destination index),目的变址寄存器,一般与数据段寄存器DS联用,用来确定数据段中某一存储单元的地址。
※SI和DI有自动增量和自动减量的功能。
在串处理指令中,SI和DI作为隐含的源变址和目的变址寄存器,此时SI和DS联用,DI和附加段寄存器ES联用,分别达到在数据段和附加段中寻址的目的。
2. 专用寄存器
IP
(instruction pointer),指令指针寄存器,它用来存放代码段中的偏移地址。
在程序运行的过程中,它始终指向下一条指令的首地址,它与段寄存器CS联用确定下一条指令的物理地址。
SP
(stack pointer),堆栈指针寄存器,存放栈顶的偏移地址,与堆栈段寄存器SS联用来确定堆栈段中栈顶的地址。
FLAGS
标志寄存器,又称为程序状态寄存器(program status word,PSW)。
条件标志
-
溢出标志
(overflow flag,OF),运算溢出时为1,否则为0。
-
符号标志
(sign flag,SF),运算结果为负时为1,否则为0。
-
零标志
(zero flag,ZF),运算结果为0时为1,否则为0。
-
进位标志
(carry flag,CF),记录运算时从最高有效位产生的进位值。有进位时为1,否则为0。
-
辅助进位标志
(auxiliary carry flag,AF),……
-
奇偶标志
(parity flag,PF),结果操作数中1的个数为偶数时为1,否则置0。
控制标志
方向标志(direction flag),在串处理指令中控制处理信息的方向用。
DF为1时,高地址到低地址,即倒着来。
DF为0时,低地址到高地址,即正着来。
系统标志
-
陷阱标志
(trap flag,TF),用于调试时的单步方式操作。
TF为1时,产生陷阱;否则不产生。
-
中断标志
(interrupt flag,IF),当其为1时,允许CPU响应中断;否则不允许。
3. 段寄存器
段寄存器也是一种专用寄存器,专用于存储器寻址,用来直接或间接存放段地址。
-
代码段
(code segment,CS),存放当前正在运行的程序。
-
数据段
(data segment,DS),存放当前运行程序所用的数据。
如果程序使用了串处理指令,则其源操作数也存放在数据段里。
-
堆栈段
(stack segment,SS)
-
附加段
(extra segment,ES),附加的数据段,作为辅助的数据区,也是串处理指令的目的操作数存放区。
最后
以上就是长情糖豆为你收集整理的汇编语言笔记03_80x86寄存器组(小甲鱼笔记总结)1. 通用寄存器2. 专用寄存器3. 段寄存器的全部内容,希望文章能够帮你解决汇编语言笔记03_80x86寄存器组(小甲鱼笔记总结)1. 通用寄存器2. 专用寄存器3. 段寄存器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复