80386 寄存器

80386:
;=================================================
80386共有34个寄存器,可分为七类,它们分别是:
通用寄存器
段寄存器
指令指针和标志寄存器
系统地址寄存器
控制寄存器
调试寄存器
测试寄存器
;=================================================
   A1:General Register(通用寄存器)
    EAX,EBX,ECX,EDX,ESI,EDI,ESP,EBP,
   它们的低16位就是8086的
   AX,BX,CX,DX,SI,DI,SP,BP
   ;-------------------------
     EAX:累加器
     EBX:基址寄存器
     ECX:计数器
     EDX:数据寄存器
     ESI:源地址指针寄存器
     EDI:目的地址指针寄存器
     EBP:基址指针寄存器
     ESP:堆栈指针寄存器
     ;------------------------
   这些寄存器可将低16位单独存取
   也就是8086的AX,BX,CX,DX,SI,DI,SP,BP
   它们的高16位不受影响
   可单独存取AH,AL,BH,BL,CH,CL,DH,DL
 
;=================================================
     A2:Segment Register(段寄存器)
     80386增加了两个段FS,GS
     这些段寄存器都是16位的
     ;------------------------
     CS:代码段(Code Segment)
     DS:数据段(Data Segment)
     ES:附加数据段(Extra Segment)
     SS:堆栈段(Stack Segment)
     FS:附加段
     GS:附加段
     ;------------------------
;=================================================
     A3:Instruction Pointer(指令指针寄存器)
     80386的指令指针EIP是一个32位寄存器,是从8086的IP扩充而来。
    
;-------------------------------------------------
     Flag Register(标志寄存器)
     80386的标志寄存器EFLAGS也是一个32位寄存器,其中只使用了15位。
     32位标志寄存器中,除保留8088/8086CPU的9个标志外,另新增加了4个标志
  
     a.IOPL(I/O Privilege Level),I/O特权级字段,
     它的宽度为2bit,它指定了I/O指令的特权级。
     如果当前的特权级别在数值上小于或等于IOPL,
     那么I/O指令可执行。否则,将发生一个保护性异常。
    
     b.NT(Nested Task):嵌套任务(Nested Task,位14)。
     若NT=1,当前执行的任务嵌套于另一任务中
     执行完该任务后,要返回到原来的任务中去;
     否则NT=0。这个标志最早出现在80286中。
    
     c.RF(Restart Flag):重启标志,它的宽度是1位。
     它主要控制是否接受调试故障。RF=0接受,RF=1忽略。
     如果你的程序每一条指令都被成功执行,那么RF会被清0。
     而当接受到一个非调试故障时,处理器置RF=1。
    
     d.VM(Virtual Machine):虚拟8086模式
     (用软件来模拟8086的模式,所以也称虚拟机)。
     VM=0,处理器工作在一般的保护模式下;
     VM=1,工作在V8086模式下。
    
     其它16个标志位的含义和8086一样
     e.CF(Carry Flag):进位标志位,由CLC,STC两标志位来控制
     f.PF(Parity Flag):奇偶标志位
     g.AF(Assistant Flag):辅助进位标志位 
     h.ZF(Zero Flag):零标志位
     i.SF(Singal Flag):符号标志位
     j.IF(Interrupt Flag):中断允许标志位,由CLI,STI两条指令来控制
     k.DF(Direction Flag):向量标志位,由CLD,STD两条指令来控制
     l.OF(Overflow Flag):溢出标志位。
;=================================================
   A4:System Address Register(系统地址寄存器)
     80386有4个系统地址寄存器,用来:
     1.存储操作系统需要的保护信息和地址转换表信息;
     2.定义目前正在执行任务的环境;
     3.地址空间和中断向量空间。
   ;------------------------
     GDTR:48位全局描述符表寄存器
     用于保存全局描述符表的32位基地址和全局描述符表的16位界限
     (全局描述符表最大为216字节,共216/8=8K个全局描述符)。

     IDTR:48位中断描述符表寄存器
     用于保存中断描述符表的32位基地址和中断描述符表的16位界限
     (中断描述符表最大为216字节,共216/8=8K个中断描述符)。

     LDTR:16位局部描述符表寄存器
     用于保存局部描述符表的选择符。
     一旦16位的选择符放入LDTR,
     CPU会自动将选择符所指定的局部描述符
     装入64位的局部描述符寄存器中。

     TR:16位任务状态寄存器
     用于保存任务状态段(TSS)的16位选择符。
     与LDTR类似,一旦16位的选择符放入TR,
     CPU会自动将该选择符所指定的任务描述符
     装入64位的任务描述符寄存器中。
   ;------------------------
     LDTR和TR寄存器是由16位选择字段和64位描述符寄存器组成。
     用来指定局部描述符表和任务状态段TSS在物理存储器中的位置和大小。
     64位描述符寄存器是自动装入的,程序员不可见。
     LDTR与TR只能在保护方式下使用,程序只能访问16位选择符寄存器。
;=================================================
   A5:Control Register(控制寄存器)
     80386有4个32位控制寄存器(CR0、CR1、CR2和CR3)。
     它们的作用是保存全局性的机器状态。
     CR0的低16位称为机器状态字MSW。
   ;------------------------
     PE:保护允许位。
     进入保护方式时PE=1。除复位外,不能被清除。实方式时PE=0。

     MP:监视协处理器位。
     当协处理器工作时MP=1,否则MP=0。

     EM:仿真协处理器位。
     当MP=0,且EM=1时,表示要用软件来仿真协处理器功能。

     TS:任务转换位。
     当两任务切换时,使TS=1,此时不允许协处理器工作;
     当两任务之间切换完成后,TS=0。

     ET:协处理器类型位。
     系统配接80387时ET=1,配接80287时ET=0。

     PG:页式管理允许位。
     PG=1表示启用芯片内部的页式管理系统,否则PG=0。
  
     CR1:由Intel公司保留
     CR2:存放引起页故障的线性地址
     CR3存放当前任务的页目录基地址
;=================================================
    A6:Debug Register(调试寄存器)
     80386设有8个32位调试寄存器DR0~DR7,它们为调试提供了硬件支持。
     ;------------------------
     DR0~DR3:4个保存线性断点地址的寄存器
    
     DR4、DR5:备用寄存器
    
     DR6:调试状态寄存器
     通过该寄存器的内容可以检测异常,并允许或禁止进入异常处理程序
    
     DR7:调试控制寄存器
     用来规定断点字段的长度
     断点访问类型
     “允许”断点
     “允许”所选择的调试条件
     ;------------------------
;=================================================
     A7:Test Register(测试寄存器)
     80386设置了8个32位的测试寄存器TR0~TR7,
     其中TR0~TR5由Intel公司保留,用户只能访问TR6、TR7。
     它们用于控制对TLB中的RAM和CAM相联存储器的测试。
     TR6是测试控制寄存器,TR7是测试状态寄存器,保存测试结果的状态。
;=================================================

相关资料:

 

 

 http://mcit.xjtu.edu.cn/wlkj/wykj/ch2/ch2_4_1.htm

推荐-x86 instruction listings:

http://en.wikipedia.org/wiki/X86_instruction_listings

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值