微机原理经典课件与试题1.docx
《微机原理经典课件与试题1.docx》由会员分享,可在线阅读,更多相关《微机原理经典课件与试题1.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理经典课件与试题1
第一章微型计算机概述
一、计算机的定义
计算机是一种信息处理的工具,是一种在程序的控制下完成预定任务的电子仪器。
包括硬件和软件两部分。
信息处理:
包括信息的收集、加工、存储和传送。
二、微型计算机的组成
硬件:
构成计算机系统的物理实体
计算机的硬件设备主要有:
运算器、控制器、存储器、输入输出设备等部件。
1、微处理器
运算器:
完成算术及逻辑运算
算术运算:
加、减、乘、除的定点、浮点运算。
逻辑运算:
与(·或∧)、或(+或∨)、非、异或
控制器:
用于解释并协调整个系统完成指令的部件。
控制器由指令寄存器、指令译码器、时序和控制电路,以及中断机构组成。
指令寄存器存放当前正在执行的指令,而指令译码器对指令进行译码,此时,产生相应的控制信号送到时序和控制电路,从而组合成CPU外部的其他部件所需要的时序和控制信号。
这些信号送到微型计算机的其他部件,控制这些部件协调工作。
总之,微处理器是微型计算机的核心,它有两个指标:
字长和主频。
2、存储器
计算机中用于存储程序及数据的物理装置,分为内存和外存两大类。
内存包括RAM和ROM,容量有限,用来存放经常使用的程序和数据,除必要的系统程序外,一般程序是存放在外存当中,只有在运行时才调入内存的某个区域。
外存比内存的容量大的多,但速度较慢,用来存放不常使用的程序和数据,通常作为某个外部设备。
3、接口:
用于计算机主机和外设进行匹配的电子部件。
4、外设
输入设备:
计算机从外部世界获取信息的入口。
输出设备:
计算机向外部世界输出信息的出口,把运算结果或其它信息以数字、字符、图形等形式表示出来。
5、总线
总线为CPU和其它部件之间提供数据、地址和控制信息的传输通道。
有了总线结构以后,系统中各功能部件之间的相互关系就变为各个部件面向总线的单一关系。
一个部件要符合总线标准,就可以连接到采用这种总线标准的系统中。
6、系统软件
系统软件包括操作系统,一些语言处理程序和数据库。
其中操作系统是系统软件的核心,它管理计算机系统的全部硬件和软件资源,使计算机有条不紊的运行,为用户提供操作界面。
三、微型计算机的四个发展时期
1、1971—1972年典型产品Intel4004/8008,字长4位/8位,主频1MHz
2、1973—1977年典型产品Intel8080,字长8位,主频2MHz。
3、1978—1984年典型产品Intel8086,字长16位,主频5—10MHz。
4、1985—至今典型产品Intel80386,字长32位,主频在20MHz左右。
第二章16位和32位微处理器
一、16位微处理器8086
8086:
字长16位,主频5—10MHz,16根数据总线和20根地址总线,可寻址1MB的内存储空间和64KB的I/O端口。
8088:
准16位微处理器,内部寄存器、运算器以及内部数据总线都是按照16位来设计的,外部数据总线只有8条。
1、8086的编程结构
①总线接口部件BIU
功能:
负责与存储器、I/O端口传送数据。
a.BIU要从内存取指令送到指令队列缓冲器。
b.CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口取数据,将数据送给执行部件。
c.把执行部件的操作结果传送到指定的内存单元或外设端口中。
8086有6个字节的指令队列缓冲器,8088有4个字节的指令队列缓冲器。
采用“先进先出”的原则,都会在执行指令的同时,从内存中取下面一条或几条指令按顺序填入指令队列中。
这样就保证了8086/8088执行完一条指令后可以立即执行下一条指令,也就是说执行指令和取指令的时间可以重叠,从而提高了CPU的利用率。
而早期的8位微处理器,取指令和执行指令是循环进行的。
②执行部件EU
功能:
负责指令的执行。
2、BIU和EU的动作管理
时钟周期——CPU的基本时间计量单位,由计算机的主频决定。
时钟周期=1/主频
例如:
8086的主频为5MHz
时钟周期=1/(5×106Hz)=0.2×10-6s=200ns
总线周期——CPU访问一次存储器或I/O端口所需要的时间。
a.每当8086的指令队列缓冲器中有2个空字节(8088有一个空字节),总线接口部件就会自动启动取指操作,把指令队列填满。
b.每当执行部件准备执行一条指令时,它从BIU的指令队列的前部取出指令代码,然后用几个时钟周期去执行指令。
在指令执行过程中,如果必须访问存储器或I/O端口,那么EU就会请求BIU进入总线周期去完成访问存储器或I/O端口的操作。
此时会分为两种情况:
Ⅰ、如果BIU处于空闲状态,则会立即响应执行部件的请求。
空闲状态——指令队列已满,而EU对BIU没有总线访问请求时,BIU处于空闲状态。
Ⅱ、如果BIU此时正在将某个指令取到指令队列中(正在取指),此时BIU首先完成取指的总线周期,然后才能执行EU的总线请求。
c.在执行转移指令,调用指令和返回指令时,下一条要执行的指令就不是在程序中紧接排列的那条指令了,而BIU往指令队列装入指令时,总是按顺序进行的。
这样的话,装入指令队列的指令就没有用了。
这种情况下,指令队列的原有内容被自动清除,BIU会接着往指令队列装入由转移指令、调用指令或返回指令指定的指令。
3、8086的总线周期
为了取得指令和数据,BIU执行一个总线周期。
在8086/8088中,一个基本的总线周期由4个时钟周期组成,将这4个时钟周期分别称为4个状态,即T1状态、T2状态、T3状态、T4状态。
二、8086的引脚信号和工作模式
1、8086的引脚信号
①AD0—AD15地址/数据复用引脚
分时复用,T1时刻出现的是地址,T3时刻出现的是数据。
②A19/S6—A16/S3地址/状态复用引脚
输出、三态总线,T1状态输出地址高4位,T2—T4输出状态信息
S6=0,表示8086/8088当前连在总线上;
S5表示中断允许标志位IF的当前位置;
S4、S3用来指示当前使用哪个段寄存器
③控制总线
a.
/S7高8位数据总线允许/状态复用
在T1状态输出,高8位数据有效,状态信号S7在T2—T4状态输出。
b.
表示对存储器或I/O端口的读操作。
c.REDAY“准备好”信号线,输入
REDAY=1表示所寻址的内存或I/O端口已准备就绪,可以进行一次数据传送。
d.
等待测试信号输入
用于多处理器系统,
信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于空转状态进行等待;当
信号有效时,等待状态结束,CPU继续执行被暂停的指令。
e.INTR可屏蔽中断请求信号输入端
INTR=1,表示外设提出了中断请求信号,如果IF=1,则CPU相应中断。
f.NMI非屏蔽中断请求信号输入端
由低到高的上升沿,不受IF的影响。
2.最小模式
MN/
接VCC端——最小模式
MN/
接地——最大模式
最小模式适用于较小规模的单处理器系统
第24——31号引脚的信号如下:
①
中断响应信号输出
用于对外设的中断请求信号做出响应,由两个连续的负脉冲构成。
第一个负脉冲通知外设中断请求已经得到允许;第二个负脉冲通知外设往DB上放中断类型码。
②ALE地址锁存信号
T1状态,ALE输出有效电平,以表示当前地址/数据复用总线上输出的是地址信息。
③
数据允许信号
CPU当前准备发送或接收一个数据。
④DT/
数据收发信号,输出
控制8286/8287的数据传送方向。
DT/
=1进行数据发送;DT/
=0进行数据接收。
⑤M/
存储器/输入输出选择信号,输出
M/
=1CPU和存储器之间传送数据;M/
=0CPU和I/O设备之间传送数据。
⑥
写信号输出
=0CPU当前进行存储器或I/O端口写操作。
⑦HOLD总线保持请求信号,输入
HLDA总线保持响应信号,输出
a.主模块发高电平总线请求信号。
b.CPU允许让出总线,发总线响应信号。
c.主模块放弃对总线的占有。
d.CPU又获得对总线的使用权
三、8086的的操作和时序
1、总线操作
总线读操作——指CPU从存储器或I/O端口读取数据。
总线写操作——指CPU将数据写入存储器或I/O端口。
①最小模式下的总线读操作(以读存储器为例)
T1状态
M/
在总线周期开始就有效,并一直保持到T4状态末尾才结束。
/S7同时输出低电平,表示高8位数据总线上的信息可以使用。
ALE在T1状态为一个正脉冲信号,以实现对地址信号的锁存。
本总线周期为读周期,所以DT/
为低电平,让数据总线收发器8286接收数据。
T2状态
A19/S6—A16/S3输出状态信息。
AD0—AD15进入高阻状态,同时方向由输出变为输入。
低电平有效,表示允许数据传送,可作为数据总线收发器8286的数据允许信号,保持到T3状态。
低电平有效,保持到T3状态结束。
T3状态
内存单元将数据送到DB上,CPU在T3下降沿处开始采样。
T4状态
CPU在T3状态结束和T4状态开始的交界处开始采样数据总线,获得数据总线周期到此结束。
Tw状态
系统中所使用的存储器或I/O设备的工作速度较慢时,在规定的总线周期内不能完成操作,就要在T3和T4之间插入1个或多个Tw状态。
CPU在T3的下降沿采样到READY线为低电平信号后,则在T3之后自动插入一个Tw状态。
②最小模式下的总线写操作(以写存储器为例)
T1状态
M/
在总线周期开始就有效,指出当前执行的是访问存储器操作,并一直保持到T4状态末尾才结束。
/S7同时输出低电平,表示高8位数据总线上的信息可以使用。
ALE在T1状态为一个正脉冲信号,以实现对地址信号的锁存。
本总线周期为写周期,所以DT/
为高电平,一直维持到T4状态,让数据总线收发器8286准备发送数据。
T2状态
A19/S6—A16/S3输出状态信息。
地址信息发出之后,CPU立即用AD0—AD15进发出要写到内存单元的数据,保持到T2中间。
低电平有效,表示允许数据传送,可作为数据总线收发器8286的数据允许信号,保持到T3状态。
低电平有效,保持到T4状态结束。
T3状态
CPU提供稳定的状态和数据,并维持
、M/
、
为有效电平。
T4状态
CPU认为存储器已经完成数据写入,数据撤销。
状态和控制信号进入无效状态,
进入高电平从而使8286不工作。
2、中断系统和中断操作
8086/8088可以处理256种不同的中断,每个中断对应一个中断类型码,中断类型码为0——255。
①中断的分类
硬件中断是通过外部是硬件产生的
非屏蔽中断NMI;可屏蔽中断INTR
软件中断是CPU根据软件的某条指令或软件对标志寄存器中某个标志的设置而产生的。
比如:
除数为0引起的中断;中断指令引起的中断
②中断向量和中断向量表
中断向量:
中断处理子程序的入口地址。
每个中断类型对应一个中断向量。
一个中断向量占用4个存储单元,其中前2个单元存放中断处理子程序入口地址的偏移地址;后2个单元存放中断处理子程序入口地址的段地址。
中断向量不是任意存放的。
中断向量表:
内存0段的0000—03FFH(1023D)区域。
例:
20H号中断对应的中断向量为4030:
2010H
③硬件中断的响应和时序
可屏蔽中断的响应过程:
当CPU在INTR引脚上接收一个高电平的中断请求信号,并且当前中断允许标志为1时,CPU就会在当前指令执行完以后,开始响应外部的中断请求,即CPU往
发两个连续的负脉冲,外设接口接到第二个负脉冲以后,立即往数据总线上给CPU送来中断类型码。
之后依次做以下工作:
a.从数据总线上读取中断类型码,将其存入内部暂存器。
b.将标志寄存器(PSW)的值压入堆栈;
c.清楚中断允许标志IF和跟踪标志TF;
d.将断点保存到堆栈中;
e.根据前面得到的中断类型码,到内存0段的中断向量表找到中断向量,再根据中断向量转入相应的中断处理子程序。
响应可屏蔽中断时的总线时序:
a.执行2个中断响应总线周期。
CPU接收中断类型码,将它左移2位称为中断向量的起始地址,存入内部暂存器。
b.执行一个总线写周期,将PSW的值压入堆栈。
c.清除IF和TF。
d.执行一个总线写周期,将断点处CS的内容压入堆栈。
e.执行一个总线写周期,将断点处IP的内容压入堆栈。
f.执行一个总线读周期,CPU将从中断向量所在的前2个字节中读取中断处理子程序入口地址的偏移地址送入IP。
g.执行一个总线读周期,将中断处理子程序入口地址的段地址送入CS。
④中断处理子程序
a.保护现场
b.开中断
c.中断服务——中断处理的具体内容
d.关中断
e.恢复现场
f.中断返回
出师表
两汉:
诸葛亮
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:
愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:
愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也
。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。