桂林电子科技大学 微机原理课件D2.1

上传人:沈*** 文档编号:244176773 上传时间:2024-10-03 格式:PPT 页数:46 大小:474KB
返回 下载 相关 举报
桂林电子科技大学 微机原理课件D2.1_第1页
第1页 / 共46页
桂林电子科技大学 微机原理课件D2.1_第2页
第2页 / 共46页
桂林电子科技大学 微机原理课件D2.1_第3页
第3页 / 共46页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,地址线,20,根,,所表示的地址范围(寻址范围)为,2,20,2,10,2,10,1024,1024,1K,1K,1MB,数据总线,16,根,,一次传送,16,位数据,16,位微处理器,第,2,章,8086,微处理器,2.1 8086,微处理器的内部结构,2.1.1 8086,基本组成,8086CPU,由总线接口部件,BIU,(,Bus Interface Unit,),和指令执行部件,EU,(,Execution Unit,),两个独立的功能部件组成。其内部结构框图如图,2.1,所示。,Q,总线,16,位,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用寄存器,暂存寄存器,ALU,标志,EU,控制,系统,执行部件,(,EU,),8086,ALU,数据总线,(,16,位),1 2 3 4 5 6,指令队列,总线接口部件,(,BIU,),CS,DS,SS,ES,IP,内部通信,寄存器,8086,总线,总线,控制,逻辑,数据总线,(,16,位),地址总线(,20,位),算术逻辑单元,(,ALU,),可完成,16,位或,8,位的二进制运算。,暂存寄存器,(16,位,),用来暂存参加运算的操作数。,经,ALU,运算后的结果特征置入,标志寄存器,中保存。,EU,控制器,负责从,BIU,的指令队列中取指令,并对指令译码,根据指令要求向,EU,内部各部件发出控制命令以完成各条指令的功能。,1.,指令执行部件,EU,其主要功能是执行指令。,2.,总线接口部件,BIU,总线接口部件主要由地址加法器、专用寄存器组、指令队列缓冲器和总线控制电路等部件组成,,其主要功能是形成访问存储器的物理地址,负责与外部(存储器或,I/O,接口)打交道,。,(),地址加法器,(16,位,),将两个,16,位的逻辑地址转换为,20,位的物理地址,以达到可寻址,1M,字节的存储空间。,2.,指令队列,缓冲器,(6,字节,),可存放,6,字节的指令代码,一般情况下应保证指令队列中总是填满指令,使得,EU,可源源不断地得到执行的指令。,3.,总线控制电路,将,8086CPU,的内部总线与外部总线相连,是,8086CPU,与外部交换数据的必经之路。,CPU,正是通过这些总线与外部世界取得联系,形成,8086,微型计算机系统。,EU,和,BIU,这两个功能部件,相互独立地工作,,并在大多数情况下,能使大部分的取指令和执行指令操作重叠进行,所以大大减少了等待取指令所需的时间,提高了微处理器的利用率和整个系统的执行速度。,2.1.2 8086,内部寄存器,8086CPU,中有,14,个,16,位,的寄存器,如图,2.3,所示。,1.,通用寄存器组,图,2.3,中,8,个通用寄存器可分为两组,一组是数据寄存器,另一组是地址指针和变址寄存器。,(,1,),数据寄存器,通用寄存器,AX,、,BX,、,CX,和,DX,称为数据寄存器,可用来存放,16,位,的数据或地址。,也可把它们当作八个,8,位,寄存器(,AH,、,AL,、,BH,、,BL,、,CH,、,CL,、,DH,、,DL,),来使用,这时只能存放,8,位数据,而不能用来存放地址。,(,2,)地址指针和变址寄存器,包括,SP,、,BP,、,SI,、,DI,四个,16,位寄存器。它们更经常的用途是在段内寻址时提供偏移地址。其中:,SP,称为,堆栈,指针寄存器,用来指示栈顶的偏移地址;,BP,称为基址指针寄存器,可作为堆栈区中的一个基地址以便访问堆栈;,SI,(,源变址寄存器,),和,DI,(,目的变址寄存器,),一般与,DS,联用,用来确定,数据段,中某一存储单元的地址。,表,2.1,通用寄存器的特殊用途,寄存器名称,特,殊,用,途,AX,、,AL,在输入,/,输出指令中作数据寄存器用,在乘法指令中,存放被乘数或乘积,在除法指令中,存放被除数或商数,AH,在,LAHF,指令中,作目标寄存器用,AL,在十进制运算指令中作累加器用,在,XLAT,指令中作累加器用,BX,在间接寻址中作基址寄存器用,在,XLAT,指令中作基址寄存器用,CX,在串处理和,LOOP,指令中作计数器用,CL,在移位,/,循环移位指令中作移位次数计数器用,DX,在字乘法,/,除法指令中存放乘积高位或被除数高位或余数,在间接寻址的输入,/,输出指令中作地址寄存器用,SI,在字符串处理指令中作源变址寄存器用,在间接寻址中作变址寄存器用,DI,在字符串处理指令中作目标变址寄存器用,在间接寻址中作变址寄存器用,BP,在间接寻址中作基址指针用,SP,在堆栈操作中作堆栈指针用,2.,段寄存器组,代码段寄存器,CS,,数据段寄存器,DS,,附加数据段寄存器,ES,,堆栈段寄存器,SS,。,由于,8086CPU,可直接寻址的存储器空间是,1M,字节,直接寻址需要,20,位地址码,而所有的内部寄存器都是,16,位的,用这些寄存器只能直接寻址,64K,字节。为此把,1M,字节的存储空间分成许多,逻辑段,,每段最长为,64k,字节,这些逻辑段可在整个存储空间中浮动。,于是用段寄存器给定各个逻辑段的首地址的高,16,位,被称为,段地址,。段寄存器,CS,、,DS,、,ES,、,SS,分别用来存放当前代码段、数据段、附加数据段、堆栈段的段地址,。,分别用来存放当前代码段、数据段、附加数据段、堆栈段的段地址,。,3.,控制寄存器组,(,1,)指令指针寄存器,I P,(,Instruction Pointer,),用来存放将要取出的下一条指令在代码段中的偏移地址。,注意,:,IP,一般与,CS,联用,,表示代码段中要处理的指令的逻辑地址。,IP,和,CS,由系统执行,用户一般是不能使用或修改的,。,(,2,)标志寄存器,FLAGS,状态标志位,6,个(,CF,、,PF,、,AF,、,ZF,、,SF,和,OF,)用来表示运算结果的状态,控制标志位(,IF,、,DF,和,TF,),用来控制,CPU,的操作,,D,15,D,14,D,13,D,12,D,11,D,10,D,9,D,8,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,OF DF IF TF SF ZF AF PF CF,现将各标志位的定义说明如下:,(,1,),CF,(,Carry Flag,),进位标志位。如果做加法时最高位(字节操作是,D,7,位,字操作是,D,15,位)产生进位或做减法时最高位产生借位,则,CF=1,,,否则,CF=0,。,(,2,),PF,(,Parity Flag,),奇偶标志位。如果操作结果的,低八位,中含有偶数个,1,,则,PF=1,,,否则,PF=0,。,(,3,),AF,(,Auxiliary Carry Flag,),辅助进位标志位。如果做加法时,D,3,位有进位或做减法时,D,3,位有借位,则,AF=1,,,否则,AF=0,。,(,4,),ZF,(,Zero Flag,),零标志位。,如果运算结果各位都为零,则,ZF=1,,,否则,ZF=0,。,(,5,),SF,(,Sign Flag,),符号标志位。如果运算结果的最高位(字节操作是,D,7,,,字操作是,D,15,),为,1,,则,SF=1,,,否则,SF=0,。,(,6,),OF,(,Overflow Flag,),溢出标志位。在加或减运算中结果超出,8,位或,16,位有符号数所能表示的数值范围时,产生溢出,,OF=1,,,否则,OF=0,。,注意,(,1,),OF,位的求法,为,OF=,C,7,C,6,(,MOD 2,8,),OF=,C,15,C,14,(,MOD 2,16,),(,2,)有符号数和无符号数的溢出问题:判断的标志,OF,和,CF,举例说明,假设有如下两个,8,位二进制数进行相加,根据结果判断将影响,8086CPU,中,PSW,的各个状态位的情况。,0 0 0 0 1 1 1 0,(,0EH,),0 1 1 1 1 0 0 0,(,78H,),+,1 0 0 0 0 1 1 0,(,86H,),ZF=0,CF=0,PF=0,AF=1,SF=1,OF=1,(,7,),IF,(,Interrupt Flag,),中断标志位。可用指令设置。当,IF=1,时,,CPU,可响应可屏蔽中断请求;,IF=0,,,CPU,不响应可屏蔽中断请求。,(,8,),TF,(,Trap Flag,),单步标志位。假如,TF=1,,则,CPU,处于单步工作方式。在这种工作方式下,,CPU,每执行完一条指令就自动产生一次内部中断。在调试程序,DEBUG,中,,T,命令就是利用这种中断。,(,9,),DF,(,Direction Flag,),方向标志位。在串处理指令中,若,DF=0,,,表示串处理指令地址指针自动增量,即串操作由低地址向高地址进行;,DF=1,,,表示地址指针自动减量,即串操作由高地址向低地址进行。,DF,标志位可通过指令预置。,2.1.3 8086,存储器管理,1.,存储器的基本结构,存储器是有一个个字节组成的。如图所示。,字节,00000H,00001H,00002H,FFFFFH,地址,内容,(8bit),20bit,物理地址(,PA,),2.,存储器的,分段,8086,微处理器有,20,根地址线,可访问存储器的最大容量为,1M,字节。而,8086,内部所有的寄存器都只有,16,位,只能寻址,64K,字节。因此在,8086,系统中,,把整个存储空间分成许多逻辑段,每个逻辑段的容量,64K,字节,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以相互重叠(完全重叠或部分重叠)。,第,0,段,第,1,段,第n-1段,分段,(段之间不重叠),存储器,第,0,段,第,1,段,第n-1段,分段,(段之间重叠),存储器,重叠,在,8086,存储空间中,,各逻辑段的起始地址必须是能被,16,整除的地址,即段的起始地址的低,4,位二进制码必须是,0,。,一个段的起始地址的高,16,位被称为该段的,段地址,,把它存放在相应的段寄存器中,而段内的相对地址可用系统中的,16,位通用寄存器来存放,被称为,偏移地址,。,即存储单元的,逻辑地址,为:,段地址,:,偏移地址,若已知当前有效的代码段、数据段、附加数据段和堆栈段的段地址分别为,1055H,、,250AH,、,8FFBH,和,EFF0H,,,那么它们在存储器中的分布情况,如图,2.5,所示。每个段可以独立地占用,64K,存储区。,各个逻辑段也可以允许重叠。例如,如果代码段中的程序占有,8KB,(,2000H,),存储区,数据段占有,2KB,(,800H,),存储区,堆栈段占有,256,个字节的存储区。此时分段情况,如图,2.6,所示。由图可知,代码段的区域本可为,02000H,11FFFH,(,64KB,),,由于程序区只需要,8KB,,,所以程序区结束后的地址就可作为数据段的起始地址(,04000H,)。,注意,这里所谓的重叠只是指每个区段的大小允许根据实际情况分配,而不一定非要占有,64KB,的最大段空间。,3.,存储器中的,逻辑地址,和,物理地址,采用分段结构的存储器中,,任何一个,逻辑地址,由,段地址,和,偏移地址,两个部分构成,。它们都是无符号的,16,位二进制数,(,逻辑地址记为:,段地址:偏移地址,),。,任何一个存储单元对应一个,20,位的物理地址,,它是由逻辑地址变换得来的。,当,CPU,需要访问存储器时,必须完成如下的地址运算:,物理地址,(PA),=,段地址,10H+,偏移地址,(EA),这是在,CPU,的总线接口部件,BIU,的地址加法器中完成的,其操作过程如图,2.7,所示。,0 0 0 0,如果访问存储器要求读,/,写操作数,则通常由数据段寄存器,DS,给出段地址(必要时可修改为,CS,、,ES,或,SS,),,而其偏移地址要由,CPU,的指令执行部件根据指令中所给定的寻址方式来进行计算,通常将这样计算得到的,偏
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!