CPU执行第一条指令时情形.docVIP

  • 27
  • 0
  • 约3.54千字
  • 约 3页
  • 2015-07-29 发布于重庆
  • 举报
CPU执行第一条指令时情形.doc

CPU执行第一条指令时情形 cpu执行的第一条指令不在内存中,众所周知,内存是由ram组成的 ,而ram不断电,可以保存信息,一旦断电,ram中的信息将会丢失,所以cpu要执行的第一条指令被固化在rom中以前8086年代,由于内存是1M的,所以rom被编址在1M的最后的64K中,所以它的段地址是0xFFFF0,这样就不至于不ram分成两个部分,就是将cs设置成0XF000,cpu执行的BIOS第一条指令的地址是:0XF000:FFF0H,这样使得固件的地址在寻址空间靠后的位置16个字节处,这是一条跳转指令,向前调转到一个地方,然后开始执行,jmp F000 : XXXX中的偏移XXXX来把握,如果使用得多,XXXX就小,使用得少,XXXX就大,这样使启动代码尽量靠后,而不浪费多余的地址空间,由于地址空间安排在最后,也不会把整个地址空间隔离成两段。 而出现80386以后,内存已经大于1M,所以 如果把冷启动固件编址在F000h段内,就会把整个地址空间隔离成不连续的两段,一段是F000h以前的地址,一段是1M以后的地址,这很不方便。Intel采用的办法是,还是默认将执行启动代码的BIOS ROM编址在系统可寻址空间的最后(如32位x86机的话,这段地址就位于4GB的最后一个64K内),在系统复位时,CPU进入实模式,并将CS寄存器设置成F000h,而将它的shadow register

文档评论(0)

1亿VIP精品文档

相关文档