yale_OS(3)——Intel IA32架构

简单介绍Intel IA32 PC架构

Intel使用IA32来代表Pentium处理器族,以区别64bit的架构。

1.模式

IA32处理器有三种操作模式

实模式:当PC上电或复位时,处理器处于这种模式,此时可以使用一条简单的指令转换到保护模式

保护模式:对于现代操作系统来说,这是一种首选的模式,该模式支持虚拟内存寻址以及支持多程序环境和保护机制。

系统管理模式:


也有一种叫虚拟8086模式,该模式用于在保护的,多任务环境下允许处理器执行8086的代码软件。

2.寄存器集

有三种类型的寄存器:通用数据寄存器,段寄存器以及状态和控制寄存器,如下图所示,

yale_OS(3)——Intel IA32架构_第1张图片

8个通用数据寄存器(General-Purpose registers)

6个段寄存器(Segments registers),用来保存16bit的段选择子,

EFLAGS寄存器:32bit的寄存器包含一组状态标志,控制标志和系统标志,下图显示了EFLAGS寄存器中各bit位的功能。

Function EFLAG Register bit or bits
ID Flag (ID) 21 (system)
Virtual Interrupt Pending (VIP) 20 (system)
Virtual Interrupt Flag (VIF) 19 (system)
Alignment check (AC) 18 (system)
Virtual 8086 Mode (VM) 17 (system)
Resume Flag (RF) 16 (system)
Nested Task (NT) 14 (system)
I/O Privilege Level (IOPL) 13 to 12 (system)
Overflow Flag (OF) 11 (system)
Direction Flag (DF) 10 (system)
Interrupt Enable Flag (IF) 9 (system)
Trap Flag (TF) 8 (system)
Sign Flag (SF) 7 (status)
Zero Flag (ZF) 6 (status)
Auxiliary Carry Flag (AF) 4 (status)
Parity Flag (PF) 2 (status)
Carry Flag (CF) 0 (status)


EIP寄存器(指令指针):


3.寻址

1)Bit和Byte顺序:IA32处理器使用“小端”作为其字节顺序,

2)数据类型:IA提供4种数据类型:abyte(8 bits), a word(16 bits), a double-word(32 bits), aquad-word(64 bits),

     注:在GUN汇编器中,一个字表示“word”,双字等同于“long”。

3)内存寻址:两种方式,统一内存模式和分段内存模式。

  • 在统一内存模式下,内存对于一个程序来说,是一个单一的,连续的地址空间,称为线性地址空间。代码,数据和程序堆栈都包含在该地址空间中,该线性地址空间是字节可寻址的,因此,内存空间大小为:0to 232 – 1 。 
  • 在分段内存模式下,内存对于一个程序来说,是一组分段的地址空间称为段,当使用这种模式时,代码,数据,堆栈被包含在各自的段中,为了在一个段中寻址一byte,程序必须使用逻辑寻址,该寻址方式包括段选择子和一偏移offset。段选择子表示需要进入的段,offset指示该段中的一byte的地址空间。

4.处理器复位

冷启动或热启动都可以复位CPU,冷启动就是系统上电,而热启动就是表示当同时按下CTRL-ALT-DEL键时,键盘BIOS将设置一特殊的标志,然后重启CPU。

当复位后,处理器进入实模式,且禁止了中断操作,关键的寄存器设置为可知的状态。例如,EFLAGS寄存器为00000002H,而内存不变,因此,当冷启动时,内存中包含很多垃圾信息。CPU跳到BIOS(Basicinput output services)来从disk中加载bootstraploader程序,然后开始执行loader。BIOS加载bootstraploader到固定的地址0:7C00,然后跳到此开始地址。


Function EFLAG Register bit or bits
ID Flag (ID) 21 (system)
Virtual Interrupt Pending (VIP) 20 (system)
Virtual Interrupt Flag (VIF) 19 (system)
Alignment check (AC) 18 (system)
Virtual 8086 Mode (VM) 17 (system)
Resume Flag (RF) 16 (system)
Nested Task (NT) 14 (system)
I/O Privilege Level (IOPL) 13 to 12 (system)
Overflow Flag (OF) 11 (system)
Direction Flag (DF) 10 (system)
Interrupt Enable Flag (IF) 9 (system)
Trap Flag (TF) 8 (system)
Sign Flag (SF) 7 (status)
Zero Flag (ZF) 6 (status)
Auxiliary Carry Flag (AF) 4 (status)
Parity Flag (PF) 2 (status)
Carry Flag (CF) 0 (status)

你可能感兴趣的:(OS,System,byte,nested,64bit,alignment)