段寄存器
8086在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址
段地址在8086的段寄存器中存放
-
8086有4个段寄存器:CS、DS、SS、ES、当CPU需要访问内存时由4个段寄存器提供内存单元的段地址
- CS (Code Segment): 代码段寄存器
- DS (Data Segment ): 数据段寄存器
- SS (Stack Segment): 堆栈段寄存器
- ES (Extra Segment ): 附加段寄存器
CS和IP
- CS为代码段寄存器,IP为指令指针寄存器,它们指示了CPU当前要读取指令的地址
- 任意时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出执行的指令
CPU通用寄存器
有8个寄存器,可以分为2组,一组是数据寄存器(4个)另一组是指针寄存器及变址寄存器
-
数据寄存器分为:
- 他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。这2组8位寄存器可以分别寻址,并单独使用。
- AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据。
- BH&BL=BX(base):基址寄存器,常用于地址索引
- CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
- DH&DL=DX(data):数据寄存器,常用于数据传递。
-
另一组是指针寄存器和变址寄存器,包括:
- 这4个16位寄存器只能按16位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。
- SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置
- BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置
- SI(Source Index):源变址寄存器,可用来存放相对于DS段之源变址指针
- DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。
-
AX;BX;CX;DX
- AX称为累加器(Accumulator),是CPU中使用最多,功能最强,执行效率的寄存器.
- BX称为基地址寄存器(Base Register).
- CX称为计数寄存器(Count Register).
- DX称为数据寄存器(Data Register).
没有本质上的区别,都是通用16位寄存器.
相应的通用32位寄存器是EAX,EBX,ECX,EDX.
- 8086伪指令
- db(define byte)自定义字节
- dw(define word)自定义字