段寄存器

段寄存器

  • 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)自定义字

你可能感兴趣的:(段寄存器)