key

GCC

GCC是GNU 的C 和C++ 编译器。
GCC 能够编译三种语言:C、C++ 和Object C。
Linux 中最重要的软件开发工具是GCC


GDT


32位CPU有全局描述符表(GDT)与局部描述符表(LDT)
32位CPU的段寄存器还是16位的

实模式和保护模式

在32位的CPU中,就有两种工作模式,一种是16位的模式,称之为实模式;另一种是32位的模式,称之为保护模式(CR0成为1

在32位的CPU中,内存管理有分段与分页两种模式,分页主要用于实现虚拟内存
32位CPU有全局描述符表(GDT)与局部描述符表(LDT)之分。全局描述符表就指此表可被所有的程序访问。
在32位的CPU中,段寄存器并不是表示段的基址,而是表示一个指向描述符表的索引,用来指出此程序用到的段的描述符在描述符表的位置。然后,访问此描述符表取出描述符,由此才得到有关段的属性信息。32位CPU的段寄存器器还是16位的,不过,它用13位来作段描述符表的索引,因此,我们可以定义的最大段数为2^13=8192个。
在32位的保护模式下,内存是通过段描述符表来访问的,因此,当我们转到32位模式之前,我们需要创建好段与段描述符表。
 
段寄存器

段寄存器都是16位的
CS--Code Segment           代码段寄存器
DS--Data  Segment           数据段寄存器
SS--Stack Segment           堆栈段寄存器
ES--Extend Segment         附加段寄存器
FS--数据段寄存器
GS--数据段寄存器


FS段寄存器设成可访问4GB内存的基址和界限



标志寄存器

标志寄存器在8086中有一个16位用于反映处理器的状态和运算结果的某些特征。其中,包括9个标志位,如图2.3所示。


(1)运算结果标志--主要用于反映处理器的状态和运算结果特征

CF--Carry Flags             进位标志

ZF--Zero Flag               零标志

SF--Sign Flag               符号标志

OF--Over Flag               溢出标志

PF--Parity Flag             奇偶标志

AF--Auxiliary Carry Flag    辅助进位标志


(2)
状态控制标志--它控制着处理器的操作,要通过专门的指令才能使状态控制标志发生变化

DF--Direction Flag          方向标志
IF--Interrupt Flag          中断允许标志
TF--Trap Flag               追踪标志


Windows CE是一个32位的操作系统,所以其虚拟内存的大小是4GB(2的32次方)。Windows CE把这4GB虚拟内存空间分为低地址2GB和高地址2GB。应用程序使用的地址空间是低地址2GB,高地址2GB专供Windows CE内核使用。

你可能感兴趣的:(key)