| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 925 人关注过本帖
标题:80386的寄存器
取消只看楼主 加入收藏
firstbobo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:106
注 册:2010-1-21
结帖率:0
收藏
 问题点数:0 回复次数:0 
80386的寄存器
80386的寄存器  

    80386的寄存器可以分为8组:通用寄存器,段寄存器,指令指针寄存器,标志寄存器,系统地址寄存器,控制寄存器,调试寄存器,测试寄存器,它们的宽度都是32位的。本篇主要介绍80386的寄存器。

    一 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位(AX,BX,CX,DX,SI,DI,SP,BP),它
们的高16位不受影响,同时和8086一样对于AX,BX,CX,DX这四个寄存器来讲,可以单独存取它们的高8位和低8位(AH,AL,BH,BL,CH,CL,DH,DL)
     
    二 Segment Register(段寄存器)
    除了8086的4个段外(CS,DS,ES,SS),80386还增加了两个段FS,GS,这些段寄存器都是16位的,它们的含义如下:
    CS:代码段(Code Segment)
    DS:数据段(Data Segment)
    ES:附加数据段(Extra Segment)
    SS:堆栈段(Stack Segment)
    FS:附加段
    GS  附加段
     
    三 Instruction Pointer(指令指针寄存器)
    EIP,它的低16位就是8086的IP,它存储的是下一条要执行指令的地址。
     
    四 Flag Register(标志寄存器)
    EFLAGS,和8086的16位标志寄存器相比,增加了4个控制位,不过这4个控制位它们在实模下不起作,这四个控制位分别是:
    (I/O Privilege Level),I/O特权级字段,它的宽度为2bit,它指定了I/O指令的特权级。如果当前的特权级别在数值上小于或等于IOPL,那么I/O指令可执行。否则,将发生一个保护性异常。     
    b.NT(Nested Task):控制中断返回指令IRET,它宽度为1位。NT=0,用堆栈中保存的值恢复EFLAGS,CS和EIP从而实现中断返回;NT=1,则通过任务切换实现中断返回。
    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):溢出标志位。  
 
搜索更多相关主题的帖子: 寄存器 
2010-02-03 23:41
快速回复:80386的寄存器
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016152 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved