您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 建筑材料 > 919013-【微机技术(4版)PPT第2章(18.7)版】
2020/11/7上海交通大学1面向21世纪课程教材普通高等教育“十一五”国家级规划教材微型计算机技术WeixinɡJisuɑnjiJishu(第4版)孙德文章鸣嬛编著2020/11/7上海交通大学2第2章8086微处理器2020/11/7上海交通大学38086微处理器•2.18086微处理器的结构•2.28086微处理器的引脚功能•2.38086微处理器的基本时序2020/11/7上海交通大学42.18086微处理器的结构•2.1.1执行部件和总线接口部件•2.1.28086的编程结构•2.1.38086系统中的存储器组织及•物理地址的形成2020/11/7上海交通大学52.28086微处理器的引脚功能•2.2.1引脚功能说明•2.2.28088引脚与8086引脚的不同之处2020/11/7上海交通大学62.38086微处理器的基本时序•2.3.1指令周期、总线周期和时钟周期•2.3.2几种基本时序的分析2020/11/7上海交通大学72.1.1执行部件和总线接口部件微处理器执行程序的步骤•①从内存储器中取出一条指令,分析指令操作码;•②读出一个操作数(如果指令需要操作数);•③执行指令;•④将结果写入内存储器或输出设备(如果指令需要)。2020/11/7上海交通大学8执行部件和总线接口部件•8086微处理器被设计为两个独立的功能部件,•总线接口部件和执行部件,•并在大多数情况下,能使大部分•的取指令和执行指令重叠进行。•提高了程序的执行速度,充分利用总线,2020/11/7上海交通大学9功能部件2020/11/7上海交通大学10总线接口部件(BusInterfaceUnit,BIU)•由段寄存器、指令指针、地址形成逻辑、总线控制逻辑和指令队列等组成。•BIU负责从内存指定区域取出指令送到指令队列中排队;执行指令时所需要的操作数(内存操作数和I/O端口操作数)也由BIU从相应的内存区域或I/O端口中取出,传送给执行部(EU)。指令执行的结果如果需要存入内存或I/O端口,也由BIU写入相应的内存区域或I/O端口。•总之,BIU的功能是:同外部总线连接,为EU和内存(及外设接口)之间提供信息通路。并形成20位的内存物理地址。2020/11/7上海交通大学11执行部件(ExecutionUnit,EU)•由通用寄存器、标志寄存器、算术逻辑单元(ALU)和EU控制系统等组成。EU从BIU的指令队列中获得指令,然后执行该指令,完成指令所规定的操作。•EU用来对寄存器内容和指令操作数进行算术和逻辑运算,以及进行内存有效地址的计算。•EU负责全部指令的执行,向BIU提供数据和所需访问的内存或I/O端口的地址,并对通用寄存器、标志寄存器和指令操作数进行管理。2020/11/7上海交通大学12取指令和执行指令重叠进行2020/11/7上海交通大学138088与8086的区别•8088微处理器是一种准16位微处理器,内部采用16位结构,实质上与8086基本上是相同的,其内部功能部件EU与8086一样,而BIU略有区别。•第一,8086的指令队列是6字节长,而8088的指令队列为4字节长;•第二,8086是真正的16位机,同BIU相连的8086总线中的数据总线是16位总线,而8088是准16位机,同BIU相连的8088总线中的数据总线为8位总线。2020/11/7上海交通大学142.1.28086的编程结构•可供程序员使用的有16个16位寄存器。•1.通用寄存器(General‐PurposeRegister,GPR)•可分为两组。•1)数据寄存器•累加器AX(Accumulator)、•基址寄存器BX(BaseRegister)、•计数寄存器CX(CountRegister)、•数据寄存器DX(DataRegister)。2020/11/7上海交通大学15通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPSIDI2020/11/7上海交通大学16数据寄存器•特点是:•每个16位寄存器可分为•高8位(AH、BH、CH和DH)•低8位(AL、BL、CL和DL),•这两组8位寄存器可分别寻址、独立操作。既可以将数据寄存器作为一个16位寄存器进行操作,又可用做两个8位寄存器进行操作。2020/11/7上海交通大学17数据寄存器•可以存放•参加操作的数据、•操作的中间结果,•也可以是操作数的地址。•大多数算术和逻辑运算指令都可以使用这些数据寄存器。2020/11/7上海交通大学182)指针寄存器(PointerRegister、变址寄存器(IndexRegister)•堆栈指针寄存器SP(StackPointer)、•基址指针寄存器BP(BasePointer)、•源变址寄存器SI(SourceIndex)•目的变址寄存器DI(DestinationIndex)•用来形成操作数的地址,用于堆栈操作•和变址运算中计算操作数的有效地址。•SP、BP用于堆栈操作•SI、DI用于变址操作2020/11/7上海交通大学19通用寄存器•在8086的指令系统中,许多情况下,某些指令只能用一个特定的寄存器或寄存器组来完成其功能,•对这些用来完成特定操作的8086指令,•上述通用寄存器具有一些隐含用法通用寄存器的隐含用法2020/11/7上海交通大学202020/11/7上海交通大学212.指令指针(InstructionPointer,IP)•16位专用寄存器,它指向当前需要取出的指令字节,当BIU从内存中取出一个指令字节后,IP就自动加1,指向下一指令字节。注意,IP指向的是指令地址的段内地址偏移量,又称偏移地址(OffsetAddress)或有效地址(EffectiveAddress,EA)。程序员不能对IP进行存取操作,程序中的转移指令、返回指令以及中断处理能对IP进行操作。2020/11/7上海交通大学223.标志寄存器FR(FlagRegister)•16位的标志寄存器FR定义了9位,•6位是状态位,•3位是控制位2020/11/7上海交通大学23标志寄存器FR(FlagRegister)定义了9位6位状态位C、A、Z、S、O、P3位控制位I、D、TOFDFIFTFSFZFAFPFCFInterruptenableDirectionTrapCarryAuxiliaryCarryZeroSignOverflowParity2020/11/7上海交通大学241)状态位•①进位标志CF(CarryFlag)———反映算术运算后,最高位(字节操作为D7位,字操作为D15位)•出现进位(或借位)的情况,有则为1。CF主要用于加、减法运算,移位和环移指令也会改变CF值。•②奇偶(校验)标志PF(ParityFlag)———反映操作结果中1的个数的情况,若为偶数,PF置•1,主要在数据通信中用来检查传送有无出错(注意,只考虑低8位)。•③辅助进位标志AF(AuxiliaryCarryFlag)———反映一个8位量(或16位量的低位字节)•的低4位向高位(即D3位向D4位)有无进位(或借位)的情况,有则置1,AF用于BCD码算术运•算指令。2020/11/7上海交通大学25状态位④零标志ZF(ZeroFlag)———反映运算结果是否为零的情况,结果为零,ZF置1。⑤符号标志SF(SignFlag)———反映带符号数运算结果符号位的情况,结果为负数,SF置1,SF的取值与运算结果的最高位(字节操作为D7位,字操作为D15位)取值一致。⑥溢出标志OF(OverflowFlag)———反映带符号数(以二进制补码表示)运算结果是否超过机器所能表示的数值范围的情况,对字节运算为-128~+127,对字运算为-32768~+32767。•若超过上述范围,称为“溢出”,OF置1。2020/11/7上海交通大学26状态位•“溢出”与“进位”是两个不同的概念,某次运算结果有“溢出”不一定有“进位”;反之,有•“进位”也不一定有“溢出”。•6个状态标志由执行部件EU设置,反映算术或逻辑运算结果的某些特征,这些状态标志常用来影响或控制某些后续指令(例如条件转移指令、循环指令等)的执行。不同指令对状态标志的影响不一样,有些指令不影响状态标志。另外,进位标志CF可由专用指令设置。2020/11/7上海交通大学272)控制位•①方向标志DF(DirectionFlag)———在进行字符串操作时,每执行一条串操作指令,对源或(与)目的操作数的地址要进行一次调整(对字节操作为加1或减1,对字操作为加2或减2),由DF决定地址是递增还是递减。若DF=1为递减,即从高地址向低地址进行;DF=0为递增。•DF可由专用指令设置。2020/11/7上海交通大学28控制位②中断允许标志IF(InterruptEnableFlag)———表示系统是否允许响应外部的可屏蔽中断,若IF=1,表示允许响应。IF对不可屏蔽中断请求以及内部中断不起作用。IF可由专用指令设置。③陷阱标志TF(TrapFlag)———当TF=1时,微处理器每执行完一条指令便自动产生一个内部中断,转去执行一个中断服务程序,可以借助中断服务程序来监视每条指令的执行情况,称为“单步工作方式”,常用于程序的调试。TF又称为跟踪标志。•3个控制标志用来控制微处理器的某些操作,可以由指令来设置。2020/11/7上海交通大学294.段寄存器•在微型计算机系统的内存中通常存放着三类信息:•①代码(指令)———指示微处理器执行何种操作。•②数据(字符、数值)———程序处理的对象。•③堆栈信息———被保存的返回地址和中间结果。•在8086系统中,这三类信息通常分别存放在各自的内存区域中———8086存储系统中的不同存储段。2020/11/7上海交通大学30段寄存器•8086系统中把可直接寻址的1MB内存空间划分为称为“段”(Segment)的逻辑区域,每个段的物理长度为64KB,而段的起始地址由称为“段寄存器”(SegmentRegister)的4个16位寄存器决定。•8086利用上述段寄存器的内容,通过适当转换可以访问这4个存储段———代码段、堆栈段、数据段和附加段。2020/11/7上海交通大学31段寄存器•①代码段寄存器CS(CodeSegment),指向当前的代码段,指令由此段中取出。•②堆栈段寄存器SS(StackSegment),指向当前的堆栈段,堆栈操作的对象就是该段中存储•单元的内容。•③数据段寄存器DS(DataSegment),指向当前的数据段,通常用来存放程序变量(存储器•操作数)。•④附加段寄存器ES(ExtraSegment),指向当前的附加段,通常也用来存放数据以及—些•专用指令的操作数。2020/11/7上海交通大学322.1.38086系统中的存储器组织及物理地址的形成•1.存储器组织•8086微处理器有20条地址线,可以配置1MB(1048576B)的内存储器,地址编号为0000H~FFFFFH。•存储空间都按8位字节进行组织,每个存储单元存储一个字节数据。若存放“字”数据(16位),则存放在相邻两个存储单元中,按小数端存放规则,高字节存放在高地址单元,低字节存放在低地址单元(W=BHBL)2020/11/7上海交通大学332.存储器分段•1)为什么要分段•因为8086微处理器内部的数据通路和寄存器皆为16位,内部ALU只能进行16位运算,在程序中也只能使用16位地址,寻址范围局限在216=65536B(64KB),为了能寻址1MB的地址,所以引入“分段”的概念。2020/11/7上海交通大学342)分段•8086程序把1MB的存储空间看做是一组存储段,各段的功能由具体用途而定,分别为代码段、堆栈段、数据段和附加段。•一个存储段是存储器的一个逻辑单位,其长度可达64KB,每个段都由连续的存储单元构成,是存储器中独立的、可分别寻址的单位。每段第一个字节的位置称为“段起始地址”,可由软件指定。对段起始地址的要求是:最好能被16整除(起始地址为xxxx0H)。段寄存器中存放了与段起始地址有关的16位“段基值
本文标题:919013-【微机技术(4版)PPT第2章(18.7)版】
链接地址:https://www.777doc.com/doc-7210783 .html