intel80386程序员参考手册(第十章)

intel80386程序员参考手册(第十章)

ID:32658011

大小:81.70 KB

页数:15页

时间:2019-02-14

intel80386程序员参考手册(第十章)_第1页
intel80386程序员参考手册(第十章)_第2页
intel80386程序员参考手册(第十章)_第3页
intel80386程序员参考手册(第十章)_第4页
intel80386程序员参考手册(第十章)_第5页
资源描述:

《intel80386程序员参考手册(第十章)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、INTEL80383程序员参考手册第十章初始化当RESET引脚有信号后,80386的某些寄存器被设置为预定义值。这些预定义值对于执行引导程序来说已经足够了,但是为了利用处理器的所有特性,软件必须做一些额外的初始化工作。10.1复位后的处理器状态EAX的内容取决于上电自检的结果。自检由复位结束后外部声明BUSY#来决定。如果自检通过,EAX为零。非零值表示80386的某些单元出错。如果不耍求自检,则EAX的值未定义。复位后,DX包含部件标识符和版本号,如图10—1所示。DH为3,表示803860DL包含一个唯一的代表版本等级的标识符。控制寄存器0(CR0)

2、中的值如图10-2所示。如果配置了(取决于上电复位后ERROR#引脚的状态)80387,CR0的ET位被置位。如果ET被复位,则说明配置了80287或者没有协处理器。对于后面的两种情况,需要在软件中做测试加以区分。其他寄存器和标志位设置如下:EFLAGS=00000002HIP=0000FFF0HCSselector=000HDSselector=0000HESselector=0000HSSselector=0000HFSselector=0000HGSselector=0000HIDTR:base=0所有没有提到的寄存器为未定义。这些设置暗示处理器开

3、始了实地址模式,中断被关闭。Figure10・l.ContentsofEDXafterRESETEDXREGISTER23157Figure10・2・InitialContentsofCROCONTROLREGISTERZERO31231574310P(;1UNDEFINED1ETTSEMMPPE0-PAGINGDISABLED*-INDICATESPRESENCEOF803870-NOTASKSWITCH0-DONOTMONITORCOPROCESSOR0・COPROCESSORNOTPRESENT0-PROTECTIONNOTENABLED(REAL

4、ADDRESSMODE)10.2实地址模式的软件初始化在实地址模式下,为了获得该模式下的所有特性,一些结构必须被初始化。10.2.1堆栈在堆栈段寄存器装载之前,任何使用堆栈的指令都不能执行。ss必须指向内存中的某个区域。10.2.2中断表小断在80386的初始化状态为不可用状态;然而,当异常或不可屏蔽屮断(NMI)发生时,处理器仍然会试图访问中断表。初始化软件应该执行一下某个动作:•把1DTR中的上限值改为零。这将导致在有异常或不可屏蔽中断发生的时候导致宕机。(如何用外部信号宕机参考80386硬件手册。)•将异常或不可屏蔽中断可能用到的中断表中的所有项指

5、向合法的中断处理函数。•将IDTR指向合法的中断表。10.2.3第一条指令上电复位后,为了取指令,地址线A{31-20}被自动置位。这样,加上CS:IP的初始值,导致指令的执行从地址FFFFFFF0开始。近程(段间)控制转移指令可以被用來访问其他上部64K字节的地址。第一个远程(段间)指令JMP或CALL导致A{31-20}被拉低,80386继续执行低位的1M物理内存中的指令。这种地址线A{3l-20}的自动置位操作使得系统设计人员能够利用地址空间的末端来初始化系统。10.3切换到保护模式设置CR0的MSW的PE位导致80386始保护模式。当前特权级(C

6、PL)开始时为零。段寄存器指向的地址和实地址模式下的线性地址相同(实地址模式下,线性地址就是物理地址)。在设置了PE标志位之后,初始化代码必须执行JMP指令来刷新处理器的指令预取序列。80386在使用指令前要取解码指令和地址;然而,在进入保护模式后,预取的指令信息(屈于实地址模式的)将不在有效。JMP强制处理器丢弃非法的指令信息。10.4保护模式的软件初始化大多数保护模式需要的初始化操作可以在切换到保护模式之前或之后执行。如果在保护模式下完成,初始化过程不能使用还没有初始化的保护模式下的特性。10.4.1中断描述符表IDTR可以在实地址模式或保护模式下载

7、入。然而,在保护模式下的中断表格式不同于实地址模式。同时改表保护模式和实地址模式的中断表格式是不可能的;因此,不可避免的,在某一时刻选择了中断表,将会是错误的格式。这时候如果有异常,则结果是不可预料的。为了避免这种不可知性,应该关闭屮断,直到在保护模式下设置好了屮断处理函数,并且创建了合法的IDT。10.4.2堆栈ss寄存器可以在实地址模式或保护模式下载入。如果在实地址模式下载入,在转入保护模式后SS继续指向相同的线性基地址。10.4.3全局描述符表在保护模式下段寄存器被改变之前,GDT寄存器必须指向合法的GDToGDT和GDTR的初始化可以在实地址模式

8、下完成。GDT(LDTs也是一样)要驻留在内存,因为处理器要修改描述符的访问权限

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。