《新《考研资料》第2章 16位和32位微处理器.ppt》由会员分享,可在线阅读,更多相关《新《考研资料》第2章 16位和32位微处理器.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 16位和位和32位微处理器位微处理器本章重点本章重点:8086CPU的编程结构,尤其是寄存器组;8086CPU标志寄存器各个标志的含义;8086CPU的读写时序、总线操作;8086CPU的中断分类和中断向量8086CPU微处理器的性能指标:微处理器的性能指标:字长CPU一次能处理的数据位数主频CPU的时钟频率(时钟周期)2.1 16位微处理器位微处理器80862.1.1 8086CPU的编程结构的编程结构 1.总线接口部件(businterfaceunit,BIU)2.执行部件(executionunit,EU)AH ALBH BLCH CLDH DL SP BP DI SI通通用
2、用寄寄存存器器运算寄存器运算寄存器ALU标志标志执行部分执行部分控制电路控制电路1 2 3 4 5 6 CS DS SS ES IP 内部寄内部寄存器存器I/O控制控制电路电路地址加地址加法器法器20位位16位位8位位指令队列缓冲器指令队列缓冲器外外总总线线执行部件执行部件总线接口部件总线接口部件8086CPU结构图结构图1.总线接口部件总线接口部件功能:总线接口部件负责与存储器、I/O端口传送数据组成:4个段地址寄存器(CS、DS、ES、SS)16位的指令指针寄存器 IP(Instruction Pointer)20位的地址加法器(地址加法器的作用?)6字节的指令队列缓冲器(为什么不是一个字
3、节?)2.执行部件执行部件 执行部件负责指令的执行,由下列4部分组成:4个通用寄存器,即AX、BX、CX、DX;4个专用寄存器,即 基数指针寄存器BP(base pointer)堆栈指针寄存器SP(stack pointer)源变址寄存器SI(source index)目的变址寄存器DI(destination index);标志寄存器;算术逻辑部件(arithmeticlogicunit)。AH ALBH BLCH CLDH DLSPBPSIDI标志寄存器1.状态标志符号标志SF(signflag)零标志ZF(zeroflag)奇偶标志PF(parityflag)进位标志CF(carryfl
4、ag)辅助进位标志(auxiliarycarryflag)溢出标志(overflowflag)2.控制标志方向标志DF(directionflag)中断允许标志IF(interruptenableflag)跟踪标志TF(trapflag)又称为单步标志1514131211109876543210OFDFIFTFSFZFAFPFCF共有16位,其中7位未用状态标志由前面指令执行操作的结果对状态标志产生影响控制标志是人为设置的。3.8086的总线周期的概念的总线周期的概念 什么是总线周期?通常把CPU通过总线对微处理器外部(存贮器或I/O接口)进行一次访问所需时间称为一个总线周期。典型的8086总
5、线周期序列:一个总线周期一般包含4个时钟周期,分别称4个状态,即:T1、T2、T3和T4T1状态,发地址信息T2状态,总线的高4位输出状态信息T3状态,高4位状态信息,低16位数据T3之后,可能插入TW在T4状态,结束。地地AD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLK地地Vcc(5V)AD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD(RQ/GT0)HLDA(RQ/GT1)WR(LOCK)M/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTRE
6、ADYRESET2.1.2 8086的引脚信号和工作模式的引脚信号和工作模式 1.最小模式和最大模式的概念最小模式和最大模式的概念(1)最小模式:在系统中只有一个微处理器。所有的控制 信号都是有8086直接产生(2)最大模式:两个或多个微处理器(主处理器、协处理器)2.8086/8088的引脚信号和功能的引脚信号和功能2.8086/8088的引脚信号和功能的引脚信号和功能注意点:8086/8088的数据线和地址线复用8086有16根数据线(可分为高8位和低8位)第21脚(RESET)为输入复位信号复位重启后的状态:清除:DS/ES/SS/标志寄存器/指令队列CS=FFFFH,IP=0000H。
7、第22引脚为“准备好”(READY)信号读、写两种操作的数据传输方向高4位地址和状态线复用各引脚信号:GND、Vcc地和电源AD15AD0地址/数据复用A19/S6A16/S3 地址/状态复用S6=0:CPU与总线相连,S5=1:IF=1(中断允许标志状态),S4S3组合:当前使用的段寄存器,00-ES01-SS10-CS11-DSBHE/S7高8位数据总线允许/状态复用NMI非屏蔽中断输入(上升沿触发)注:AD0和BHE#可用来选择存储体注:带号表示上面有一横线各引脚信号:INTR可屏蔽中断请求信号输入RD读信号输出CLK时钟输入RESET复位信号输入(至少4个时钟周期的高电平)READY“
8、准备好”信号输入TEST测试信号输入(使CPU脱离等待状态)MN/MX 最小和最大模式控制输入3.最小模式最小模式 INTA中断响应信号输出(两个负脉冲)ALE地址锁存允许信号输出给地址锁存器DEN数据允许信号给数据数发器DT/R数据收发信号输出给数据数发器引脚信号的含义(24-31脚)最小模式信号含义(24-31脚)M/IO存储器/输入输出控制信号输出WR写信号输出HOLD总线保持请求信号输入请求CPU让出总线控制权HLDA总线保持响应信号输出CPU表示已让出总线控制权8086在最小模式下的典型配置在最小模式下的典型配置:MN/MX接+5V有1片8284A-时钟发生器3片8282或74LS3
9、73-地址锁存器2片8286-数据收发器增加总线驱动能力4.最大模式最大模式 引脚信号(24-31脚):QS1、QS0指令队列状态信号输出QS1QS0性能00无操作01从指令队列的第一个字节取走代码10队列为空11除第一个字节外,还取走了后续字节中的代码4.最大模式最大模式 引脚信号(24-31脚):S2#、S1#、S0#总线周期状态信号输出S0S1S2性能100中断相应101读I/O端口110写I/O端口111暂停000取指令001读存储器010写存储器011无作用82888288总线控制器控制器MRDC/MWTC/IORC/IOWC/INTA/ALEDENDT/RS0S1S24.最大模式最
10、大模式 引脚信号(24-31脚):LOCK#(lock)总线封锁信号输出其他总线主部件不能占用总线指令前缀lock产生两个中断响应脉冲之间有效RQ#/GT1#、RQ#/GT0#总线请求信号输入、总线授权信号输出双向:RQ#时输入,GT#时输出RQ#/GT0#比RQ#/GT1#优先级高8086在最大模式下的典型配置在最大模式下的典型配置:2.1.3 8086的操作和时序的操作和时序 8086的主要操作的主要操作:系统的复位和启动操作;暂停操作;总线操作;中断操作;最小模式下的总线保持;最大模式下的总线请求/允许。2.1.3 8086的操作和时序的操作和时序 o什么是时序?时序是计算机操作运行的时
11、间顺序。8086的中断响应总线周期的中断响应总线周期2.1.3 8086的操作和时序的操作和时序 o为什么要研究时序?1.进一步了解在微机系统的工作过程中,CPU各引脚上信号之间的相对时间关系;2.深入了解指令的执行过程;3.在程序设计时,选择合适的指令或指令序列,以尽量缩短程序代码的长度及程序的运行时间;4.对于学习各功能部件与系统总线的连接及硬件系统的调试,都十分有意义,因为CPU与存储器、I/O端口协调工作时,存在一个时序上的配合问题;5.更好地处理微机用于过程控制及解决实时控制的题。1.系统的复位和启动操作系统的复位和启动操作 复位和启动的引发信号是哪个?8086CPU复位是什么状态?
12、启动时执行的第一条指令在哪里?1.系统的复位和启动操作系统的复位和启动操作 2.总线操作总线操作(1)总线读操作(2)总线写操作(1)总线读操作总线读操作(2)总线写操作总线写操作3中断操作和中断系统中断操作和中断系统什么是中断?主主程程序序中中断断服服务务子子程程序序中断申请信号中断申请信号 3中断操作和中断系统中断操作和中断系统3中断操作和中断系统中断操作和中断系统(1)8086的中断分类的中断分类非屏蔽中断硬件中断(外部中断)可屏蔽中断软件中断(内部中断)什么是硬件中断?什么是软件中断?什么是非屏蔽中断?什么是可屏蔽中断?(1)8086/8088的中断分类的中断分类:CPU内部内部CPU
13、外部外部1号4号0号2号3号断点中断溢出中断3中断操作和中断系统中断操作和中断系统(2)中断向量和中断向量表中断向量和中断向量表 什么是中断号?什么是中断向量?什么是中断向量表?3中断操作和中断系统中断操作和中断系统(3)硬件中断硬件中断 NMI INTR(4)硬件中断的响应和时序硬件中断的响应和时序可屏蔽中断的响应过程:读取中断类型码将标志寄存器的值推入堆栈把标志寄存器的IF和TF清零将断点保护到堆栈中。寻找中断向量,转入中断处理程序3中断操作和中断系统中断操作和中断系统非屏蔽中断和可屏蔽中断有两点差别TF是单步中断标志在中断响应后,又遇NMI;结束时,返回断点;等待或串操作时,允许过程中进
14、入中断。3中断操作和中断系统中断操作和中断系统中断响应流程图中断响应流程图8086的中断响应总线周期的中断响应总线周期:第1个总线周期,通知外设,CPU准备响应中断;第2个总线周期,外设发送中断类型码3中断操作和中断系统中断操作和中断系统(5)中断处理子程序中断处理子程序:常驻内存常驻内存 进一步保护中断现场(入栈指令)开放中断 中断处理的具体内容 恢复现场(出栈指令)中断返回指令(IRET)3中断操作和中断系统中断操作和中断系统请比较一般子程序的调用和中断处理子程序调用的区别?关中断关中断开中断开中断(6)软件中断软件中断特点:用一条指令进入中断处理子程序,并且,中断类型码由指令提供。不执行
15、中断响应总线周期,也不从数据总线读取中断类型码。不受中断允许标志IF的影响 执行过程中可响应外部硬件中断软件中断没有随机性3中断操作和中断系统中断操作和中断系统1、软件中断:、软件中断:调用调用dos系统功能调用(系统功能调用(2号)在屏幕上显示一号)在屏幕上显示一个字符个字符 MOV AH,2 MOV DL,A INT 21H AH寄存器:放功能号寄存器:放功能号DL寄存器:放要显示的字符寄存器:放要显示的字符21H:中断号中断号 软件中断和硬件中断举例软件中断和硬件中断举例CODE SEGMENTASSUME CS:CODE START:MOV AH,2 MOV DL,A INT 21H
16、MOV AH,2 MOV DL,B INT 21H MOV AH,2 MOV DL,C INT 21H MOV AH,2 MOV DL,E INT 21H MOV AH,4CH INT 21HCODE ENDS END START 2、硬件中断:、硬件中断:利用PC机上的定时器通道0工作在方式3,计数时间到产生中断 软件中断和硬件中断举例软件中断和硬件中断举例请回答以下问题:对于一个正常运行的对于一个正常运行的C程序,以下叙述中正确的是程序,以下叙述中正确的是 。oA、程序的执行总是从main函数开始,在main函数结束oB、程序的执行总是从程序的第一个函数开始,在main函数结束oC、程序的
17、执行总是从main函数开始,在程序的最后一个函数中结束oD、程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数中结束2、硬件中断:、硬件中断:利用PC机上的定时器通道0工作在方式3,计数时间到产生中断 软件中断和硬件中断举例软件中断和硬件中断举例o#includeo#includeovoidinterruptmyint8(void);ovoidmain(void)odisable();ooutportb(0 x43,0 x36);/0 x43是定时器控制寄存器地址ooutportb(0 x40,0 x9d);/0 x40是定时器0通道地址ooutportb(0 x40,0 x2e);
18、/0 x9d,0 x2e分别是计数值低八位o/高八位osetvect(0 x08,myint8);/设置中断向量oenable();owhile(1);o中断处理子程序2、硬件中断:、硬件中断:利用PC机上的定时器通道0工作在方式3,计数时间到产生中断ovoidinterruptmyint8(void)oostaticintcount=0;oprintf(%dcomputerisInterestingn,count+);ooutportb(0 x20,0 x20);/第一个0 x20主8259的OCW2的o/地址,o/第二个0 x20是中断结束命令oooo外部按键引起中断/INT0 中断函数v
19、oid int0()interrupt 0 static int i;LED2=0;for(i=0;i30000;i+);for(i=0;i30000;i+);for(i=0;i30000;i+);for(i=0;i30000;i+);for(i=0;i30000;i+);for(i=0;i30000;i+);LED2=1;void main()int i;EA=1;EX0=1;EX1=1;IT0=1;IT1=1;while(1)LED1=1;for(i=0;i30000;i+);LED1=0;for(i=0;i30000;i+);LED2=1;2.1.4 8086的存储器编址和的存储器编址和
20、I/O编址编址 1.8086的存储器编址的存储器编址 20根地址总线,220=1MB00000HFFFFFH而微处理器中所有的寄存器都是16位的,216=64KB如何实现16位的存储单元存放20位的地址空间?答案:存储器分段段的大小64KB段寄存器:段地址(相当于段的起始地址)指令提供:偏移地址(该单元相对于段起始地址的16位偏移量)。2.1.4 8086的存储器编址和的存储器编址和I/O编址编址 1.8086的存储器编址的存储器编址 1MB64KB=16CS、DS、SS和其他寄存器组合指向存储单元的示意图:1.8086的存储器编址的存储器编址1.8086的存储器编址的存储器编址o存储单元地址
21、的几个概念物理地址:一个存储单元的实际地址(20位)。物理地址与存储单元是一一对应关系。(20202H)段地址:指一个段的起始地址,最低4位为零一般将其有效数字16位存放在段寄存器中偏移地址:段内存储单元相对段地址的距离(16位)同一个段内,各个存储单元的段地址是相同的,偏移地址是不同的。逻辑地址:段地址:偏移地址1.8086的存储器编址的存储器编址o存储器分段的特点:n(1)可以减少指令长度,提高指令运行速度在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64Kb的范围内n(2)内存分段为程序的浮动分配创造了条件n(3)物理地址与逻辑地址并不是一一对应的例:2000:0
22、202H=2010:0102H=20202Hn(4)各个分段之间可以重叠1.8086的存储器编址的存储器编址o特殊的内存区域:有些内存区域的作用是固定的n中断矢量区:00000H003FFH共1K字节,用以存放256种中断类型的中断矢量,每个中断矢量占用4个字节,共2564=1024=1K;n显示缓冲区:单色显示器的显示缓冲区:B0000HB0F9FH约4000(25802)字节,存放文本方式下,所显示字符的ASCII码及属性码;彩色显示器的显示缓冲区:B8000HBBF3FH约16K字节,存放图形方式下,屏幕显示象素的代码。n启动区:FFFF0HFFFFFH共16个单元,用以存放一条无条件转
23、移指令的代码,转移到系统的初始化部分。o什么是I/O接口?nI/O接口是指把外设同微型计算机连接起来实现数据传送的中间控制电路o什么是I/O端口?n是指I/O接口中CPU可以读/写的寄存器2.8086的的IO编址编址2.8086的的IO编址编址o计算机上的接口2.8086的的IO编址编址oI/O接口结构示意图接口结构示意图I/O端口端口1I/O端口端口2I/O端口端口3地址地址译码译码数据数据缓冲缓冲控制控制电路电路外外设设ABDBCBCPU2.8086的的I/O编址编址统一编址统一编址独立编址独立编址I/O端口的编址方式端口的编址方式2 220201M1M内存单元内存单元2 2161664K
24、64KI/OI/O端口端口独立编址方式独立编址方式在在8086CPU中:中:内存地址从内存地址从00000HFFFFFH,I/O地址范围从地址范围从0000HFFFFH。它们相互独立,互不影响。它们相互独立,互不影响。两个两个8位的端口可以组成一个位的端口可以组成一个16位端口位端口作业:o2.1总线接口部件有哪些功能?由哪几部分组成?o2.28086的执行部件有什么功能?由哪几部分组成?o2.3状态标志和控制标志有何不同?8086的状态标志和控制标志分别有哪些?o2.4请说明进位和溢出的区别。o2.5总线周期的含义是什么?8086/8088的基本总线周期由几个时钟组成?如一个CPU的时钟频率
25、为10MHz,那么,它的一个时钟周期为多少?一个基本总线周期为多少?o2.6在总线周期的T1、T2、T3、T4状态,AD0AD15分别出于什么状态?什么情况下需要插入等待状态TW?TW在哪儿插入?o2.78086和8088是怎样解决地址线和数据线的复用问题的?ALE信号何时处于有效电平?作业:o2.88086最多可有多少个中断?按照产生中断的方法分为哪两大类?o2.9非屏蔽中断有什么特点?可屏蔽中断有什么特点?分别用在什么场合?o2.10什么叫中断向量?它放在那里?对应于1CH的中断向量存放在哪里?如果1CH的中断处理子程序从5110H:2030H开始,则中断向量应怎样存放?o2.11非屏蔽中断处理程序的入口地址怎样寻找?o2.12叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中为什么内容?o2.13在VC+6.0下运行以下程序,说明该程序有什么功能?查找教材第3章3.2节Pentium的指令系统,说明每条汇编指令的功能。题2.13的源程序o#includeointmain()oochars10,*p;oprintf(请输入小写的hello:);ogets(s);op=s;o_asmoomovebx,ponext:subbyteptrebx,32oincebxocmpbyteptrebx,0ojnznextooputs(s);oreturn0;o
限制150内