微机原理-复习省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件_第1页
微机原理-复习省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件_第2页
微机原理-复习省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件_第3页
微机原理-复习省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件_第4页
微机原理-复习省名师优质课赛课获奖课件市赛课百校联赛优质课一等奖课件_第5页
已阅读5页,还剩173页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机系统8086微处理器工作模式及引脚特征

28086微型计算机系统总线时序

4半导体存放器分类18086微处理器结构

18086微型计算机系统

31/178微处理器结构8086CPU16位微处理器8086CPU含有

20条地址线,可直接寻址

1MB容量内存空间,在访问I/O端口时,使用地址线

16条

,最多可寻址

64K个I/O端口。有16根数据线2/1788086内部结构有两个功效模块:模块之一:总线接口单元BIU,主要完成计算物理地址、从内存中取指令、实现指令要求读/写存放器或外部设备等信息传输类操作。模块之二:执行单元EU,主要负责指令译码、执行和数据运算,包含计算有效地址

8086/8088CPU内部结构分为哪两大模块,各自主要功效是什么?答:总线接口部件(BIU)功效:依据执行单元EU请求完成CPU与存放器或IO设备之间数据传送。执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出对应传送数据或算术控制信号接收由总线接口部件传送来数据或把数据传送到总线接口部件进行算术运算。3/1788086指令队列作用是什么?

答:作用是:在执行指令同时从内存中取了一条指令或下几条指令,取来指令放在指令队列中这么它就不需要象以往计算机那样让CPU轮番进行取指和执行工作,从而提升CPU利用率。EUBIU指令队列4/178

8086CPU内部存放器有哪几个?各自特点和作用是什么?

8086CPU有14个16位存放器和8个8位存放器,可分为:数据存放器;指针和变址存放器;段存放器;指令指针存放器;标志存放器。

5/178图2-58086/8088CPU存放器结构6/178数据存放器主要用来存放操作数或中间结果,以降低访问存放器次数。有:4个16位存放器:AX、BX、CX、DX;8个8位存放器:AH、AL、BH、BL、CH、CL、DH、DL;能够存放偏移地址:BXBPSIDI其中BX放数据段地址

BP放堆栈段地址7/178

简明解释以下名词意义:存放器,堆栈,IP,SP,BP,段存放器,状态标志,控制标志

存放器:是计算机系统中记忆元件,用于存放指令和数据。堆栈:在存放器中开辟一个区域,用来存放需要暂时保留数据。其操作特点是先进后出。IP:指令指针存放器,用来存放将要执行下一条指令在现行代码段中偏移地址。SP:堆栈指针存放器,用于指向当前栈顶单元。BP:基址指针,间接寻址中用于存放基址,隐含段地址为SS。段存放器:用于存放逻辑段段地址。状态标志:SF、ZF、OF、AF、PF和CF,反应运算结果状态特征。控制标志:IF、DF和TF,对可屏蔽中止、字符串操作指针变换方向和单步运行起控制作用。8/178为了实现寻址1MB存放器空间,8086CPU将1MB存放空间分成若干个逻辑段进行管理,4个16位段存放器来存放每一个逻辑段段起始地址。9/178已知堆栈段存放器(SS)=2400H,堆栈指针(SP)=1200H,计算该堆栈栈顶实际地址,并画出堆栈示意图。(SS)=2400H,(SP)=1200H

;PA=(SS)×10H+(SP)=2400H×10H+1200H=25200H。10/178标志存放器FRFR是一个16位存放器。9个位用作标志位:

状态标志位有6个,统计程序中运行结果状态信息,是依据指令运行结果由CPU自动设置。这些状态信息通常作为后续转移指令转移控制条件,所以也称为条件码。控制标志位有3个,能够编程设置,用于控制处理器执行指令方式。控制标志设置之后,可对后面操作产生控制作用。未标明位在8086中不用。OF111512DF10IF9TF8SF7ZF65AF43PF21CF011/178例8086标志存放器分为

6个

状态

标志位和

3个

控制

标志位,它们各自含义和作用是什么

OF111512DF10IF9TF8SF7ZF65AF43PF21CF012/178

要完成下述运算或控制,用什么标志位判别?其值是什么?(1)比较两数是否相等(2)两数运算后结果是正数还是负数(3)两数相加后是否溢出(4)采取偶校验方式,判定是否要补1(5)两数相减后比较大小(6)中止信号能否允许答:(1)ZF,两数相减,若ZF=1,则相等。(2)SF,SF=1则为负,不然为正(3)对有符号数:OF,OF=1为溢出;对无符号数:CF,CF=1为溢出(4)PF,PF=1,不补1(5)对有符号数:无溢出时(OF=0),如ZF=1,则两数相等;如ZF=0且SF=0,则被减数大;如ZF=0且SF=1,则减数大;有溢出时(OF=1),如SF=1,则被减数大;如F=0,则减数大;对无符号数:如ZF=1,则两数相等;如CF=0,则被减数大;如CF=1,则减数大(6)IF,IF=1,允许中止13/178存放器组织与段存放器存放器是微处理器内部暂存数据存放单元,以名称表示存放器则是微处理器外部存放程序及其数据空间主存需要利用地址区分14/178数据存放格式D7D0字节D15D0字D31D0双字D7D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址存放单元及其存放内容每个存放单元都有一个编号;被称为存放器地址每个存放单元存放一个字节内容0002H单元存放有一个数据34H表示为 [0002H]=34H15/178多字节数据存放方式图中2号“字”单元内容为:[0002H]=1234H2号“双字”单元内容为:[0002H]=78561234H16/1788086存放器空间最大能够为多少?怎样用16位存放器实现对20位地址寻址?完成逻辑地址到物理地址转换部件是什么?答:8086存放器空间最大能够为220(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存放单元时,先将段存放器内内容左移4位,然后加上指令中提供16位偏移地址形成20位物理地址。17/178物理地址:指存放器中存放单元实际地址编码,是一个绝对地址,是CPU访问存放器实际寻址地址,对于8086系统,地址范围为00000H~FFFFFH。逻辑地址:由段基址和偏移地址组成,均为无符号16位二进制数,程序设计时采取逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址×16+偏移地址。偏移地址:是某一存放单元距离所在逻辑段开始地址字节个数。有效地址:是指令中计算出要访问存放单元偏移地址。物理地址计算公式:物理地址=段地址×10H+有效地址(或偏移地址)简明解释以下名词意义:物理地址,逻辑地址:18/1788086系统中存放器分为几个逻辑段?各段之间关系怎样?每个段存放器作用是什么8086CPU将1MB存放空间分成逻辑段来进行管理:最多可分成64K个段;每个逻辑段最大为64KB。各段起始位置由程序员指出,能够彼此分离,也能够首尾相连、重合或部分重合。4个16位段存放器用来存放每一个逻辑段“段基地址”(段起始地址地高16位):CS中为代码段起始地址;DS中为数据段起始地址;SS中为堆栈段起始地址;ES中为附加段起始地址。19/178段存放器装入以下数据,写出每段起始和结束地址。(1)1000H(2)1234H(3)2300H(4)E000H(5)AB00H答:(1)10000H~1FFFFH(2)12340H~2233FH(3)23000H~32FFFH(4)E0000H~EFFFFH(5)AB000H~BAFFFH20/17810550H250A0H2EF00H8FF00HCSSSCSDSES解:

各段分布及段首址见右图所表示。操作数物理地址为:250AH×10H+0204H=252A4H已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H,

DS段有一操作数,其偏移地址=0204H,

1)画出各段在内存中分布

2)指出各段首地址

3)该操作数物理地址=?例21/178段存放器CS=1200H,指令指针存放器IP=FF00H,此时,指令物理地址为多少?指向这一物理地址CS值和IP值是唯一吗?答:指令物理地址为21F00H;CS值和IP值不是唯一,比如:CS=2100H,IP=0F00H。22/178

若当前SS=3500H,SP=0800H,说明堆栈段在存放器中物理地址,若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为何值?答:物理地址:35000H~35800H。入栈10个字节后SP为7F6H。再出栈6个字节后SP

为7FCH。23/178

8086CPU重新开启后,从何处开始执行指令?答:重新开启后,CS=FFFFH,IP=0000H,故从物理地址为FFFF0H位置开始执行指令。24/178

8086系统中存放器采取什么结构?用什么信号来选中存放体?答:8086系统中,存放器采取分体结构,1MB存放空间分成两个存放体:偶地址存放体和奇地址存放体,各为512KB。使用A0

和BHE来区分两个存放体。当A0=0时,选中偶地址存放体,与数据总线低8位相连,从低8位数据总线读/写一个字节。当BHE=0时,选中奇地址存放体,与数据总线高8位相连,从高8位数据总线读/写一个字节。当A0=0,BHE=0时,同时选中两个存放体,读/写一个字。25/1783.38086微型计算机系统微型计算机结构示意图存储器I/O接口输入设备I/O接口数据总线DB控制总线CB地址总线AB输出设备CPU26/178什么是微机总线,分为哪三组?答:是传递信息一组公用导线。分三组:地址总线,数据总线,控制总线27/1788086微处理器工作模式及引脚特征8086工作模式8086CPU含有两种不一样工作模式来适应不一样应用场所:最小模式系统控制总线就直接由CPU控制线供给最大模式

:8086经过一个总线控制器8288来形成各种总线周期,控制信号由8288供给。8086工作模式由硬件设计决定:引脚连电源(+5V),则8086处于最小模式;引脚接地,则8086处于最大模式。MN

/MXMN/MX28/178

说明8086系统中“最小模式”和“最大模式”两种工作方式主要区分是什么?答:为了便于组成不一样规模系统,在8086芯片中设计了两种工作模式,即最小模式和最大模式。最小模式用于单机系统,系统中所需要控制信号全部由8086直接提供;最大模式用于多处理机系统,系统中所需要控制信号由总线控制器8288提供。29/17830/17831/178

8086系统中为何要用地址锁存器?8282地址锁存器与CPU怎样连接?答:为了降低引脚数量,8086CPU地址引脚和数据引脚分时复用,为了确保在总线操作周期中地址信号能有效而稳定输出,必须使用地址锁存器。因为8086有20条地址线,故需使用三片8282,其中OE接地,STB与CPUALE相连,前两片8282DI0~DI7分别与CPUAD0~AD15相连,第三片8282DI0~DI3分别与CPUAD16~AD19相连,DI4与CPUBHE相连。32/178INTR、INTA、NMI、ALE、HOLD、HLDA引脚名称各是什么?答:INTR是可屏蔽请求信号,INTA中止响应信号,NMI是不可屏蔽中止请求信号,ALE是地址锁存允许信号,HOLD总线请求信号,HLDA总线请求响应信号。33/178

CPU执行指令时包括三种周期:时钟周期总线周期指令周期3.3.48086微型计算机系统总线时序8086微型计算机系统总线时序34/178总线周期把CPU经过总线进行某种操作过程称为总线周期(BusCycle),表示从M或I/O端口存取一个数据所需时间。依据总线操作功效不一样,分为:存放器读周期、存放器写周期

I/O读周期、I/O写周期一个基本总线周期由4个时钟周期组成(T1、T2、T3、T4)。附加时钟周期等候状态Tw35/178指令周期总线周期……总线周期时钟周期时钟周期时钟周期时钟周期…………36/178

一个基本总线周期37/178

什么叫总线周期?在CPU读/写总线周期中,数据在哪个机器状态出现在数据总线上?答:CPU完成一次存放器访问或I/O端口操作所需要时间称为一个总线周期,由几个T状态组成。在读/写总线周期中,数据在T2~T4状态出现在数据总线上。38/178中止响应周期时序普通外部设备中止是经过INTR引脚向CPU发出中止请求,这个可屏蔽中止请求信号有效电平(高电平),必须维持到CPU响应中止为止。若标志IF=1,表示CPU允许中止,此时CPU在执行完当前指令后响应中止,其中止响应周期时序以下列图所表示。39/178第4章8086寻址方式与指令系统概述1

8086寻址方式2

8086指令系统340/178808七种基本数据寻址方式(1)马上寻址;(2)存放器寻址;(3)直接寻址;(4)存放器间接寻址;(5)存放器相对寻址;(6)基址变址寻址;(7)相对基址变址寻址。存放器寻址方式41/178分别说明以下指令源操作数和目标操作数各采取什么寻址方式。(1)MOVAX,2408H(2)MOVCL,0FFH(3)MOVBX,[SI](4)MOV5[BX],BL(5)MOV[BP+100H],AX(6)MOV[BX+DI],’$’(7)MOVDX,ES:[BX+SI](8)MOVVAL[BP+DI],DX(9)INAL,05H(10)MOVDS,AX答:(1)马上数,存放器(2)马上数,存放器(3)存放器间接,存放器(4)存放器,存放器相对(5)存放器,存放器相对(6)马上数,基址变址(7)基址变址,存放器(8)存放器,相对基址变址(9)直接端口寻址,存放器(10)存放器,存放器42/178设DS=1000H,ES=H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,数据段中变量名为VAL偏移地址值为0030H,试说明以下源操作数字段寻址方式是什么?物理地址值是多少?(1)MOVAX,[100H](2)MOVAX,VAL(3)MOVAX,[BX](4)MOVAX,ES:[BX](5)MOVAX,[SI](6)MOVAX,[BX+10H](7)MOVAX,[BP](8)MOVAX,VAL[BP][SI](9)MOVAX,VAL[BX][DI](10)MOVAX,[BP][DI]答:(1)直接,10100H(2)直接,10030H(3)存放器间接,10100H(4)存放器间接,0H(5)存放器间接,100A0H(6)存放器相对,10110H(7)存放器间接,35200H(8)相对基址变址,352D0H(9)相对基址变址,10154H(10)基址变址,35224H43/1784.38086指令系统8086指令系统包含六大类指令(87条):数据传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令处理器控制指令44/178指出以下指令中哪些是错误,错在什么地方。(1)MOVDL,AX(2)MOV8650H,AX(3)MOVDS,0200H(4)MOV[BX],[1200H](5)MOVIP,0FFH(6)MOV[BX+SI+3],IP(7)MOVAX,[BX][BP](8)MOVAL,ES:[BP](9)MOVDL,[SI][DI](10)MOVAX,OFFSET

0A20H(11)MOV

AL,OFFSET

TABLE(12)XCHGAL,50H(13)INBL,05H(14)OUTAL,0FFEH答:(1)长度不匹配(2)马上数不能做目标操作数(3)段存放器不能用马上数赋值(4)两个内存单元不能直接传送数据(5)IP不能用指令直接修改(6)指令中不能出现IP(7)BX/BP应与SI/DI搭配(8)正确(9)SI/DI应与BX/BP搭配(10)OFFSET后应跟内存单元(11)偏移地址为16位,AL长度不够(12)马上数不能用于XCHG(13)IN必须用AL/AX(14)操作数次序反向;地址应为8位45/178指令指令对错P745PUSHPOPCMPTESTXLAT

LEALOOPXORCBWJMP(段间、段内)JCC(段内)SHLSHRSALSARMOVSBMOVSW(STDCLDDF1,0)REPMOVSB46/178P758、9、1047/178第5章8086汇编语言程序设计伪指令——指示汇编、链接程序怎样进行汇编和链接,影响目标代码生成,本身不产生目标代码。——有符号定义语句、数据定义语句、程序结构语句、模块链接语句、相关宏语句、条件汇编语句等。48/178等值语句

格式:符号名EQU表示式变量定义语句DB变量为字节数据类型DW变量为字数据类型,存放时低对低高对高。DD变量为双字数据类型,存放时低对低高对高。49/1781)为数据项分配存放单元,用变量名作为该存放单元名称。例:XDB 25H (2)预留内存单元,但不赋值,以存放运算结果.例:ADB?50/178(3)定义一个数组例:W_TABLEDW1122H,3344HB_TABLEDB1,2,4,9,16

当表中操作数相同时,可用重复操作符DUP来缩写:格式:重复次数DUP(操作数)例:ALL_ZERODB0,0,0,0,0,0ALL_ZERODB6DUP(0)51/178(4)定义字符串(只能用DB定义)例:MESSAGEDB ‘HELLO’

每个字符值为它ASCII码值,所以用DB来定义。3.指定地址伪指令ORG分析操作符(SEG、OFFSET、TYPE、SIZE、LENGTH)52/178P89比如:MY_DATASEGMENTORG100HMYDATDW1,2,$+4MY_DATAENDS53/178

框架一:

DATA SEGMENT ;定义数据段

VAL1DB12H,8EH ;定义变量

……

DATA ENDS

;数据段结束

CODE SEGMENT ;定义代码段 ASSUMEDS:DATA,CS:CODE ;段属性说明 START:MOVAX,DATA ;初始化DS

MOVDS,AX

…… ;填写代码

MOVAX,4C00H ;返回DOS INT21H CODEENDS ;代码段结束 ENDSTART ;源程序结束54/178DOS功效调用方法(输入、输出)(1)单字符输入(01H功效)入口参数无功效号AH=01H

类型号21H

出口参数AL=键入字符ASCII码(2)显示单字符(02H、功效)入口参数DL=

要显示字符ASCII码功效号AH=02H

类型号21H

出口参数无实现功效显示指定字符,光标随动。55/178对存放单元操作BUFDB1,2,….MOVSI,OFFSETBUFMOVAX,[SI]56/178比较、转移比较大小

CMPAX,BX转移JCCCC代表条件无符号数A,B,E,N有符号数G,L,E,N

CMPAX,BX

JANEXT(标号)满足条件转移到标号行

MOVAX,1不满足条件执行NEXT:MOVAX,0满足条件执行(AX大于BX)

57/178循环MOVCX,100LOOPLOP158/178算法最大、最小统计正、负数统计数字、字符个数大、小写转换例5-2例5-12例5-459/178第7章存放器存放器分类内存:是内部存放器简称,又称主存。内存直接与CPU相联接,是计算机组成部分。外存:即外部存放器,也称辅存。外存不直接与CPU相联接,而是经过I/O接口与CPU联接,其主要特点是大容量。60/178按存取方式分类随机存放器RAM(RandomAccessMemory)

只读存放器ROM(Read-OnlyMemory)串行访问存放器(SerialAccessStorage)61/178随机存取存放器RAM特点:

RAM读写次数无限。假如断开RAM电源,其内容将全部丢失。RAM分类:静态RAM(SRAM,StaticRAM)动态RAM(DRAM,DynamicRAM)(要定时刷新)62/178只读存放器ROMEPROM——

存放系统(监控)程序,无需在线修改参数(如BIOS)。E2PROM——数据、参数等有掉电保护要求数据。63/178RAM有几个,各有什么特点?ROM有几个,各有什么特点?答:RAM有两种,SRAM(静态RAM),它采取触发器电路组成一个二进制位信息存放单元,这种触发器普通由6个晶体管组成,它读出采取单边读出原理,写入采取双边写入原理;DRAM(动态RAM),它集成度高,内部存放单元按矩阵形式排列成存放体,通常采取行,列地址复合选择寻址法。ROM有5种,固定掩摸编程ROM,可编程PROM,紫外光檫除可编程EPROM,电可檫除可编程EPROM,闪速存放器。64/178若用4K*1位RAM芯片组成8K*8为存放器,需要多少芯片?A19—A0地址线中哪些参加片内寻址,哪些用做芯片组片选信号?答:需要16片芯片;其中A11-A0参加片内寻址;A12做芯片组片选信号。若系统分别使用512K*8、1K*4、16K*8、64K*1RAM,各需要多少条地址线进行寻址,各需要多少条数据线?答:512K*8需要19条地址线,8条数据线。1K*4需要10条地址线,4条数据线。16K*8需要14条地址线,8条数据线。64K*1需要16条地址线,1条数据线。某微机系统RAM容量为8K*8,若首地址为4800H,则最终一个单元地址是多少?答:最终一个单元地址是:4800H+213-165/1788086系统存放器接口存放器与系统之间连接主要包含:数据线连接地址线连接控制信号连接。控制信号普通包含读、写、片选等信号。66/178数据线16位微机系统中存放器与系统联接(8位存放体)8086系统分为奇存放体、偶存放体:67/178地址线片内地址片内地址线数量由储存器芯片型号(容量)决定如27128容量为16K,储存器芯片内地址为14位。

8086系统片内地址线与CPU地址线连接因为8086系统采取奇、偶存放体结构,A0作为偶存放体片选信号,所以与CPU地址线连接从A1开始,如27128A0---A13对应A1---A14片外地址

CPU地址线与片内地址线相连后剩下高位地址线,片外地址线经译码电路后与存放体片选信号线相连。68/178译码电路如62256容量32K(A0-A14)接A1-A15片外地址A16-A19如要求RAM地址范围从80000H-8FFFFFH那么片外地址为1000(A19-A16)如采取3-8译码器电路以下:当A19-A16为1000时Y0为低电平CS有效69/178控制信号最大模式MEMW、MEMR最小模式IO/M(接片选)WR

RD注:MEMW=IO/M+WRMEMR=IO/M+RD70/178第8章基本输入输出接口什么是接口?其作用是什么连接外部设备与微型计算机接口电路。作用:(1)处理CPU与外设工作速度不匹配问题;(2)处理CPU与外设工作时序配合问题;(3)实现信息格式转换;(4)处理信息类型与信号电平匹配问题。71/178输入/输出接口电路有哪些存放器,各自作用是什么?通常有数据输入、数据输出、控制和状态存放器等。在CPU与外部设备之间进行数据传输时,各类信息写入接口中对应存放器,或从对应存放器读出。CPU从数据输入存放器和状态存放器中读出数据和状态,但不能向其中写内容;

CPU往数据输出存放器和控制存放器中写数据和控制信息,但不能从其中读内容。72/178什么叫端口,I/O端口有哪两种编址方式,各自优缺点是什么端口指输入/输出接口中存放器统一编址方式是将I/O端口与内存单元统一起来进行编号,即包含在1MB存放器空间中,看作存放器单元,每个端口占用一个存放单元地址。该方式主要优点是不需要专门I/O指令,对I/O端口操作指令类型多;缺点是端口要占用部分存放器地址空间,不轻易区分是访问存放器还是外部设备。独立编址端口单独组成I/O地址空间,不占用存放器地址。优点是地址空间独立,控制电路和地址译码电路简单,采取专用I/O指令,使得端口操作指令在形式上与存放器操作指令有显著区分,程序轻易阅读;缺点是指令类别少,普通只能进行传送操作。73/178CPU与输入输出设备之间传送信息由哪几类?对应端口称为何端口?【解答】CPU与输入/输出设备交换信息有3类:数据信息、状态信息和控制信息。数据信息对应端口称为数据端口;状态信息对应端口称为状态端口;控制信息对应端口称为控制端口。74/178CPU和外设之间数据传送方式有哪几个?无条件传送方式通惯用在哪些场所?【解答】CPU和外设之间数据传送方式通常有四种:无条件传送方式、查询传送方式、中止传送方式、DMA传送方式和I/O处理机方式。开关、LED等75/178在一个微型计算机系统中,确定采取何种方式进行数据传送依据是什么?无条件传送方式主要用于对简单外设进行操作,或者外设定时是固定或已知场所。条件传送方式主要用于不能确保输入设备总是准备好了数据或者输出设备已经处于能够接收数据状态。中止控制方式主要用于需要提升CPU利用率和进行实时数据处理情况。DMA控制方式主要用于快速完成大批数据交换任务。在实际工作中,详细采取哪种方式要依据实际工作环境与需要结合各种方式特点进行选择。76/178INAL,DX

DX指定端口存放器内容送ALOUTDX,AL

AL内容送DX指定端口存放器77/178第9章可编程接口芯片常见中止源有哪几类?CPU响应中止条件是什么?常见中止源有:普通输入/输出设备请求中止;实时时钟请求中止;故障源;数据通道中止和软件中止。CPU响应中止条件:若为非屏蔽中止请求,则CPU执行完现行指令后,就马上响应中止。CPU若要响应可屏蔽中止请求,必须满足以下三个条件:①无总线请求;②

CPU允许中止;③

CPU执行完现行指令。78/178简述微机系统中止处理过程。【解答】(1)中止请求:外设需要进行中止处理时,向CPU提出中止请求。(2)中止响应:CPU执行完现行指令后,就马上响应非屏蔽中止请求。可屏蔽中止请求,CPU若要响应必须满足三个条件。(3)中止处理:保护现场、开中止、中止服务。(4)中止返回:CPU执行IRET中止返回指令时,自动把断点地址从堆栈中弹出到CS和IP中,原来标志存放器内容弹回Flags,恢复到原来断点继续执行程序。79/1788086中止分哪两大类?各自有什么特点?中止向量和中止向量表含义是什么?8086一共可处理多少级中止?【解答】8086中止分为外部中止和内部中止两种:外部中止由外部硬件产生,由CPU外部中止请求信号触发,分为非屏蔽中止NMI和可屏蔽中止INTR。内部中止是为了处理程序运行过程中发生一些意外情况或调试程序而提供中止。8086中止系统能够处理256个不一样中止,每一个中止安排一个编号,范围为0~255,称为中止类型。每种中止类型对应中止服务程序入口地址称为中止向量。把系统中全部中止向量按中止类型从小到大次序放到存放器特定区域,该区域称为中止向量表。每个中止向量在中止向量表中占用4字节,CPU响应中止后经过将中止类型×4得到中止向量在中止向量表中首地址。80/178设置中止向量方法:1、将中止服务程序入口地址直接写入中止向量表中对应单元MOVAX,0000HMOVDS,AXMOVSI,中止类型号*4MOVAX,中止服务程序偏移地址MOV[SI],AXMOVAX,中止服务程序段地址MOV[SI+2],AX81/1782、二是利用DOS功效调用完成中止向量设置

中止向量设置(DOS功效调用INT21H)

功效号:AH=25H

入口参数:AL=中止类型号,

DS:DX=中止向量(段地址:偏移地址)

获取中止向量(DOS功效调用INT21H)

功效号:AH=35H

入口参数:AL=中止类型号出口参数:ES:BX=中止向量(段地址:偏移地址)

82/178比如,设某中止中止类型号n为40H,中止服务子程序入口地址为INT-P,调用25H号功效装入中止向量程序段以下:

CLI

;IF=0,关中止MOV

AL,40H

;中止类型号40H送AL

MOV

DX,SEGINT-P

;中止服务子程序段基址送DS

MOV

DS,DX

MOV

DX,OFFSETINT-P

;中止服务子程序偏移地址送DX

MOV

AH,25H

;25H功效调用INT

21H

STI

;IF=1,开中止…

INT-P:

;中止服务子程序

IRET

;中止返回83/178简述8086中止类型,非屏蔽中止和可屏蔽中止有哪些不一样之处?CPU经过什么响应条件来处理这两种不一样中止?【解答】8086中止系统能够处理256个不一样中止源,并为每一个中止安排一个编号,范围为0~255,称为中止类型。硬件中止分为非屏蔽中止和可屏蔽中止,非屏蔽中止不受中止允许标志位IF影响,在IF=0关中止情况下,CPU也能在当前指令执行完成后就响应NMI上中止请求。可屏蔽中止:CPU将依据中止允许标志位IF状态决定是否响应。假如IF=0,表示CPU关中止;假如IF=1,表示CPU开中止,CPU执行完现行指令后会转入中止响应周期。84/178已知对应于中止类型码为18H中止服务程序存放在0020H:6314H开始内存区域中,求对应于18H类型码中止向量存放位置和内容。偏移地址EA=18H×4=60H,18H中止向量在中止向量表中入口地址为00000H+60H=00060H。中止服务程序存放在0020H:6314H开始内存区域中,所以(00060H)=0020H,(00061H)=6314H。85/1788259A主要功效有:(1)每一片8259A可管理8级优先权中止源,经过8259A级联,可扩充至管理64级优先权中止源。

(2)对任何一级中止源都可单独进行编程实现屏蔽或开放。

(3)能向

CPU提供可编程中止类型号。这个功效使原来没有能力提供中止类型码8255A、

8253、8251A等可编程接口芯片,借助8259A一样能够采取中止I/O方式来进行管理。

(4)能经过编程实现不一样工作方式。86/178当有一条或若干条中止请求线(IR7~IR0)变为高电平,则中止请求存放器IRR对应位置位。若中止请求线中最少有一条是中止允许(中止屏蔽存放器对应位开放,且请求中止级别高于当前正在服务中止或未处于中止服务程序中),则8259A经过INT引脚向CPUINTR引脚发出中止请求信号。CPU在当前指令执行完后,若检测到中止请求信号,且处于开中止状态(IF=1)则会暂停执行下一条指令,进入中止响应总线周期,发送两个INTA信号给8259A作为响应。10.3.38259A中止处理过程87/1788259A在接收到来自CPU第一个INTA信号后,使中止源中优先级最高ISR位置位,而对应IRR位被复位。在该周期中,8259A不向数据总线送任何内容。在第二个INTA脉冲期间,8259A向CPU发出中止类型号(8位二进制数,其中高位T7~T3是8259A初始化时设置,而低3位是8259A自动插入),CPU取得后,将此向量乘以4,在中止向量表中找到对应中止服务程序入口地址。10.3.38259A中止处理过程88/178中止响应周期结束后,CPU就转而执行中止服务程序。采取AEOI方式时,在第二个脉冲INTA结束时,ISR位被复位。不然,在中止服务程序中,应在IRET指令加入对应EOI指令,使ISR对应位复位。10.3.38259A中止处理过程89/178在一个8259A芯片有以下几个内部存放器:

InterruptMaskRegister(IMR)

InterruptRequestRegister(IRR)

InSeviceRegister(ISR)90/1788259A结束中止处理方式有:(1)普通EOI方式:只有在当前结束中止总是还未处理完级别最高中止时,才能使用这种结束方式。(2)指定EOI方式:适合于在任何情况下使用。(3)自动EOI方式:只有在一些以预定速率发生中止,且不会发生同级中止相互打断或低级中止打断高级中止情况下,才使用自动EOI方式。91/178惯用可编程接口技术及应用可编程计数器/定时器8253

1、每片有3个独立16位计数通道。

2、每个计数器可按二进制或十进制来计数,时钟脉冲下降沿使计数器进行减1操作

3、每个计数器可编程设定6种工作方式之一。92/17893/1783

个引脚说明:

CLK时钟输入信号

在计数过程中,此引脚上每输入一个时钟信号(下

降沿),计数器计数值减12)GATE

门控输入信号

控制计数器工作,可分成电平控制和上升沿控制两种类型。

3)OUT

计数器输出信号

当一次计数过程结束(计数值减为0

),OUT

引脚上将产生一个输出信号

94/1788253有几个计数通道,每条计数通道有哪些信号线,其作用是什么?答:8253有三个计数通道,每个计数通道有3条信号线:CLK:计数输入用于输入定时基准脉冲或计数脉冲.OUT:输出信号以对应电平指示计数完成或输出脉冲波型.GATA:选通输入用于开启或禁止计数器操作,以使计数器和计数输入信号同时。95/178A1A0端口000计数器0001计数器1010计数器2011控制存放器1××未选中96/17897/178试分析82536种工作方式特点和功效。各方式下时钟信号CLK和门控信号GATE分别起什么作用?时钟信号CLK作用:在8253进行定时或计数工作时,每输入1个时钟脉冲信号CLK,便使计数值减198/1788253

工作方式

六种工作方式:1.方式0——计数结束中止2.方式1——硬件可重复触发单稳态触发器3.方式2——分频器4.方式3——方波发生器

5.方式4——软件触发延时选通脉冲发生器

6.方式5——硬件触发延时选通脉冲发生器

99/1781.方式0(单脉冲发生器)计数器只计一遍。控制字写入后,OUT端为低,当计数初值写入后,计数器开始减1计数,当计数值回0时,OUT输出端变为高电平。

GATE信号为高电平100/1782.方式1(可重触发单稳态方式)

当写入控制字后,输出端OUT变为高电平,并保持高电平状态。然后写入计数初值,只有在GATE信号上升沿之后下一个CLK脉冲下降沿,才将计数初值存放器内容装入减1计数存放器,同时OUT端变为低电平。然后计数器开始减1计数,当计数值减到0时,OUT端变为高电平。

门控信号GATE上升沿触发101/178方式2(周期脉冲发生器)可产生周期性负脉冲信号,负脉冲宽度为一个时钟周期。方式3(方波发生器)GATE为高102/178方式4(软件触发选通信号发生器)GATE为高电平方式5(硬件触发选通信号发生器)产生单个负脉冲信号GATE信号上升沿103/178控制字存放器

当地址信号A1A0

11

时,访问控制字存放器。控制字存放器从数据总线上接收CPU

送来控制字,并由控制字D7

、D6

两位编码决定控制字写入哪个通道控制存放器中去。由存放在每个通道内控制存放器内容决定该通道工作方式,选择计数器是按二进制还是数,并确定每个计数器初值写入次序。104/1788253控制字8253控制字格式105/1788253初始化编程1.写入控制字1)确定工作方式

依据输出OUT确定产生高电平、中止信号方式0周期信号方式2、方式3周期性方波方式32)确定8253端口地址

A1A0=00-------计数器0

01-------计数器1

10-------计数器2

11-------控制口106/178计数初值(TC)用途:计数、定时、分频计算公式为:t=TC/f,其中t为定时时间,TC为计数初值,f为输入时钟频率。如:1)分频:输入频率为1MHZ经过8253输出频率1000HZ

TC=1MHZ/1000HZ(方式2、3)

2)计数:计100个TC=100(方式0)

3)定时:TC=t*f

=定时时间(t)/输入时钟周期

107/178确定方式控制字注意:1)计数初值大小对控制字影响

2)初值最大不能超出16位表示范围用OUT指令写入控制字Movdx,控制端口地址Moval,控制字Outdx,al108/1782.写入计数初值

计数初值写入对应计数器端口地址当计数初值大于255时分高、低8位两次写入假如在方式控制字中BCD位为1,则写入计数初值应为BCD数。比如:计数初值为50,采取BCD码计数,则指令中50必须写为50H。MOVDX,计数器端口地址MOVAX,初值(十进制数表示)(二进制运算)MOVDX,AL;写低8位MOVAL,AHMOVDX,AL;写高8位109/178确定门控信号GATE方式0、2、3、4GATE为高方式1、5GATE为上升沿110/178一、初始化某系统中8253芯片地址为0FFF0H~0FFF6H,定义通道0,CLK0=2MHZ要求:输出OUT0为1KHZ方波;定义通道1工作在方式0,其CLK1输入外部计数事件,每计满1000个,向CPU发出中止请求。

(1)在图中画出8253使用到CLK、OUT、GATE连线并标明符号;(2)编写对应8253初始化程序段。.111/178二、分频可编程定时/计数器8253CLK0上接有5MHz外部计数器时钟如图所表示。指定该8253接口地址为0400H--0404H,说明要用此8253产生周期为200ms对称方波,应该怎样去做?并画出对应联线示意图,编写初始化程序。D0~D7CLK0RDGATE0WEOUT0A0A1CLK1GATE1OUT18253CLK2CSGATE2OUT2.5MHz时钟112/178设计一个简单计件系统,

一个脉冲代表一个事件,比如交通道路检测系统中经过检测点车辆,工业控制系统中流水线上已加工好工件。要求在计件过程中,当完成10000个工件统计后,系统发出1KHz信号推进喇叭发音通知用户。以下列图所表示8253计数器0用来统计工件数,8253计数器1产生1KHz信号推进喇叭发音。设8253端口地址为20H~23H。1)编写初始化程序及应用程序。

113/178114/1788253端口地址为40H~46H,CLK1=CLK2=1MHz,按以下要求编程:1)若使OUT1输出500HZ方波,OUT2输出50Hz方波,分别确定8253计数器CNT1、CNT2初值及方式控制字;2)用OUT2输出控制500HZ方波交替输出给扬声器,即OUT2=1时电路输出500HZ方波,OUT2=0时电路输出低电平,试画出控制电路图;115/178硬件如图,某报警试验系统手动报警部分接口电路如图所表示,要求开关K拨到A系统报警:扬声器发出频率为20KHz声音(即为20KHz方波),并使七段数码显示“3”;开关K断开解除报警:关闭扬声器,七段数码管暗。设8253输入时钟频率为2MHz,8253地址为40H~43H,8255A地址为60H~63H。试编写:1、8253初始化程序(3分)2、8255A初始化程序(2分)3、报警系统控制部分程序(依据题目要求)(5分)

116/178117/178如图为某系统中使用接口电路,其中82533个通道和控制存放器地址为40H、41H、42H和43H,8255B口地址为61H,试编写一段程序,利用8255配合,使扬声器发出20Hz声音。(假设8255初始化工作已完成)118/178119/178

8253在IBMPC机中应用。IBMPC机系统板上8253接口电路如图,3个计数器时钟输入频率为1.1932MHZ。系统分配给8253端口地址为40H~43H。120/178计数器0为方式3,先写低字节,后写高字节,二进制计数,计数初值为0。输出端OUT0接至中止控制器8259AIR0,OUT0输出脉冲周期约为55ms(65536÷1193200),即计数器0每隔55ms产生一次中止请求。

计数器1为方式2,只写低字节,二进制计数,计数初值为18。输出端OUT1接至DMA控制器8237A通道0DMA请求DREQ0,作为定时(15.08µs)刷新动态存放器开启信号。121/178IBMPC机BIOS对计数器0初始化程序:

MOVAL,00110110BOUT43H,ALMOVAL,0OUT40H,ALOUT40H,ALIBMPC机BIOS对计数器1初始化程序:

MOVAL,01010100BOUT43H,ALMOVAL,12HOUT41H,AL122/178

BIOS中BEEP子程序,功效为使计数器2输出方波到扬声器。计数器2工作于方式3,先写低字节,后写高字节,二进制计数,计数初值为0533H。GATE2由8255APB0控制,当GATE2为高电平时,OUT2输出频率为896HZ方波,经功率放大器和滤波后驱动扬声器发声。MOVAL,10110110BOUT43H,ALMOVAX,0533HOUT42H,ALMOVAL,AHOUT42H,ALIN61H,ALMOVAH,ALORAL,03HOUT61H,ALMOVBX,100;延时

MOVCX,0G7:LOOPG7DECBXJNZG7MOVAL,AHOUT61H,ALRET123/178可编程并行接口芯片8255A端口A有3种工作方式(方式0、方式1、方式2)对外8根引脚PA7~PA0端口B

有2种工作方式:方式0、方式1对外8根引脚PB7~PB0端口C对外引脚PC0~PC7124/178125/178

3.8255端口地址.

片内译码电路(引脚A1、A0)

A1A0=00-------PA(可读/写)

01-------PB(可读/写)

10-------PC(可读/写)

11-------控制口(可写)126/178127/178128/1781.方式0(基本输入输出方式)

工作在方式0端口,为单向传送端口,输入或输出

作为输入口相当于普通三态门作为输出口相当于普通锁存器

CPU可利用工作在方式0端口,直接对端口进行读写操作,实现CPU与外设间数据传送。129/178

2.方式1(选通输入输出方式)

A口工作在方式1时,C口某3根引脚作为A口联络信号。

B口工作在方式1时,C口某3根引脚作为B口联络信号。工作在方式1端口,为单向传送端口。在方式1下,C口作为A口、B口联络信号引脚,其动作关系在芯片设计和制造时已固定,

不由用户自己安排,也不能编程改变。130/1783.方式2(双向传送方式)端口工作在方式2时,C口某5根引脚作为端口联络信号

8255A只有A口能够工作在方式2下。与方式0和方式1不一样是:工作在方式2端口,为双向传送端口,既可输入又可输出。131/1788255A控制字(写控制口)1.方式选择控制字

132/178例假设8255A控制端口地址为203h,编程设置控制

使A口方式0输出;B口方式0输入10001/0011/0D7D6D5D4D3D2D1D0特征位A口方式0A口输出PC7~PC4I/OB口方式0B口输入PC3~PC0I/O因为对

C口无要求,控制C口对应位D4,D0可为任意值,假设取0所以,方式控制字为1000

0010B,即82H133/178设置控制字程序段以下:

MOVDX,203h;置DX为控制口地址

MOVAL,82h;置控制字于AL中

OUTDX,AL;将控制字写入控制口例假设8255A控制端口地址为203h,编程设置控制字,使A口方式0输出;B口方式0输入134/1782.端口C置位/复位控制字

135/178PA口可工作于方式0、方式1、方式2;

PB口可工作于方式0、方式1;

PC口只能工作于方式0136/1788255AA口、B口、C口有哪几个工作方式,其特点是什么?C口有哪些使用特点?答:8255AA口能够工作在3种工作方式任何一个,B口只能工作在方式0或方式1,C口则经常配合端口A和端口B工作,为这两个端口输入/输出传输提供控制信号和状态信号。137/1788255A功效是什么,有哪几个控制字,各位意义是什么?答:8255A是一个通用可编程程序并行I/O接口芯片.它有两个控制字,一个是方式选择控制字,它作用是实现对8255A各个端口选择。一个是对C口进行置位或复位控制字.它作用是能实现对端口C每一位进行控制。138/178方式0无交互用8255A控制一组红、绿、黄灯,以下列图所表示。要求用K1、K2闭合与断开来控制红、绿、黄三灯点亮,对应关系以下表所表示。设8255A端口地址范围为60H~66H。要求(1)写出8255初始化程序,初始化时无关项置0(2)依据题目要求编写控制部分程序

139/178140/178已知电路图以下列图所表示。图中数码管为共阳极类型,数码管阴极a,b,c,d,e,f,g,Dp依次接至8255PA0,PA1,…,PA7。回答下列问题:(1)若要数码管a段发光,则应从8255PA0输出高电平还是低电平?(2)若要数码管显示数字0,则应从8255PA口送出字形码为多少?(3)写出8255PA口和PC口地址。(4)依据电路图及下表要求,编写完整依据从开关读入编码在数码管上显示对应数字程序(包含在数据段中定义字形码内容)。141/178142/178143/178键盘如图,利用8255PA口、PB口外接16个键,其中PB0列上键号为0-7,而PB1列上键号为0-F。PC口上外接一个共阴极LED显示器。要求利用查询法完成:若按下0-7号键任一个使LED显示0,若按下8-F号键任一个使LED显示8。写出实现上述功效程序段,包含8255初始化(8255端口地址为20H~23H)。144/178145/1788255AA口接有四个开关,且每一开关接一上拉电阻。B口为输出端,经一8路反相驱动器,接有一个发光二极管(LED)组成七段数码管,连接电路如图所表示。试编一程序,要求数码管显示开关所拨通二进制编码对应16进制数字(字符)。要求(1)指出8255各端口地址

(2)写出8255初始化程序(3)依据题目要求编写控制部分程序146/178147/178方式0交互查询方式打印机接口如图所表示,图中8255AA口作为输出打印数据口,工作于方式0,PC7引脚作为打印机数据选通信号STB,由它产生一个负脉冲,将数据线D7-D0上数据送入打印机,PC2引脚接收打印机忙状态信号,当打印机在打印某字符时,忙状态信号BUSY为1,此时,CPU不能向8255A输出数据,要等候BUSY信号为低电平无效时,CPU才能再次输出数据到8255A。现要求打印字符存于缓冲区BUF中,共有500个字符,设8255A端口地址为80H-83H。利用查询BUSY信号,编写CPU与打印机之间数据交换程序段(包含8255A初始化)148/1788088CPUPA0..PA7PC7PC2D0.打.印D7

机STBBUSY149/178某应用系统以8255A作为接口,采集一组开关S7~S0

状态,然后经过一组发光二极管LED7~LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应LEDi灭)电路连接以下列图,已知8255A、B两组均工作在方式0。写出8255四个端口地址。写出8255工作方式控制字。写出实现给定功效汇编语言程序。150/178151LED7LED0S7S0PB7PB0PA7PA08255AD7~D0D7~D0WR#RD#IOW#IOR#Y0#G1G2A#G2B#CBA74LS138CS#A9AEN&A8A7A6A5A4A3A2A1A0A1A0151/178A口、B口、C口和控制口地址分别是

320H、321H、322H和323H。A口工作在方式0输出,B口工作在方式0输入,C口空闲,所以其控制字是10000010b=82H程序以下: MOV AL,82H ;置方式字

MOV DX,323H ;置控制端口地址

OUT DX,ALL1: MOV DX,321H ;置B口地址

IN AL,DX ;读开关状态(1断,0通)

NOT AL ;状态取反

MOV DX,320H ;置A口地址

OUT DX,AL ;输出(1亮,0灭)

JMP L1152/178【例题9.6】采取8255A作为与打印机接口电路,CPU与8255A利用查询方式输出数据,硬件如图所表示,试编程实现将若干个字节数据送打印机打印。设8255A端口地址为90H~93H。分析:打印机普通有3个主要信号,BUSY表示打印机是否处于“忙”状态,高电平表示打印机处于忙状态。为选通信号,低电平有效,该信号有效时,CPU输出数据被锁存到打印机内部数据缓冲器。为打印机应答信号,当打印机处理好输入数据后发出该信号,同时撤消忙信号。CPU可利用BUSY信号或信号决定是否输出下一个数据。153/178

当CPU经过打印接口要求打印机打印数据时,普通先查询BUSY信号,BUSY为低电平时,输出数据至打印口,再发送信号。

154/178第一步分析

1.先查询BUSY信号,BUSY为低电平时,能够输出数据至打印口

2.再发送信号开启打印机第二步确定A、B、C口工作方式第三步确定方式控制字第四步8255初始化第五步重复检测BUSY信号,直到电平为低进入下一步第六步送数据给打印机第七步开启打印机155/178DATASEGMENTBUFFERDB‘45A……’COUNTDW$-BUFFERDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,BUFFERMOVCX,COUNTMOVAL,81H;8255A初始化

OUT93H,ALMOVAL,0FH;使PC7=1OUT93H,AL156/178NEXT:INAL,92H;读PC端口WAIT1:TESTAL,01H;测试BUSY信号

JNZWAIT1MOVAL,[SI];读取一个数据,送入PA端口

OUT90H,AL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论