1第二章8086微处理器§2.1微处理器概述(了解)§2.28086的编程结构(熟练掌握重点)§2.38086的工作模式和引脚信号(掌握)§2.48086的系统配置(了解)§2.58086的操作和时序(掌握)§2.632位微处理器(了解)2§2.1微处理器概述一、微处理器的主要功能微处理器通常称为CPUCPU=运算器+控制器+寄存器微处理器的基本功能:1)进行算术和逻辑运算2)与存储器或外设进行数据交换3)暂存少量数据4)对指令进行译码并进行指令所规定的操作5)提供整个系统所需要的定时和控制信号6)响应其他各部件发出的中断请求二、微处理器一般编程结构内存AXBXCXDX状态寄存器控制逻辑指令寄存器IPBPSIDISPCSDSSSES取指运算器寄存器寄存器控制器微处理器4§2.28086的编程结构一、8086CPU的组成与功能二、寄存器三、8086的存储器组织四、8086的总线周期58086微处理器概况Intel系列16位处理器,集成度29000管/片16位数据总线20位地址总线,可直接寻址的地址空间1MB(220)可对位、字节、字、字节串、字串、BCD码等数据类型进行处理供电电源+5V主频5MHz8086CPU的编程结构外部总线(三总线)EUBIU6字节指令队列123456CSDSSSESIP内部通讯总线控制逻辑地址加法器20位地址16位内部总线16位寄存器组16位内部总线AHALBHBLCHCLDHDLSPBPSIDIEU控制器运算暂存器ALU标志寄存器16位通用寄存器组内存AXBXCXDX7•算术逻辑单元负责各种算术和逻辑运算。•地址加法器将左移4位的段寄存器的内容与偏移地址相加,形成20位的物理地址,以便对1M空间的存储器寻址。•指令队列指令队列中包含若干个(8086—6个,8088—4个)8位寄存器,用于顺序存放从存储器中取出的指令,供执行单元执行。•总线控制逻辑提供系统总线的控制信号,实现数据、地址和状态信息的分时传送。•EU控制器是控制、定时与状态逻辑电路。用于控制执行单元中各部件按指定的要求协调工作。8一、8086CPU的组成与功能1.8086CPU的组成CPUEUBIU•16位通用寄存器组(AX、BX、CX、DX、SP、BP、SI、DI)•算术逻辑单元——ALU•EU控制器•标志寄存器——FR•段寄存器组(CS、DS、SS、ES)•指令指针——IP•地址加法器•指令队列•总线接口控制逻辑9一、8086CPU的组成与功能2.8086CPU的功能EU•翻译和执行指令•存放少量数据BIU•从存储器中预取6字节指令并排队•在地址加法器中形成20位的地址信号•配合EU在CPU和存储器、I/O端口间传送数据•产生总线控制信号10一、8086CPU的组成与功能3.8086CPU工作过程•当程序为顺序程序时,EU和BIU可以并行工作。•遇到控制转移指令时,指令队列自动清空,BIU重新将另一段指定程序的指令取到指令队列中。1)每当指令队列中有2个字节空间时,BIU就自动预取后续指令代码,并填入指令队列中。2)EU从指令队列前部取指令译码执行,执行指令过程中如果必须访问内存或I/O端口时,向BIU发出请求,若BIU空闲则会立即完成EU请求,否则BIU先完成取指令操作再响应EU请求。3)指令队列已满,且EU无请求时,BIU进入空闲状态。EU和BIU并行工作以前的CPU取指令执行指令取指令执行指令取指令执行指令……8086/8088EU和BIU既相互独立又相互配合,使得CPU可以在执行指令的同时,进行取指令的操作,减少了CPU为取指令而等待的时间,提高了CPU利用率。取指令执行指令取操作数执行指令取指令执行指令存操作数BIUEU取指令……8086CPU的编程结构外部总线(三总线)EUBIU6字节指令队列123456CSDSSSESIP内部通讯总线控制逻辑地址加法器20位地址16位内部总线16位寄存器组16位内部总线AHALBHBLCHCLDHDLSPBPSIDIEU控制器运算暂存器ALU标志寄存器16位通用寄存器组内存二、寄存器AHALBHBLCHCLDHDLAXBXCXDXSPBPSIDIFLAGIPCSDSSSES累加器基址寄存器计数器数据寄存器堆栈指针寄存器堆栈基址指针寄存器源变址寄存器目的变址寄存器状态标志寄存器指令指针寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器通用寄存器控制寄存器段寄存器14二、寄存器1.通用数据寄存器:存放一般数据(可将高8位与低8位分开独立使用)寄存器名隐含用法(在某些指令中)AX(AH,AL)累加器BX(BH,BL)基址寄存器CX(CH,CL)计数器DX(DH,DL)数据寄存器152.堆栈指针寄存器SP:存放堆栈栈顶的偏移地址,用来访问堆栈栈顶单元。3.堆栈基址指针寄存器BP:存放堆栈的偏移地址,用来访问堆栈的任意单元。二、寄存器堆栈:在存储器中开辟的特殊数据区域,一般用来存放暂时不用的信息。存取原则为:先进后出,即从栈底开始存放,从栈顶取信息。16二、寄存器栈底:堆栈最底部的存储单元栈顶:最后放进的信息所在存储单元栈顶→栈底→SP始终指向栈顶SP=FFFEH栈顶→栈顶→SP=FFFCHSP=FFFAHFFFFH堆栈FFFAHFFFCH…FFFEHFFFDHFFFBHBP→BP=FFFDHBP指向堆栈段任意存储单元17二、寄存器4.源变址寄存器SI:存放源数据串偏移地址5.目的变址寄存器DI:存放目的数据串偏移地址SI+1DI+1每传一个数,SI、DI的内容分别加1DI源数据串SI…目的数据串123SI+1DI+1186.标志寄存器FR:ODITSZAPC1511109876420进位标志CF(CarryFlag)——当结果的最高位产生一个进位或借位,则CF=1,否则CF=0。溢出标志OF(OverflowFlag)——在算术运算中,带符号数的运算结果超出了8位或16位带符号数能表达的范围,则OF=1,否则OF=0。8位(字节)运算--128——+12716位(字)运算--32768——+32767符号标志SF(SignFlag)——结果的最高位(D15或D7)为1,则SF=1,否则SF=0。零标志ZF(ZeroFlag)——若运算的结果为0,则ZF=1,否则ZF=0。奇偶标志PF(ParityFlag)——若结果低8位中‘1’的个数为偶数,则PF=1,否则,PF=0辅助进位标志AF(AuxitiaryFlag)——加法运算时,由第3位向第4位有进位,或减法运算时第3位向第4位有借位,则AF=1,否则AF=0。状态标志二、寄存器196.标志寄存器FR:ODITSZAPC1511109876420方向标志DF(DirectionFlag)——DF=1,串操作时地址自动减量,DF=0,串操作时地址自动增量。中断允许标志IF(Interrupt—enableFlag)——IF=1,则允许CPU接收外部的中断请求IF=0,则屏蔽外部中断请求。跟踪标志TF(TraceFlag)——TF=1,使处理进入单步方式,以便于调试。控制标志二、寄存器1001,101010101,10011011,1111+1001,1010B+1011,1111B=?CF=1PF=1AF=1ZF=0SF=0OF=CFCP=1例:21二、寄存器7.指令指针IP:存放下一条要执行指令的偏移地址MOV[2000],ALMOVAL,34ADDAL,661000H1002H1004H1007HIP→IP→IP→IP→22二、寄存器8.段寄存器:CS、DS、SS、ES,用来存放段基址23三、8086的存储器组织1.存储器的物理地址和内容物理地址:CPU将所管理的存储器空间按顺序编排的地址(实际地址);8086的物理地址用20位二进制无符号数表示;内容:存储单元中有效的信息;每个地址单元存放一个字节;一个字存入存储器占用连续的两个单元,低字节存入低地址,高字节存入高地址;字单元的地址用它的低地址来表示。24三、8086的存储器组织220=1M0000,0000,0000,0000,0000B1111,1111,1111,1111,1111B00000H00001HFFFFEHFFFFFH……0000AH……物理地址内容0000BH0001,0010B0011,0100B12H34H(0000AH)=34H(0000AH)=1234HXXXX0H段基址逻辑段2逻辑段1偏移量逻辑段4逻辑段3逻辑段5…..2.存储器分段结构8086地址总线是20位的,CPU中有关的地址寄存器都是16位的,20位地址无法用16位的寄存器表示,所以采用存储器分段结构。三、8086的存储器组织26分段原则:(1)每个段最长64K字节,段内地址是连续的,段与段之间可以是连续的,也可以是分开的或重叠的。(2)段的首地址必须能被16整除(即段首地址的低4位必须为0)。段基址:段首地址的高16位(无符号数)。段内偏移地址:逻辑段内任一地址单元相对于该段首地址的偏移量(无符号数)。三、8086的存储器组织27三、8086的存储器组织3.物理地址的形成和逻辑地址物理地址=段基址╳16+段内偏移地址16位段基址16位偏移地址20位物理地址加法器移位器移4位XXXX0H(段基址左移四位)逻辑地址=段基址:偏移地址例:3000H:2000H任一逻辑地址可唯一的对应一个物理地址;任一个物理地址不一定对应一个逻辑地址。28三、8086的存储器组织段寄存器CS:存放正在被访问的代码段的段基址DS:存放正在被访问的数据段的段基址SS:存放正在被访问的堆栈段的段基址ES:存放正在被访问的附加段的段基址信息按种类分段存放:程序信息放在代码段中;数据信息放在数据段或附加段中;堆栈信息放在堆栈段中。段寄存器与约定寄存器组合指向存储单元的示意CS×16+IPDS×16+BX(SI、DI)SS×16+SP(BP)代码段数据段堆栈段30(1)存储器分体将1M内存分为512K两个存储体,一个存储体中包含偶数地址,称为偶存储体(存放低位字节),一个存储体中包含奇数地址,称为奇存储体(存放高位字节)。00000H00002H00004H00001H00003H00005HFFFFFHFFFFEH512K╳8位奇地址存储器15870512K╳8位偶地址存储器三、8086的存储器组织4.8086存储器结构31三、8086的存储器组织32三、8086的存储器组织(2)8086按字节组织(一个单元存放一个字节)字的存放,低8位在前,高8位在后,连续存放将字的低位存放在偶地址的存放叫字对准存放;将字的低位存放在奇地址的存放叫字不对准存放。34H12H12H10000H10001H34H20002H20001H字对准存放字不对准存放10000H10002H10001H10003H20001H20002H1587020003H20000H12H34H12H34H对规则字的存取可在一个总线周期内完成,非规则字的存取则需两个总线周期。33四、8086的总线周期时钟周期T:计算机中最基本的时间单元,由计算机主频决定。例:8086主频5M,则时钟周期为1/5M=200ns总线周期:CPU对内存或I/O接口进行一次读/写的操作称做执行一个总线周期,最基本的总线周期包括四个时钟周期。T1T2T3T41~n个TWCLK一个总线周期=4T+nTW34§2.38086的工作模式和引脚信号一、最大模式和最小模式二、8086的引脚信号和功能三、8086CPU的特点35一、最大模式和最小模式最小模式:只有一个CPU,所有的总线控制信号都直接由这个CPU产生。MN/MX接+5V。最大模式:包括两个以上的CPU,8086为主处理器,其他的称为协处理器,如8087、8089,控制信号通过8288总线控制器提供。MN/MX接地。36二、引脚信号和功能引脚复用技术1.分时复用,即同一引脚在同一总线周期的不同时钟周期内其功能不同;2.模式复用,即同一根引脚在最小模式和最大模式下输出不同的信号。GNDAD14AD13AD12AD11A