微机原理及应用自动化专业复习大纲Word下载.docx
《微机原理及应用自动化专业复习大纲Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理及应用自动化专业复习大纲Word下载.docx(18页珍藏版)》请在冰点文库上搜索。
典型的微处理器内部结构可以分为4个组成部分:
(1)算术逻辑运算单元(ALU):
CPU的核心,完成所有的算术和逻辑运算操作。
(2)工作寄存器:
用于暂存寻址信息和计算中间结果。
(3)控制器:
CPU的“指挥中心”。
在它的控制下,CPU才能完成指令的读入、寄存、译码和执行。
(4)I/O控制逻辑:
处理CPU的I/O操作。
区分下列这些名词解析:
程序计数器(PC,ProgramCounter)、指令寄存器(IR,InstructionRegister)、指令译码器(ID,InstructionDecode)、控制逻辑部件、堆栈指针(SP,StackPionter)、处理器状态字(PSW,ProcessorStateWord)。
2.微处理器的外部结构及编址方式
CPU的引脚信号通过逻辑部件的处理和组合,构成了系统总线:
(1)数据总线(16位,注意,对8088CPU而言,只有8位):
用于传送信息。
(2)地址总线(20位):
用于传送地址码,可寻址220=1MB空间。
(3)控制总线(16条):
用于控制用户设计的各个逻辑部件。
在以8086/8088CPU构成的系统中,存储器地址空间与端口地址空间分开,采用两个独立的地址空间:
存储单元地址采用A0~A19编址,端口地址采用A0~A15编址。
3.微处理器的功能结构
在功能上,8086/8088CPU由两个独立的逻辑单元组成:
执行单元(EU)和总线接口单元(BIU)。
EU用于完成指令所要求的运算操作;
而BIU用于完成指令地址计算和CPU通过系统总线访问存储器时的地址计算,也即由逻辑地址计算出物理地址。
这两个单元是独立、并行执行的。
4.存储器结构
8086/8088CPU内部有14个16位的寄存器,它们可以分为三组:
通用寄存器(8个),段寄存器(4个)和控制寄存器(2个)。
5.物理地址和逻辑地址
逻辑地址的表示形式为“段地址:
偏移地址”,其相应的物理地址为:
段地址*10H+偏移地址。
例如,0800:
01A0的物理地址为:
0800H*10H+01A0H=081A0H。
6.控制寄存器
控制寄存器有2个(16位):
IP(InstructionPointer)指令指针和PSW(ProcessorStateWord)微处理器状态字。
IP相当于程序计数器PC,用于保存下一条要执行指令的段内偏移地址。
PSW中定义了9个标志位。
其中,状态标志位CF、AF、ZF、SF、OF和PF用于表示上一次CPU运算操作的状态,控制标志位DF、IF和TF用于控制CPU的后续操作。
7.存储器分段的基本概念
从存储器的最低端开始,每64KB构成一个段,但每个能被16整除的地址都可以是一个新段的开始,因此,段与段之间是互相覆盖的。
相邻两个段之间相差16个单元。
为了指示一个存储单元,除了需要指定偏移地址外,还要指出其段地址。
任何一个汇编语言程序,虽然可以包含任意多个段,但当前使用的段只有4个,分别用CS、DS、ES和SS来指示。
8.寻址方式
在指令中,用于说明操作数所在地址的方法,称为寻址方式。
寻址方式又可以分成数据的寻址方式(最常用的有8种)和转移地址的寻址方式(4种)。
二.典型例题
例1有一块120个字的存储区域,其起始地址为625A:
234D,写出这个存储区域首末单元的物理地址。
解:
存储区域的字节数为
2*120=240=0F0H’
首地址为:
625AH*10H+234DH=648EDH
末地址为:
648EDH+0F0H-1=649DCH
或者625AH*10H+(234DH+0F0H)-1=625A0H+243DH-1=649DCH
例2两个十六进制数7825H和5A1FH分别相加相减后,求运算结果及各标志位的值。
7825H+5A1FH=0D244H,AF=1,CF=0,ZF=0,SF=1,OF=1(当将7825H和5A1FH看作有符号数时,两个正数相加得到一个负数,结果显然是错误的。
实际上,在运算过程中,次高位产生了进位而最高位没有产生进位,故运算产生溢出),PF=1(因为在44H中包含有偶数个1)。
7825H-5A1FH=1E06H,AF=1,CF=0,ZF=0,SF=0,OF=0,PF=1。
5A1FH-7825H=0E1FAH,AF=0,CF=1,ZF=0,SF=1,OF=0,PF=1。
三.复习题
1.设(BX)=637DH,(SI)=2A9BH,位移量=0C237H,(DS)=3100H,求下列寻址方式产生的有效地址和物理地址:
(1)直接寻址
(2)用BX的寄存器间接寻址
(3)用BX的寄存器相对寻址
(4)用BX和SI的基址变址寻址
(5)用BX和SI的基址变址且相对寻址
2.若(CS)=5200H,物理转移地址为5A238H,那么(CS)变成7800H,物理转移地址为多少?
3.设(CS)=0200H,(IP)=2BC0H,位移量=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH。
求使用下列寻址方式时的转移地址:
(1)段内直接寻址方式;
(2)使用BX的寄存器寻址的段内间接寻址方式;
(3)使用BX的寄存器相对寻址的段内间接寻址方式。
第三章:
汇编语言程序设计基本方法
一.学习要点
1.PTR操作符
PTR操作符可以用来暂时改变变量或标号的类型。
在双操作数指令中,当两个操作数都不指定类型(类型不定),或当两个操作数的类型不一致时,都会发生错误,这时可采用PTR操作符暂时改变变量的类型。
PTR操作符的使用格式为:
类型PTR表达式
注意,PTR操作符只在本行起作用。
例如,MOVAL,BYTEPTRVAR1(VAR1为字变量)。
2.堆栈
堆栈是一块特殊的存储区域,这块区域以先进后出(FILO,FirstInLastOut)的方式工作,系统为此提供了特殊的指针SP和段寄存器SS。
二.典型例题
例1写出下列变量的内容:
VAR1DB125,125/3,-1,-10H
VAR2DW125,125/3,-1,-10H
VAR3DB‘AB’,‘CD’
VAR4DW‘AB’,‘CD’
按十六进制数一次写出各个变量的内容为:
VAR1:
7D,29,FF,F0
VAR2:
007D,0029,FFFF,FFF0
VAR3:
41,42,43,44
VAR4:
4142,4344
按内存存储顺序给出:
7D,29,FF,F0,7D,00,29,00,FF,FF,F0,FF,41,42,43,44,42,41,44,43
例2设有下列伪指令:
STARTDB1,2,3,4,’ABCD’
DB3DUP(?
1)
BUFDB10DUP(?
),15
LEQUBUF-START
求L的值。
由EQU伪指令知,L的值为BUF的偏移地址减去START的偏移地址,而变量START共占用8个字节,第二行定义的变量(无变量名)共占用6个字节,因此,L的值为8+6=14=0EH。
三、复习题
1.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=3412H,
(20102H)=7856H,(21200H)=4C2AH,(21202H)=65B7H,求下列指令执行后AX寄存器的内容:
(6)MOVAX,1200H
(7)MOVAX,BX
(8)MOVAX,[1200H]
(9)MOVAX,[BX]
(10)MOVAX,1100H[BX]
(11)MOVAX,[BX][SI]
(12)MOVAX,1100H[BX][SI]
2.如果堆栈的起始地址为2200:
0000,栈底为0100H,(SP)=00A8H,求
(1)栈顶地址;
(2)SS的内容;
(3)再存入数据5678H,3AF2H后,SP的内容。
3.按下列要求写出指令:
(1)将AX寄存器的低4位清零,其余位不变;
(2)将BX寄存器的低4位置1,其余位不变;
(3)将AL寄存器的低4位保持不变,高4位取反;
(4)测试BX中的位1和位2,,当这两位同时为0时将AL置0FFH,否则AL清零;
(5)测试BX中的位1和位2,,当这两位有一位为0时将AL置0FFH,否则AL清零;
(6)将AL中保存的字母ASCII码变换成相应的大写字母的ASCII码;
(7)将AL中保存的字母ASCII码变换成相应的小写字母的ASCII码;
(8)将AL中的各位取反;
(9)将DX中的低7位取反,高9位不变;
(10)将CX中的低8位与高8位互换。
4.写出完成下述功能的程序段:
(1)传送40H到AL寄存器;
(2)将AL的内容乘以2;
(3)传送16H到AH寄存器;
(4)AL的内容加上AH的内容。
并计算最后结果(AL)=?
5.写出完成下述功能的程序段:
(1)从缓冲区BUF的0004偏移地址处传送一个字到AX寄存器;
(2)将AX寄存器的内容右移2位;
(3)将AX内容与BUF的0006偏移地址处的一个字相乘;
(4)相乘结果存入BUF的0020H偏移地址处(低位在前)。
6.选择题(各小题只有一个正确答案)
(1)执行下列三条指令后:
MOVSP,1000H
PUSHAX
CALLBX
A)(SP)=1000HB)(SP)=0FFEH
C)(SP)=1004HD)(SP)=OFFCH
(2)要检查寄存器AL中的内容是否与AH相同,应使用的指令是:
A)ANDAL,AHB)ORAL,AH
C)XORAL,AHD)SBBAL,AH
(3)指令JMPNEARPTRL1与CALLL1(LI为标号)的区别在于:
A)寻址方式不同B)是否保存IP的内容
C)目的地址不同D)对标志位的影响不同
7.利用移位、传送和相加指令实现AX的内容扩大10倍。
第四章.微处理器8086的总线结构和时序
总线周期概念
时钟周期:
控制微处理器工作的时钟信号的一个周期,它是CPU最小的工作节拍。
总线周期:
CPU通过系统总线对外部存储器或I/O接口进行一次访问所需要的时间。
指令周期:
CPU执行一条指令所需要的时间(包括取指令和执行指令所需要的时间)。
一个基本的总线周期包括4个时钟周期,即T1、T2、T3和T4,又称4个T状态。
读写总线周期在这4个T状态下完成的工作是不同的,于是就有了读总线周期和写总线周期。
一个实际的总线周期除了4个T状态外还可能在T3和T4之间插入若干个等待周期Tw。
在两个总线周期之间可能存在若干个空闲状态,简称T1状态。
二.习题
1.根据传送信息种类不同,系统总线分为、和。
2.三态逻辑电路输出信号的三个状态是、和。
3.欲使8086CPU工作在最小方式,引脚
/MX应接。
4.RESET信号是时产生的,至少要保持4个时钟周期的电平才有效,该信号结束后,CPU内的CS为,IP为,程序从地址开始执行。
5.CPU在状态开始检查READY信号、电平时有效,说明存储器或I/O端口准备就绪,下一个时钟周期可进行数据的读写;
否则,CPU可自动插入一个或几个,以延长总线周期,从而保证快速的CPU与慢速的存储器或I/O端口之间协调的进行数据传输。
6.
/IO引脚输出高电平时,说明CPU正在访问。
第五章.存储器系统
1.半导体存储器的分类
计算机系统中的内存储器一般都使用半导体存储器,其特点是集成度高、成本低,存取速度快。
半导体存储器的分类如下图所示:
3.存储器与CPU连接
在微机或微机应用系统中,存储器子系统由许多存储器芯片(ROM和RAM)组成。
CPU对存储器进行读写操作时,首先由地址总线给出地址信号,最后才能在数据总线上进行数据的读写。
因此,在微机或微机系统应用中,存储器系统的设计主要是指存储器与CPU的连接,包括CPU的地址总线、数据总线和控制总线与存储器的连接。
连接时应该考虑如下问题:
1)CPU的读写时序和存储器的存取速度之间的匹配
CPU取指令和对存储器进行读写时,都有其固有的时序,由此来确定对存储器存取速度的要求。
存储器的存取速度必须与CPU的读写时序相匹配,以便使CPU能在规定的读、写周期内完成对存储器的正确读写。
2)CPU总线负载能力
CPU输出线的直流负载能力为一个TTL负载,而目前的存储器通常采用MOS电路,其直流负载很小,主要是电流负载,因此在简单系统中,CPU可直接与存储器相连,而在较大系统中,就要考虑CPU的负载能力,需要时可以通过增加缓冲器或总线驱动器来提升驱动负载的能力。
常用的芯片有74LS244(单向8位)和74LS245(双向8位)等。
3)控制信号的连接
CPU与存储器连接时,应将CPU提供的一些控制信号与存储器的控制信号相连,以实正确的读写控制。
与存储器系统设计有关的8086CPU的控制信号有M/
、
、DT/
和ALE。
4)存储器片选控制与地址译码
存储器系统一般分为RAM和ROM两大类,由多个存储器芯片组成。
为了实现存储器的正确寻址,地址总线按用途分为两部分:
一部分是低位地址总线,直接连接到存储器芯片的地址总线上,实现存储器芯片的片内寻址;
另一部分是高位地址总线,通过地址译码产生片选信号,实现存储器模块的选择。
地址总线的高、低位划分因存储器芯片的容量而异。
1.用下列RAM芯片构成32KB存储器模块,各需要多少芯片?
16位地址总线中共有多少位参与片内寻址?
多少位可用作片选控制信号?
(1)1K*1
(2)1K*4
(3)4K*8(4)16K*4
2.若存储器模块的存储容量为256KB,则利用上题中给出的RAM芯片,求出构成256KB存储模块各需要多少芯片?
20位地址总线中有多少位参与片内寻址?
3.一台8位微机系统的地址总线为16位,其存储器中RAM的容量为32KB,首地址为4000H,且地址是连续的。
问可用的最高地址是多少?
4.某微机系统中内存的首地址是4000H,末地址为7FFFH,求其内存容量。
5.要给地址总线为16位的某8位微机设计一个容量为12KB的存储器,要求ROM区为8KB,从0000H开始,采用2716芯片;
RAM区为4KB,从2000H开始,采用2114芯片。
试画出设计的存储器系统的连线图。
第六章输入输出接口
1.IN和OUT指令
这两条指令是CPU和外设之间进行数据传输的基本方法之一。
它们与MOV指令类似(MOV指令用于CPU和存储单元之间的数据交换,而IN,OUT指令用于CPU与外设之间的数据交换),但它们只有两种寻址方式:
直接寻址(直接给出8位的端口地址)和寄存器间接寻址(在DX中给出端口地址)。
另一个操作数只能是寄存器寻址(AL或AX),这取决于访问端口的位数。
2.三种基本输入输出方式
主机与外设之间进行数据交换、状态及命令等信息的传送时主要有三种方式:
程序直接控制传送方式、程序中断控制方式和存储器直接存取(DMA)方式。
它们传送信息的速度依次越来越快,其传送效率也越来越快,但其实现和管理的复杂性也越来越高。
程序直接控制和中断控制传送方式下的信息传送是通过IN和OUT指令实现的,而DMA方式则在存储器与外设之间架起直接访问的通路,因此与CPU的IN、OUT指令无关,其存储速度是芯片速度。
3.I/O端口的地址译码
端口地址译码是一个重点。
首先要搞清楚教材的第348页图10.6、10.7、10.8所示的三种端口的典型结构,彻底掌握各种端口的译码方法。
端口地址译码分为线选法、部分地址译码和全地址译码三种。
它与存储器的译码设计不同:
(1)参加译码的地址线数量不同,一般存储器模块内所含的存储单元模块较多,其片内地址线较多,因此用于地址译码的地址线较少。
(2)参加译码的控制信号不同,以8086最大方式系统为例,用于控制存储器芯片读写的信号为
和
而控制端口读写的信号为
。
4.中断控制器8259A
8259A是可编程大规模集成电路。
8259A的编程分初始化编程和应用编程两大部分,应着重理解各命令字的含义。
8259A应用编程较难,只要求了解,但要求掌握中断结束方式和中断优先级管理方式中的正常完全嵌套方式。
二,例题
例1用8088CPU与简单接口组成查询输出系统,要求查询状态端口地址和输出数据口地址均为0F4H。
芯片自选,画出连接图并编一程序段实现:
当查询到状态信号D7为1时输出一个字节。
系统连接如下图所示:
相应程序段如下:
MOVDX,0F4H
INAL,DX
TESTAL,80H
JNZNTR
MOVAL,[SI]
;
SI指向输出数据缓存区
INCSI
OUTDX,AL
…
NTR:
例10.3某8088最小系统中,有一片8254的连接图如图所示,分析之,并回答:
(1)8253的端口地址是什么?
(2)用同一片8253的两个计数器串接产生如下图的周期性波形,可用的时钟信号为1MHZ脉冲。
此时,两个计数器各设置成什么方式?
加上必要的连线,然后编写8254的初始化程序。
(1)地址分析如下:
A9A8A7A6A5A4A3A2A1A0
1000011001219H
100001101121BH
100001110121DH
100001111121FH
(2)分析:
要产生如下图所示的周期性波形,8254必须工作于方式2(8254的六种工作方式只有方式2和方式3是周期性的,方式3是方波,故此可确定出此波形的计数器工作于方式2)。
因方式2的负脉冲的宽度为计数器的时钟信号的一个周期,CLK0=1MHZ,其一个周期为1μs,所以可知计数器0不是最终输出要求波形的计数器,假设OUT1输出所要求的波形,则CLK1应该是周期为20μs的时钟,这个时钟可由系统提供的1MHZ通过计数器0分频而来,即计数器0工作于方式2或方式3,CR0=20。
同理,可算出CR1=300/20=15.所以连线为将OUT0与CLK1连接起来(如图中虚线所示),GATE0和GATE1接+5V。
8254的初始化程序为:
MOV DX,21FH
MOV AL,00010110B;
计数器0,制度写低位字节,方式2,二进制方式
OUT DX,AL;
送CW1
MOV AL,01010100B;
计数器1,只读写低位字节,方式2,二进制方式
OUT DX,AL;
送CW2
MOV DX,2190H
MOV AL,20 ;
CR0=20
OUT DX,AL ;
送CR0
MOV DX,21BH
MOV AL,15 ;
送CR1=15
送CR1
8254连接图
要求产生的波形
三.习题
1.编写一段指令序列,功能是轮流交替的测试分别属于两个设备的两个状态寄存器。
当测知某个状态寄存器的位0是1,则从这个状态寄存器对应的设备读入数据。
每读入一个字节对这个状态寄存器进行一次测试。
如果测得位3为1,则停止这个设备的读入,再进入轮流测试状态。
假设两个状态寄存器的端口地址分别为300H和308H,两个数据输入端口分别是302H和30AH,输入数据存入数据存储器,开始地址分别是BUFF1和BUFF2。
2.在IBMPC机接口开发中用到某一大规模集成电路芯片,其内部占16个I/O端口地址,分配占用300~30FH,请设计一个片选信号CS形成电路。
3.利用三态门(74LS244)作为输入接口,接口地址规定为04E5H,试画出其与8086最小系统的总线连接图。
4.利用三态门输出的锁存器(74LS244)作为输出接口,接口地址规定为E504H,试画出其与8086最大系统总线的连接图。
若上题中输入接口的bit4与bit7同时为0时将DATA为首地址的10个内存数据连续由输出接口输出;
若不满足条件则等待,试编写相应程序。
5.中断向量表的功能是什么?
详述CPU利用中断向量表转入中断服务程序的过程。
6.设某微机系统要管理64级中断,问构成该中断机构时需要片8259.
7.如果认为CPU的等待设备的状态信号是处于非工作状态(即踏步等待),那么,在下面几种主机与设备数据传送方式中,主机与设备是串行工作的,主机与设备是并行工作的,主程序与外围设备是并行运行的。
A)程序查询方式
B)中断方式
C)DMA方式
8.RS-232接口是接口,它通常用对连接和之间的连接,AS-232标准规定采用逻辑,其逻辑“1”电平在的范围内,逻辑“0”电平在
的范围内。
9.比较8253的方式0与方式4、方式1与方式5有什么区别?
10.通过8253的计数器0产生中断请求信号,欲在可设最大初值范围内延长产生中断的时间,无效的方法是。
A)初始化时使CR0尽量大
B)在OUT0变高之前重置初值
C)在OUT0变高之前在GATE0加一触发信号
D)降低加在CLK0的信号频率
11.若8253芯片可利用8086的外设接口地址D0D0H~D0DFH,试画出电路连接图,加到8253上的时钟信号为2MHZ:
(1)若利用计数器0,1,2分别产生下列三种信号:
①周期为10μs的对称方波;
②每1s产生一个负脉冲;
③10s后产生一个负脉冲。
每种情况下,是说明8253如何连接并编写包括初始化在内的程序。
(2)若希望利用8088通过接口控制GATE,当CPU使GATE有效开始时,20μs后在计数器0的