版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 Intel 80 x86微处理器的结构 主要内容 8086/8088微处理器内部结构 80386微处理器的结构 Pentium微处理器的结构2021-9-242.1 Intel 8086/8088微处理器的结构一、 8086/8088的功能结构 (执行单元与总线接口单元)二、8086/8088的寄存器结构三、8086/8088的存储器组织2021-9-24一、执行单元与总线接口单元 (8086 CPU)注:8086 CPU数据总线16位,指令队列为6个字节;8088 CPU数据总线8位,指令队列为4个字节。 2021-9-24(一)总线接口单元BIU (Bus Interface Un
2、it)功能:负责与 Memory、I/O 端口传送数据。取指令时,从存储器指定地址取出指令送入指令队列排队。执行指令时,根据EU命令对指定存储器单元或I/O端口存取数据。 组成:4 个段地址寄存器(CS、DS、ES、SS)16位指令指针寄存器IP20位的地址加法器 (16d段地址+偏移地址物理地址)6字节(8086)或4字节(8088)的指令队列总线控制电路:处理器与外界总线联系的转接电路。包括三组总线:20 位地址总线, 8 位(8086)/16位(8086)双向数据总线,一组控制总线。2021-9-24(一)总线接口单元BIU (Bus Interface Unit)(cont.)指令队列
3、8086 的指令队列为6个字节,8088 的指令队列为4个字节。不论是8086还是8088都会在执行指令的同时从内存中取下一条或几条指令,取来的指令放在指令队列中,使 BIU 具有预取指令的功能,是一种先进先出(FIFO)的数据结构。2021-9-24(二)执行单元EU ( Execution Unit ) 功能 执行指令,进行全部算术逻辑运算、完成偏移地址的计算向总线接口单元BIU提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。组成:4个通用寄存器:AX、BX、CX、DX4个专用寄存器:BP、SP、SI、DI标志寄存器(PSW):9个标志位,其中6个条件标志位用于存放结
4、果状态,算术逻辑单元:16 位加法器,用于对寄存器和指令操作数进行算术或逻辑运算,EU 控制系统:接受从总线接口单元的指令队列中取来的指令代码,对其译码和向 EU 内各有关部分发出时序命令信号,协调执行指令规定的操作。2021-9-24(三)流水线工作方式8086/8088取指部分与执行部分是分开的。在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。8086/8088微处理器:BIU和EU分开,取指和执行可以重迭,大大减少了等待取指所需的时间,提高CPU的
5、利用率。取指取指取指取指取指取指取指取指得到数据得到数据等待等待执行执行执行执行执行执行执行执行2021-9-24(三)、流水线工作方式(cont.)对于8080与8085及较早的8位微处理器:程序执行由取指令和执行指令的循环来完成的,每条指令执行完后CPU必须等到下条指令取出来后才能执行。取指取指执行执行取指取指执行执行.取指取指执行执行时间坐标时间坐标2021-9-24二、8086/8088的寄存器结构AHALBHBLCHCLDHDLSPBPSIDIIPFLAGSCSDSSSES通用寄存器组累加器基址寄存器计数寄存器 数据寄存器堆栈指针 基址指针 源变址寄存器 目的变址寄存器指令指针标志寄
6、存器 代码段寄存器数据段寄存器 堆栈段寄存器附加段寄存器数据寄存器地址指针、变址寄存器控制寄存器段寄存器15 8 7 0AXBXCXDX2021-9-24二、8086/8088的寄存器结构(cont.)1、通用寄存器 :数据寄存器、地址指针寄存器、变址寄存器数据寄存器包括: AX 、BX 、CX 、DX 地址指针寄存器包括: SP 、 BP 变址寄存器包括: SI 、 DI 2、段寄存器:CS 、 SS 、 DS 、 ES3、控制寄存器 :IP 、PSW2021-9-24(一)通用寄存器(1)数据寄存器AX:(Accumulator)作为累加器。它是算术运算的主要寄存器,所有I/O指令都使用这
7、一寄存器与外部设备交换数据。BX : Base用作基址寄存器使用。在计算内存储器地址时,经常用来存放基址。CX : Count可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。DX : Data可以作为数据寄存器使用。一般在双字长乘除法运算时,把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。2021-9-24(一)通用寄存器(cont.)(2)地址指针与变址寄存器SP、BP、SI、DI 四个16位寄存器。以字为单位在运算过程中存放操作数,经常用以在段内寻址时提供偏移地址。SP(sta
8、ck pointer)堆栈指针寄存器用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际地址。BP(base pointer)基址指针寄存器可以与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。变址寄存器(SI 、 DI)SISource Index Register 源变址寄存器。DIDestination Index 目的变址寄存器。使用场合:常用于变址寻址。 一般与DS联用,用来确定数据段中某一存储单元的地址。串操作中,DS:SI寻址源操作数,ES:DI寻址目的操作数 , SI、DI具有自动增量和自动减量功能2021-9-24(二)段寄存器段寄存器: 4个16位段寄存器CS、
9、DS、SS、ES。用来识别当前可寻址的四个段,不可互换使用。CSCode Segment Register 代码段寄存器用来识别当前代码段(程序一般放在代码段)。DSData Segment Register数据段寄存器用来识别当前数据段。SSStack Segment Register堆栈段寄存器,用来识别当前堆栈段。ESExtra Segment Register附加段寄存器,用来识别当前附加段。2021-9-24(三) 控制寄存器控制寄存器:IP 、 PSWIPInstruction Pointer指令指针寄存器用来存储代码段中的偏移地址;程序运行过程中IP始终指向下一次要取出的指令偏移
10、地址。IP要与CS寄存器相配合才能形成真正的物理地址。PSW(Processor States Word Program)程序状态字寄存器, 16位寄存器。由状态标志、控制标志构成。只用了其中9位, 6位条状态标志 , 3位控制标志。2021-9-24状态标志寄存器(PSW)2021-9-24标志寄存器-状态标志位用来记录程序中运行结果的状态信息,作为后续条件转移指令的转移控制条件。状态标志位(条件码)包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。OF(Overflow Flag)溢出标志(一般指带符号数的补码溢出)OF=1:在带符号数运算过程中,结果超过了机器表示的范围
11、,称为溢出。OF=0:在带符号数运算过程中,结果未超过机器表示范围,称为无溢出。字节允许范围 -128+127,字运算范围 -32768+32767 。SF(Sign Flag)符号标志 SF=1:记录运算结果的符号为负。SF=0:记录运算结果的符号为正。ZF(Zero Flag)零标志 ZF=1:运算结果为0。ZF=0:运算结果不为0。2021-9-24标志寄存器-状态标志位CF(Carry Flag)进位标志 CF=1:记录运算时从最高有效位产生进位或借位。CF=0:记录运算时从最高有效位不产生进位/借位。 AF(Auxiliary Carry Flag)辅助进位标志AF=1:记录运算时D
12、3位(半个字节)产生进位或借位。AF=0:记录运算时D3位(半个字节)不产生进位或借位。 PF(Parity Flag)奇偶标志 PF=1: 结果操作数低8位中有偶数个1。PF=0: 结果操作数低8位中有奇数个1。用来为机器中传送信息时可能产生的误码提供检验条件。2021-9-24控制标志位对控制标志位进行设置后,对其后的操作起控制作用。控制标志位包括3位: TF、 IF 、 DF 。跟踪(陷阱)标志TF、中断标志IF 、方向标志 DF 。TF(Trap Flag)跟踪(陷阱)标志位 TF=1 ,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能
13、检查程序。TF=0, CPU正常工作,不产生陷阱。 IF(Interupt Flag)中断标志位 IF=1, 允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断和内部软中断没有影响。DF(Direction Flag)方向标志位 DF=1,每次串处理操作后使变址寄存器SI和DI减量,使串处理从高地址向低地址方向处理。 DF=0,每次串处理操作后使变址寄存器SI和DI增量, 使串处理从低地址向高地址方向处理。DF方向标志位是在串处理指令中控制处理信息的方向用的。2021-9-242021-9-19例例: :指出8086C
14、PU执行如下指令后,标志寄存器中各状态 标志位的值。 (1) MOV AX,32C5H (2) MOV AX,0E453H (1) MOV AX,32C5H (2) MOV AX,0E453H ADD AX,546AH ADD AX,0C572H ADD AX,546AH ADD AX,0C572H解解 (1) 0011001011000101 (2) 1110010001010011 + 0101010001101010 +1100010101110010 1000011100101111 1010100111000101所以, OF=1 SF=1 ZF=0 OF=0 SF=1 ZF=0 A
15、F=0 PF=0 CF=0 AF=0 PF=1 CF=1例1:执行两个数的加法,分析对标志位的影响。标志标志: : 运算结果最高位为运算结果最高位为0 0SF=0SF=0; 运算结果运算结果0 0 ZF=0ZF=0低低8 8位中位中1 1的个数为奇数个的个数为奇数个 PF=0PF=0; 最高位没有进位最高位没有进位 CF=0CF=0D3D3位向位向D4D4位无进位位无进位 AF=0AF=0;次高位向最高位没有进位次高位向最高位没有进位 ,最高位向前没有进位,最高位向前没有进位 , , OF=0OF=0。1 10 00 00 01 11 10 01 10 00 00 01 10 01 10 00
16、 00 00 01 11 10 00 01 10 00 00 00 01 11 10 00 01 1+ +0 01 11 11 11 10 01 10 01 10 01 10 01 10 01 10 2021-9-24例2:执行两个数的加法,分析对标志位的影响。标志标志: :运算结果最高位为运算结果最高位为1 1, SF=1 SF=1 ;运算结果本身不为运算结果本身不为0 0, ZF=0 ZF=0 ;最高位向前无进位,最高位向前无进位, CF=0 CF=0 次高位向最高位产生进位次高位向最高位产生进位, ,而最高位向前没有进位,而最高位向前没有进位, OF=1 OF=1 ;结果低结果低8 8位
17、含偶数个位含偶数个1 1, PF=1 PF=1 ;D3D3位向位向D4D4位有进位位有进位, AF=1 , AF=1 。 在绝大多数情况下,一次运算后并不影响所有标志,在绝大多数情况下,一次运算后并不影响所有标志, 程序也并不需要对所有的标志作全面的关注。程序也并不需要对所有的标志作全面的关注。 一般只是在某些操作后一般只是在某些操作后, ,对其中某个标志进行检测。对其中某个标志进行检测。0 01 10 01 10 00 00 00 01 11 11 10 00 01 11 10 00 01 10 00 00 01 10 01 10 01 11 10 01 10 01 10 0+ +1 11
18、10 00 00 01 10 01 11 10 00 01 11 10 00 01 1AF=1AF=1OF=1OF=2021-9-24三、8086/8088的存储器组织(一)存储器结构 (二)存储器的分段结构和物理地址的形成2021-9-24存储单元的的内容:一个存储单元有效的信息。 一个字存入存储器占有相继的二个单元: 低位字节存入低地址,高位字节存入高地址。 字单元的地址采用它的低地址来表示,可以是偶地址也可以是奇地址。 同一个地址既可以看作字节单元地址,又可看作字单元地址,需要根据使用情况确定。 例:例:字单元字单元 : :(0004H0004H)= = 1234H, 1234H, 字节
19、单元字节单元 : :(0004H0004H)= = 34H34H 34H34H12H12H1EH1EH2FH2FH0000H0000H0001H0001H0002H0002H0003H0003H0004H0004H0005H0005H0006H0006H.1234H1234H1235H1235H1236H1236H.(一)存储器结构2021-9-24(一)、存储器结构(一)、存储器结构(cont.cont.).1100 1111B1100 1111B.物理地址物理地址内容内容00000H00000H00001H00001H00002H00002H00006H00006HFFFFFHFFFFFH
20、Intel 8088管理的存储空间管理的存储空间:1.存储单元按字节编址,存储单元地址20位。2.存储器的地址空间为1M字节单元,其地址范围为00000HFFFFFH。2021-9-242021-9-25.FFFFFHFFFF0H通用区专用区FFFEFH00400H003FFH00000H专用区 实模式下存储器地址空间实模式下存储器地址空间 存储器地址空间被分为通用和专用两种存储区。从地址00000H003FFH为中断向量表区,用来存放256个中断服务程序的入口地址(也称中断向量),每个入口地址占4个字节单元。从地址FFFF0HFFFFFH这16个字节单元保留给系统的初始化代码。当处理器加电或
21、复位(Reset)时,CPU执行的第一条指令就是起始于地址FFFF0H的。通用区域用来存储一般的程序指令和数据,它的地址范围为00400HFFFEFH。(一)、存储器结构(cont.cont.)(二)存储器的分段结构和物理地址的形成(二)存储器的分段结构和物理地址的形成 8086/8088有20条地址总线,直接寻址能力为220=1M字节。用16进制数表示1M字节的地址范围应为0000HFFFFFH。(1 1)8086/8086/ 80888088内部内部2020位物理地址形成位物理地址形成(2 2)逻辑地址与物理地址)逻辑地址与物理地址2021-9-24(1)存储器地址分段8086/8088地
22、址总线是20位的,CPU中的寄存器是16位的,20位地址无法用16位寄存器表示。Intel8088 对存储器采用分段管理方法。段内地址16位,每个段的大小最大可达64KB (实际可以根据需要来确定段大小,可以是1,100, 1000等在64K范围内的任意字节数。)对段的起始地址有限制 即段不能从任意地址开始,必须从任一小段的首地址开始。( 从0地址开始每16字节为一小段)2021-9-242021-9-28q具体做法是,将1M字节的存储空间分成许多逻辑段,每段最长64K字节单元,可以用16位地址码进行寻址。q 每个逻辑段在实际存储空间中的位置是可以浮动的,其起始地址的低4位必须是0。段寄存器中
23、存放的是段起始地址的高16位,称之为“段地址段地址” 。q “偏移量”(offset)也称偏移地址偏移地址,它是所访问的存储单元距段的起始地址之间的字节距离。 段地址段地址和偏移地址偏移地址均是16位的。逻辑地址:逻辑地址:由段基址和段内偏移地址组成的地址,在程序设计时使用。段地址:段起始地址高16位值。偏移地址:指在段内某内存单元物理地址相对段起始地址的偏移值。物理地址:物理地址:存储器的绝对地址(20位的实际地址),范围从00000HFFFFFH , 是由CPU访问存储器时由地址总线发出的地址。2021-9-24段寄存器段地址16位偏移地址16位150150段地址16位1500000地址加
24、法器地址加法器物理地址(位)物理地址(位)190逻辑地址逻辑地址物理地址计算方法:即把段地址左移4位再加上偏移地址值形成物理地址,写成:物理地址物理地址= 16d= 16d 段地址段地址+ +偏移地址偏移地址 物理地址段地址物理地址段地址10H+10H+偏移地址偏移地址需注意的是,每个存储单元有惟一的物理地址,但该存储单元的“段地址”和“偏移地址”是相对的。换句话说,同一个物理地址与多个逻辑地址相对应。例如,段地址为0020H,偏移地址为0013H,对应的物理地址为00213H;若段地址为0021H,偏移地址为0003H,其对应的物理地址仍然是00213H。2021-9-242021-9-31
25、例2.1 设代码段寄存器CS的内容为4232H,指令指针寄存器IP的内容为0066H,即CS4232H,IP0066H,则被访问的代码段存储单元的物理地址是:4232H10H+0066H= 42386H4 2 3 20 0 6 64 2 3 20 0 6 60段基值偏移量左移4位物理地址逻辑地址 4 2 3 8 6+)2021-9-32例2.2 设数据段寄存器DS的内容为1234H,基址寄存器BX的内容为0022H,即(DS)1234H,(BX)0022H,则被访问数据段存储单元的物理地址是: 1234H10H+0022H= 42386H1 2 3 40 0 2 21 2 3 40 0 2 2
26、0段基值偏移量左移4位物理地址逻辑地址 1 2 3 6 2+)2021-9-33例2.3 若段寄存器内容是002AH,产生的物理地址是002C3H,则偏移量是多少? 物理地址段地址10H 002C3H-002A0H 0023H。 2021-9-34四种类型的段:代码段,数据段,附加数据段,堆栈段。 CS 代码段寄存器,保存代码段段地址 DS 数据段寄存器,保存数据段段地址 ES 附加数据段寄存器,保存附加数据段段地址 SS 堆栈段寄存器,保存堆栈段段地址 偏移地址由BX、BP、SP、SI、DI、IP或以这些寄存器的组合形式来提供 IP 代码段偏移地址 SP 堆栈段偏移地址 BX、BP、 SI、
27、DI 数据段或附加数据段偏移地址(二)(二)存储器的分段结构和物理地址的形成(cont.)存储器典型的分段结构(二)(二)存储器的分段结构和物理地址的形成(cont.)2021-9-24各段在存储器中分配:(1)由操作系统负责分配一般情况,各段在存储器中的分配是由操作系统负责。每个段可以独立地占用64K存储区。(2)各段也可以允许重迭每个段的大小允许根据实际需要分配,不一定要占64KB。每个存储单元的内容不允许发生冲突(段可重迭,但使用时需防止冲突)。( 3)在程序的首部设定各段寄存器的值如果程序中的四个段都是64K的范围之内,程序运行时所需要的信息都在本程序所定义的段区之内,程序员只要在程序的首部设定各段寄存器的值就可以了。( 4)动态地修改段寄存器的内容如果程序的某一段(如数据段)在程序运行过程中会超过64K空间,或者程序中可能访问除本身四个段以外的其他段区的信息,那么在程序中必须动态地修改段寄存器的内容。2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东梅州市梅县区融媒体中心招聘见习人员备考题库及答案详解(新)
- 2026四川乐山马边彝族自治县妇幼保健计划生育服务中心招聘4人备考题库参考答案详解
- 2026吉林长春市国企招聘劳务派遣制客服工作人员100人备考题库及完整答案详解一套
- 2026上半年云南事业单位联考丽江师范学院公开招聘人员备考题库及完整答案详解一套
- 新员工入职三级安全教育培训考核试卷测试题库含答案
- 机关单位生活垃圾分类工作实施方案
- 2026 年中职宝玉石加工与检测(翡翠鉴定技巧)试题及答案
- 苏州2025年江苏苏州市相城区事业单位招聘70人笔试历年参考题库附带答案详解
- 舟山2025年浙江舟山嵊泗县事业单位招聘25人笔试历年参考题库附带答案详解
- 秦皇岛2025年河北秦皇岛职业技术学院高层次人才引进笔试历年参考题库附带答案详解
- 《鲤鱼的遇险》读书分享
- 融媒体中心党支部2025年前三季度党建工作总结范文
- 从2025上半年宏观经济及酒类景气指数看酒类发展趋势报告
- 2025急诊监护室CRRT相关知识考试试题及答案
- 雨水收集利用方案
- 自动扶梯应急预案演练计划(3篇)
- 1000立方米高性能聚甲基丙稀酰亚胺(PMI)泡沫新材料技改项目可行性研究报告模板-立项备案
- 动物福利与动物伦理课件
- 宁夏科技经费管理办法
- 擒敌拳教学课件
- (高清版)DB11∕T 2436-2025 寄生蜂类天敌繁育与应用技术规范
评论
0/150
提交评论