
微机原理-IA32微处理器的功能结构.ppt
28页•2003微型计算机No8:•CPU技术内幕之基本计算概念篇•2003微型计算机No9:•CPU逻辑结构简述推荐文章计算机体系结构 = computer architecture (计算机系统结构)计算机体系结构是程序员所看到的系统的一些属性: 概念性的结构和功能上的表现,这些属性既不同于数 据流和控制的组织,也不同于逻辑设计和物理实现Amdahl,1964计算机体系结构是连接硬件和软件的一门学科,它研 究的内容不但涉及计算机硬件,也涉及计算机软件2.2 IA-32微处理器的功能结构 计算机体系结构的含义“系统结构” 是指概念性结构和功能特性(功能模块), 就相当于动物的器官组成及其功能特性,如鸡有胃,胃 可以消化食物至于鸡的胃是什么形状的、鸡的胃部由 什么组成就不是“系统结构”研究的问题了,而是“系统 组成”研究的问题所谓“系统组成”就是在逻辑上如何 实现这种功能(功能模块的组成器件),比如“上帝”给 鸡设计了一个一定大小的胃,这个胃的功能是消化食物 ,那消化系统的逻辑实现,就是要通过鸡喙吃进食物和 砂石,再通过胃的蠕动、依靠砂石的研磨来消化食物而 计算机物理实现,主要着眼于器件技术和微组装技术( 器件的物理实现)。
拿上面的例子来说,这个胃由哪些 组织组成几条肌肉和神经来促使它运动就是“鸡实现“ 计算机体系结构(应用)、组成(设计) 及物理实现(制造)2.2.1 Intel8086微处理器的功能结构§总线接口单元BIU 由段寄存器(CS、DS、SS、ES)、指令指针 寄存器(IP)、地址加法器、内部寄存器、指 令队列缓冲器及I/O控制逻辑等部分组成 §执行单元部件EU由通用寄存器组、专用寄存器组、算术逻辑 运算单元(ALU)、标志寄存器(FR)和内部 控制逻辑组成 执行单元AH ALBH BLCLCHDH DLSPBPDISI通 用 寄 存 器CS DSSSESI P内部暂存器总线控制逻辑1 234AXBXCXDX数据总线运运 算 寄 存器A L U标志寄存器外部总线8088 8位8086 16位指令对列8086为 6 字节16 位执行控制电路总线接口单元地址加法器20 位16 位段寄存器指令指针(EU)(BIU)每条指令的执行有取指、译码和执行 早期计算机指令执行过程:指令花费时间=取指+指令执行8088CPU指令执行过程:指令的重叠操作指令花费时间=指令执行2.2.2 80386的功能结构•存储器组织拥有32位数据线和地址线,可以寻址4GB的物 理地址;•内部执行环境(寄存器组)首次将32位的寄存器组引入80x86体系的微处 理器中, 32位的低半部分向下兼容;段寄存 器仍为16位,段空间为4GB;•操作模式实地址;保护模式;虚拟8086模式;80386的主要特点2.3 IA-32结构微处理器的执行环境220=1MB, 地址由00000-FFFFF(H)编码若存放的信息是字节,则按顺序存放 若存放的信息是字,则将字的低位字节 存放在低地址,高位字节存放在高地址 若存放的信息是双字,则将双字的低位 字存放在低地址,高位字存放在高地址2.3.2 基本执行环境(1)存储器地址空间(8086)(2)基本程序执行寄存器实地址方式存储器组织v四个不同的段:代码段存放机器指令;数据段 存放数据信息;堆栈段供堆栈使用;附加段通 常用来存放附加数据;v8086有四个16位段寄存器:cs代码段; ds 数据段; ss堆栈段; es附加段。
v地址的标准写法为:“段:偏移量”注意由于 位移可以重叠,所以给出的“段:偏移量”不是 唯一的如下列地址均指向同一内存单元:0000:0123 0002:0103 0008:00A30010:0023 0012:0003•段可以位于内存中的任何位置,段的首地址必须能被 16整除;•若段寄存器存放的是10H,而偏移量是100H,下列步 骤说明实际物理地址计算过程:段寄存器: 0000 0000 0001 0000 (10H)左偏四位:0000 0000 0001 0000偏移量: 0000 0001 0000 0000 (100H)段加偏移量 0000 0000 0010 0000 0000 (200H )存储器物理地址的形成ØØ逻辑地址逻辑地址 是程序中使用的地址,它由段基址和段内偏 移值所组成,段基址与段内偏移值都为16位的二进制 数 ØØ物理地址物理地址 也叫实际地址或绝对地址,是CPU访问存储 器时实际使用的地址,为20位地址 物理地址=段基址×16 +段内偏移地址 【例】各独立段的分配情况示例。
v设CS=B000H、DS=1CDEH、 SS=4200H、ES=0150H,它们分别为代 码段、数据段、堆栈段和附加段的段首 址自每个段首址开始,各段均占 64KB的范围,各段之间互不重叠例】各段相互重叠情况示例设CS=0200H、DS=0400H、SS=0480H, 这样代码段、数据段和堆栈段的物理首地 址分别为02000H、04000H和04800H其 中代码段占8KB地址空间,数据段占2KB ,堆栈段占256B,SP=0100H如图所示 •(1)指令指针寄存器EIP•(2)段寄存器•(3)通用寄存器•(4)程序状态和控制寄存器2.3.4 基本程序执行寄存 器•0•15•16•31•0•15•0•15•16•31•7•8•AL •BL•CL •DL•AX •BX•CX •DX•AH •BH•CH •DH•EAX •EBX•ECX •EDX•EIP•CS •DS •SS •ES •FS•GS•SP•BP•SI •DI•ESP•EBP•ESI •EDI•FLAGSEFLAGSEAX 累加器寄存器:存放操作数和结果EBX 基址寄存器:在DS段中的数据指针;存放操作数 ECX 计数寄存器:串和循环操作的计数器EDX 数据寄存器:I/O指针1. 通用寄存器 基本寄存器:在程序执行时暂时保存中间结果;在进行算术运算和逻辑运算时,通用寄存器任何一个都可以作为源操作数或目的操作数。
•指针和变址寄存器ESI 串操作的源指针EDI 串操作的目标指针ESP 堆栈指针EBP 堆栈上数据指针通用寄存器的特殊用途和隐含性质 6个段寄存器,保存16位段基址: CS 代码段 SS 堆栈段 DS 数据段 ES 附加段 FS 数据段F GS数据段G2. 段寄存器和存储器分段指向数据段3、EFLAGS寄存器(1)状态标志位 •CF:进位标志位,当执行一个加法运算指令使最高位 产生进位时,或者执行一个减法运算指令使最高位引起 借位,则CF=1;否则CF=0 •PF:奇偶标志位,若运算结果的低8位中所含1的个数 为偶数,则PF=1;否则PF=0 •AF:辅助进位标志位当加法运算时,如果第三位往 第四位有进位,或者当减法运算时,第三位从第四位有 借位,则AF=1;否则AF=0 •ZF:零标志位,当运算结果为0时,ZF=1;否则ZF=0 •SF:符号标志位,当运算结果的最高位为1时,SF=1 ; •OF:溢出标志位,在算术运算中,带符号数的运算结 果超出了8位(+127~-128)或者16位(+32767~- 32768)数据所能表达的范围时,则OF=1 •IF:中断允许标志位。
若IF=1,则CPU可以响应可屏 蔽中断请求;AF和OF的区别O=C CS=0C=1(2)DF标志DF:方向标志位,控制串操作指令的标志若DF=0则执行 串操作指令后,变址寄存器自动增量3)系统标志和IOPL字段1、中断允许标志I2、追踪标志T3、IOPL特权级字段条件转移指令JE / JZ JNE /JNZZFJS JNS SFJO JNO OFJPJNP PFJCXZ (CX = 0 转)JC JNC CF1、根据单个标志位的转移指令说明:指令中的字母N表示not,如果不带N说 明标志为0转移,如果带N说明标志为1转移4、指令指针8086CPU中的指令指针IP,它总是保存 下一次将要从主存中取出指令的偏移地 址,偏移地址的值为该指令到所在段段 首址的字节距离在目标程序运行时, IP的内容由微处理器硬件自动设置,程 序不能直接访问IP,但一些指令却可改 变IP的值,如转移指令、子程序调用指 令( JMP、CALL、RET、IRET )等8 8个通用寄存器个通用寄存器 : : AX , BX , CX , DXAX , BX , CX , DX , SP , BP , SI , DI , SP , BP , SI , DI 4 4个段寄存器个段寄存器 : DS , CS , SS , ES: DS , CS , SS , ES 1 1个指令指针寄存器个指令指针寄存器 : IP : IP 1 1个标志寄存器材个标志寄存器材: FR: FRFRFR的格式的格式CFCFPFPFAFAFZFZFSFSFTFTFIFIFDFDFOFOF0 01 12 23 34 45 56 67 78 89 9101011111212131314141515较验较验进位进位辅助进位辅助进位零标志零标志符号标志符号标志跟踪标志跟踪标志中断标志中断标志方向标志方向标志溢出标志溢出标志2.4 8086的寄存器。
