微机原理及应用第3章2节2012sgq剖析

上传人:今*** 文档编号:106988799 上传时间:2019-10-17 格式:PPT 页数:89 大小:1.48MB
返回 下载 相关 举报
微机原理及应用第3章2节2012sgq剖析_第1页
第1页 / 共89页
微机原理及应用第3章2节2012sgq剖析_第2页
第2页 / 共89页
微机原理及应用第3章2节2012sgq剖析_第3页
第3页 / 共89页
微机原理及应用第3章2节2012sgq剖析_第4页
第4页 / 共89页
微机原理及应用第3章2节2012sgq剖析_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《微机原理及应用第3章2节2012sgq剖析》由会员分享,可在线阅读,更多相关《微机原理及应用第3章2节2012sgq剖析(89页珍藏版)》请在金锄头文库上搜索。

1、1,复习上次课内容,1、CPU从功能上如何划分的。 2、各寄存器的名称、用法、特定用途。,2,时间:20129月5日(第二周周三) 本次课内容: 1、CPU功能。 2、8086的功能结构。 3、8086寄存器结构。 4、标志寄存器。 5、8086的存储器组织。 6、 8086的段结构。 本次课重点: 1、标志位寄存器各个标志位的含义。 2、物理地址、逻辑地址。 3、堆栈。,3,第3章 80x86微处理器,3.1 80x86微处理器简介 3.2 8086/8088微处理器 3.3 8086/8088存储器和I/O组织,4,80x86微处理器是美国Intel 公司生产的系列微处理器。该公司成立于1

2、968年,1969年就设计了4位的4004 芯片,1973年开发出8位的8080芯片,1978年正式推出16位的8086微处理器芯片。,3.1 微处理器简介,5,表3.1 80x86系列微处理器概况,3.1 微处理器简介,6,表3.1 80x86系列微处理器概况,3.1 微处理器简介,7,8086是Intel系列的16位微处理器,芯片上有2.9万个晶体管,用单一的+5V电源,时钟频率为5MHz10MHz。 8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB。 220 =1k1k=1MB。 8088有8位数据线,与地址线A0-A7兼用;,8,微

3、处理器的内部结构,从应用角度(不是从内部工作原理)展开 典型8位微处理器的基本结构 8088/8086的功能结构 8088/8086的寄存器结构 8088/8086的存储器结构 为学习指令系统打好基础,9,3.2 8086/8088的功能结构,8086CPU功能结构分成两部分: 总线接口部件BIU: 总线接口单元BIU,负责控制存贮器读写。 执行部件EU: 执行单元EU从指令队列中取出指令并执行。 特点: 取指部分和执行指令部分分开进行,提高了速度。,10,外部总线,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,执行部分控制电路,1 2 3 4 5 6,ALU,标志寄存器,AH

4、 AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用 寄存 器,地址加法器,指令队列缓冲器,执行部件 (EU),总线接口部件 (BIU),16位,20位,16位,8位,11,执行部件,总线接口部件,12,13,8088的指令执行过程,14,1、总线接口部件BIU(Bus Interface Unit),组成:16位段寄存器,指令指针,20位地址加法器,总线控制逻辑,6字节指令队列。,作用:负责从内存指定单元中取出指令,送入指令流队列中排队;取出指令所需的操作数送EU单元去执行。,工作过程:由段寄存器与IP形成20位物理地址送地址总线,由总线控制电路发出存储器“读”信号,按给

5、定的地址从存储器中取出指令,送到指令队列中等待执行。,*当指令队列有2个或2个以上的字节空余时,BIU自动将指令取到指令队列中。若遇到转移指令等,则将指令队列清空,BIU重新取新地址中的指令代码,送入指令队列。,*指令指针IP由BIU自动修改,IP总是指向下一条将要执行指令的地址。,15,2、指令执行部件EU(Exection Unit),组成:通用寄存器,标志寄存器,ALU,EU控制系统等。,作用:负责指令的执行,完成指令的操作。,工作过程:从队列中取得指令,进行译码,根据指令要求向EU内部各部件发出控制命令,完成执行指令的功能。若执行指令需要访问存储器或I/O端口,则EU将操作数的偏移地址

6、送给BIU,由BIU取得操作数送给EU。,16,3、 8086CPU结构的特点: 减少了CPU为取指令而等待的时间,提高了CPU的运行速度。,17,3.3 Intel 8088/8086寄存器结构,AH,AL,CH,CL,BH,BL,DH,DL,SP,BP,SI,DI,PSW(FLAG),IP,CS,DS,SS,ES,18,8088/8086寄存器名称与功能,AX-累加器,通用寄存器 BX-基址(基数)寄存器,通用寄存器 CX-计数寄存器,通用寄存器 DX-数据寄存器,通用寄存器 SP-堆栈指针 BP-基址(基数)指针 SI-源变址指针 DI-目的变址指针 CS、DS、SS、ES-段寄存器 I

7、P-指令指针(Instruction Pointer) PSW-状态标志(Program State Word),19,1、数据寄存器,包括4个寄存器AX,BX,CX,DX。这些寄存器用以暂时保存计算过程中所得到的操作数及结果。即能处理16位数,也能处理8位数,当处理8位数时,这4个16位寄存器作为8个8位寄存器AH,AL,BH,BL,CH,CL,DH,DL来使用。 每个寄存器又有它们各自的专用目的。 AX累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等; BX基址寄存器,常用做存放存储器地址; CX计数器,作为循环和串操作等指令中的隐含计数器; DX数据寄存器,常用来存放双字长数

8、据的高16位,或存放外设端口地址。,20,数据寄存器的特定用法,字乘法,字除法运算中,将DX,AX组合成一个双字长数,DX用来存放高16位数。,21,例如:在指令中指明作用 ADD AX,BX MOV BL,AL 例如:在指令中特定作用 SHL AX, CL 例如:在指令中隐含作用 MUL BL (隐含使用AL、AX),22,2、变址寄存器,这些寄存器在运算过程中可以用来存放操作数(只能以字为单位),也在段内寻址时提供偏移地址 。 SI是源变址寄存器 DI是目的变址寄存器 串操作类指令中,SI和DI具有特别的功能。SI,DI一般与段寄存器DS、ES联用,以确定数据段中某一存储单元的地址,SI,

9、DI具有自动增量和自动减量的功能,这一点使在串操作指令中用做变址非常方便,SI作为隐含的源变址DS联用,DI作为隐含的目的变址和ES连用,从而达到在数据段和附加段中寻址的目的。,23,例如:指令中作用变址寄存器 MOV AX,10HSI ADD DI, 1234H MOV SI, 1000H MOV SI, 1000H,24,3、指针寄存器,指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器,指示栈顶的偏移地址 SP不能再用于其他目的,具有专用目的 BP为基址指针寄存器,表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址,25,例如:指令中作用

10、指针寄存器 PUSH AX ;执行后SP的值SP2 ADD BP , 1234H ; 数据相加的结果寄存在堆栈段,26,4、 段寄存器,DS 数据段寄存器 (Data Segment) CS 代码段寄存器 (Code Segment) ES 附加段寄存器 (Extra Segment) SS 堆栈段寄存器 (Stack Segment),27,段寄存器就是用来存放段地址的,CS段寄存器用来存放当前正在运行的程序; DS段寄存器用来存放当前运行的数据,若程序中使用了段操作指令,源操作数也存放在数据段中; SS段寄存器规定了堆栈所处的区域; ES段寄存器用来存放辅助数据,因为ES是一个附加的数据段

11、,在执行串操作指令时,目的操作数也一般存放在ES段中。,28,5、指令指针IP,指令指针寄存器IP,指示代码段中指令的偏移地址 它与代码段寄存器CS联用,确定下一条指令的物理地址 计算机通过CS : IP寄存器来控制指令序列的执行流程 IP寄存器是一个专用寄存器,29,6、 标志寄存器,标志(Flag)用于反映指令执行结果或控制指令执行形式 8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器),程序设计需要利用标志的状态,30,标志的分类,状态标志: CF ZF SF PF OF AF 控制标志: DF IF TF,31,PSW(FLAG)有关位定义,C进位

12、位 P奇偶标志(结果低8位中1的个数) A半进位标志(低4位向高4位的进位或借位) Z结果为零标志 S结果符号位 T跟踪标志(单步运行) I中断允许标志 D方向标志 O溢出标志,O,D,I,T,S,Z,A,P,C,32,进位标志CF(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即CF = 1;否则CF = 0。,49H + 6DH0B6H, 01001001B 01101101B 010110110B 没有进位:CF = 0,0BBH + 6AH(1)25H, 10111011B 01101010B 100100101B 有进位:CF = 1,3

13、3,零标志ZF(Zero Flag),若运算结果为0,则ZF = 1; 否则ZF = 0,49H + 6DHB6H, 01001001B 01101101B 10110110B 结果不是零:ZF = 0,注意: ZF为1表示的结果是0,75H + 8BH(1)00H, 01110101B 10001011B 100000000B 结果是零:ZF = 1,CF1,34,符号标志SF(Sign Flag),运算结果最高位为1,则SF = 1;否则SF = 0,带符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态,字节操作时,D7 =0, SF=0,结果为正; 字节操作时,D7

14、=1, SF=1,结果为负; 字操作时,D15 =0, SF=0,结果为正; 字操作时,D15 =1, SF=1,结果为负。,最高位符号位SF,35,奇偶标志PF(Parity Flag),当运算结果最低字节中“1”的个数为零或偶数时,PF = 1;否则PF = 0,3AH + 7CHB6H 00111010B 01111100B 10110110B,PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作,结果中有5个1,是奇个数:PF = 0。 CF=0,SF=1,ZF0,36,溢出标志OF(Overflow Flag),若算术运算的结果有溢出, 则OF1;否则 OF0,49

15、H + 6DH B6H, 产生溢出:OF = 1 75H + 8BH (1)26H, 没有溢出:OF = 0,CF=1,37,什么是溢出?,处理器内部以补码表示有符号数 8位表达的整数范围是:-128+127 16位表达的范围是:-32768+32767 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确,49H6DHB6H,就是73109182, 已经超出128127范围,产生溢出,故OF1; 另一方面,补码B6H表达真值是-74, 显然运算结果也不正确,38,溢出和进位,溢出标志OF和进位标志CF是两个意义不同的标志 进位标志表示无符号数运算结果是否超出范围,运算

16、结果仍然正确; 溢出标志表示带符号数运算结果是否超出范围,运算结果已经不正确。,39,辅助进位标志AF(Auxiliary Carry Flag),49H + 6DH0B6H 01001001B +01101101B 10110110B D3 向上有进位:AF = 1,运算时D3位(低半字节)有进位或借位时,AF = 1;否则AF = 0。,这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,40,例1、将两数相加,即0100 1100B加 0110 0101B,CF、PF、AF、ZF、SF、OF各为何值?,0100 1100B + 0110 0101B 1011 0001B CF=0,PF=1,AF=1,ZF=0,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号