微机原理与接口技术第7章
- 格式:ppt
- 大小:1.30 MB
- 文档页数:107
微机原理与接口技术1、8086 CPU在内部结构上由哪几部分组成?其功能是什么?8086的内部结构分成两部分。
总线接口部件BIU,负责控制存储器与I/O 端口的信息读写,包括指令获取与排队、操作数存取等。
执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。
2、8086的总线接口部件有那几部分组成? 其功能是什么?8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用保存各段址;一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;一个20位地址法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于与外总线的连接。
3、8086的执行单元(部件)由那几部分组成?有什么功能?8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。
(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。
(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。
(3)标志寄存器,使用9位,标志分两类。
其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。
(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。
6、8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和控制标志分别有哪些?(1)标志分两类:状态标志(6位),反映刚刚完成的操作结果情况。
控制标志(3位),在8086特定指令操作中起控制作用。
(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。
例如利用控制标志可以控制程序的单步调试。
(3)状态标志包括:包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。
控制标志包括:单步运行标志TF、方向标志DF 与中断允许标志IF。
8、8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。
第7章输入/输出与中断一、自测练习题㈠选择题1.一微机系统有10根地址线用于I/O端口寻址,因而具有I/O空间的范围是( )字节。
A) 1024 B) 10K C) 0.5M D) 1M2.8086CPU读/写一次存储器或I/O端口所需的时间称为一个( )。
A) 总线周期 B) 指令周期 C) 时钟周期 D) 基本指令执行时间3.微型计算机的输入/输出有三种不同的控制方法,其中以( )控制的输入/输出是微机进行I/O的一种最主要的控制方式。
A) 程序控制 B) 中断控制C) DMA控制D) 以上均可4.程序查询I/O方式的工作流程是按( )的次序完成一个字符的传输。
A) 写数据端口,读/写控制端口B) 读状态端口,读/写数据端口C) 写控制端口,读状态端口,写数据端口D) 随I/O接口的具体要求而定5.在CPU与外设的I/O传送控制方式中,效率高、实时性强的方式是( )。
A) 同步传送 B) 查询传送 C) 无条件传送 D) 中断传送6.在CPU与外设的I/O传送控制方式中,传送速度最快的方式是( )。
A) 无条件传送 B) 查询传送 C) 中断传送 D) DMA传递7.用具有两个状态(“0”和“1”态)的一组开关作简单输入设备时,应采用( )传送方式来输入信息。
A) 无条件B) 查询C) 中断D) DMA8.用一组发光二极管作为简单输出设备时,应采用( )传送方式来输出信息。
A) DMA B) 无条件C) 查询D) 中断9.在微机系统中引入中断技术,可以( )。
A) 提高外设速度B) 减轻主存负担C) 提高处理器的效率D) 增加信息交换的精度10.CPU响应中断请求的时刻是在( )。
A) 执行完成正在执行的程序以后 B) 执行完正在执行的指令以后C) 执行完本时钟周期以后D)执行完正在执行的机器周期以后11.8086/8088CPU向应两个硬中断INTR和NMI时,相同的必要条件是( )。
A) 允许中断B) 当前I/O操作执行结束C) 总线空闲D) 当前访问内存操作结束12.在微型计算机系统中,高速外设与内存储器进行批量数据传送时,应采用( )。
.第1章绪论作业1.将下列二进制数转换成十进制数。
(1)11001010B=202(2)00111101B=61(3)01001101B=77(4)10100100B=1643.将下列十进制数分别转换为二进制数和十六进制数。
(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4.求下列十进制数的 BCD码(1)327=11 0010 0111 (BCD码)(2)1256=1 0010 0101 0110 ( BCD码)6.求出下列 10 进制数的原码、反码和补码(2)+85 (4)-85解: 85=0101 0101B原码: +85= 0101 0101B-85= 1101 0101B反码: +85= 0101 0101B-85= 1010 1010B补码: +85= 0101 0101B-85= 1010 1011B10.画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器地址总线CPU存储器I/O 接口I/O 总线I/O 设备数据总线控制总线微处理器 CPU:控制微处理器与存储器或 I/O 设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。
微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O 之间传送数据;(4)时间控制:程序流向控制。
存储器:用来存放数据和指令。
I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。
I/O 设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。
输出运算结果。
总线:连接计算机系统中各功能部件的信息通道。
第 2 章 8086CPU 作业2. 8086CPU 内部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU 由指令执行部件 EU 和总线接口部件 BIU 两部分组成。
微机原理与接口技术教案第一章:微机概述1.1 教学目标了解微机的概念、发展历程和分类。
理解微机系统的基本组成和工作原理。
掌握微机的主要性能指标。
1.2 教学内容微机的概念和发展历程。
微机的分类和特点。
微机系统的基本组成。
微机的工作原理。
微机的主要性能指标。
1.3 教学方法采用讲授法,介绍微机的基本概念和发展历程。
通过案例分析,使学生理解微机的分类和特点。
利用图形和示意图,讲解微机系统的基本组成。
通过实验演示,让学生掌握微机的工作原理。
利用表格和图表,介绍微机的主要性能指标。
1.4 教学资源教材:微机原理与接口技术。
课件:微机原理与接口技术教案PPT。
实验设备:微机实验箱。
1.5 教学评估课堂问答:检查学生对微机概念和发展历程的理解。
课后作业:要求学生绘制微机系统的基本组成示意图。
实验报告:评估学生在实验中对微机工作原理的掌握情况。
第二章:微处理器2.1 教学目标了解微处理器的概念、发展和结构。
理解微处理器的工作原理和性能指标。
掌握微处理器的编程和指令系统。
2.2 教学内容微处理器的概念和发展。
微处理器的结构和组成。
微处理器的工作原理。
微处理器的性能指标。
微处理器的编程和指令系统。
2.3 教学方法采用讲授法,介绍微处理器的概念和发展。
通过实物展示,使学生理解微处理器的结构。
利用仿真软件,讲解微处理器的工作原理。
通过编程实例,让学生掌握微处理器的编程和指令系统。
2.4 教学资源教材:微机原理与接口技术。
课件:微机原理与接口技术教案PPT。
实验设备:微机实验箱。
仿真软件:汇编语言编程工具。
2.5 教学评估课堂问答:检查学生对微处理器概念和发展的理解。
课后作业:要求学生编写简单的汇编语言程序。
实验报告:评估学生在实验中对微处理器工作原理的掌握情况。
第三章:存储器3.1 教学目标了解存储器的概念、分类和性能。
理解存储器的工作原理和扩展方式。
掌握存储器的接口技术和应用。
3.2 教学内容存储器的概念和分类。
存储器的工作原理。
微机原理与接口技术习题参考答案3-13章..习题3.1 什么是总线?总线是如何分类的?答:总线,是一组能为多个功能部件服务的公共信息传送线路,是计算机各部件之间的传送数据、地址和控制信息的公共通路,它能分时地发送与接收各部件的信息。
按照总线系统的层次结构,可以把总线分为片内总线、系统总线、局部总线和外设总线。
3.2 举例说明有哪些常见的系统总线与外设总线。
答:常见的系统总线有:ISA总线、PCI总线、PCI Express总线。
常见的外设总线有:RS-232串行总线、IEEE1394串行总线、USB串行总线。
3.3 ISA总线的主要特点是什么?答:ISA总线的主要特点是:(1)总线支持力强,支持64KB的I/O地址空间、24位存储器地址空间、8/16位数据存取、15级硬件中断、7个DMA通道等。
(2)16位ISA总线是一种多主控(Multi Master)总线,可通过系统总线扩充槽中的MAST ER的信号线实现。
除CPU外,DMA控制器、刷新控制器和带处理器的智能接口卡都可以成为ISA总线的主控设备。
(3)支持8种类型的总线周期,分别为8/16位的存储器读周期、8/16位的存储器写周期、8/16位的I/O读周期、8/16位的I/O写周期、中断请求和中断响应周期、DMA周期、存储器刷新周期和总线仲裁周期。
3.4 PCI总线的主要特点是什么?答:PCI总线的特点概述如下:(1) 线性突发传输:PCI支持突发的数据传输模式,满足了新型处理器高速缓冲存储器(Cache)与内存之间的读写速度要求。
线性突发传输能够更有效地运用总线的带宽去传输数据,以减少不必要的寻址操作。
(2) 多总线主控:PCI总线不同于ISA总线,其地址总线和数据总线是分时复用的。
这样减少了接插件的管脚数,便于实现突发数据的传输。
数据传输时,一个PCI设备作为主控设备,而另一个PCI设备作为从设备。
总线上所有时序的产生与控制,都是由主控设备发起的。
第七章注意的问题:本章中控制信号后面的#表示此信号低电平有效。
一、选择1、 8086/8088CPU对I/O端口使用()编址方法。
A、独立B、统一C、直接D、间接2、 8086/8088CPU使用()根地址线对I/O编址。
A、 8B、 10C、16D、203、 8086/8088CPU对I/O端口的最大寻址空间为()。
A、 8KBB、 16KBC、64KBD、1MB4、 8086有一个独立的I/O空间,该空间的最大范围是()A、 8KBB、 16KBC、64KBD、1MB5、 8086CPU采用I/O独立编址方式,可使用()线的地址信息寻址I/O端口。
A、 AD7-AD0B、 AD15-AD0C、 AD19-AD0D、 AD23-AD06、某8088CPU构成的系统中,用10根地址线对I/O端口寻址,因而I/O端口的地址空间为()A、 1KBB、 10KBC、16KBD、64KB7、某8088CPU构成的系统中,占用地址空间0-1FFH,因而至少需用()根地址线对I/O端口寻址。
A、 8B、 9C、 10D、 118、若某8086CPU构成的系统中,具有1024个8位端口,则至少需用()根地址线对I/O端口寻址。
A、 4B、 8C、 10D、 169、 8086/8088CPU读写一次存储器或I/O端口操作所需要的时间称为一个()A、总线周期B、指令周期C、时钟周期D、基本指令执行周期10、 8086/8088CPU的基本I/O总线周期为()个时钟周期A、 6B、 5C、 4D、 311、在8088CPU构成的系统中,组合16位的I/O端口时,最好将其起始地址选为()地址A、奇B、偶C、页D、段12、在8088CPU构成的系统中,组合16位的I/O端口时,最好将其起始地址选为偶地址是为了()A、减少执行指令的总线周期B、减少执行指令的字节数C、节省占用的内存空间D、对内存单元快速寻址13、 8086/8088CPU按I/O指令寻址方式得到的地址是( )A、物理地址B、有效地址C、段内偏移量D、 I/O端口地址14、 8088 CPU对地址为240H的I/O端口读操作指令为()A、 MOV AL,240HB、 MOV AL,[240H]C、 IN AL,240HD、 MOV DX,240H IN AL,DX15、 8086/8088CPU的输出指令OUT Dest,Src中目的操作数Dest只能是()A、 8位或16位端口地址B、 8位端口地址或DX寄存器C、 16位寄存器D、任意16、 8086/8088CPU的输入指令IN Dest,Src中目的操作数Dest只能是()A、 8位或16位端口地址B、 8位端口地址或DX寄存器C、 16位寄存器D、任意17、 8086CPU的输入指令是将输入设备的一个端口中的数据传送到()寄存器。
第1章思考与练习题1.1 微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?1.2 什么是微型计算机的系统总线?说明微处理器三大总线的作用。
1.3 计算机中常用的数制和码制有哪些?1.4 将下列十进制数分别转化为二进制数、八进制数、十六进制数和压缩BCD数。
(1)25.82 (2)412.15 (3)513.46 (4)69.1361.5 将下列二进制数分别转化为十进制数、八进制数和十六进制数。
(1)111001.101 (2)110010.1101 (3)1011.11011 (4)101101.01111.6 将下列十六进制数分别转化为二进制数、八进制数、十进制数和压缩BCD数。
(1)7B.21 (2)127.1C (3)6A1.41 (4)2DF3.41.7 写出下列十进制数的原码、反码、补码表示(采用8位二进制数)。
(1)96 (2)31 (3)-42 (4)-1151.8 已知补码求出其真值。
(1)92H (2)8DH (3)B2H (4)4C26H1.9 按照字符所对应的ASCII码表示,查表写出下列字符的ASCII码。
a 、K 、G、+、DEL、SP、CR 、$第2章思考与练习题2.1 8086CPU由哪两部分组成?它们的主要功能是什么?2.2 8086CPU数据总线和地址总线各是多少?最大的存储空间是多少?2.3 8086CPU中的指令队列起什么作用?其长度是多少字节?2.4 8086的标志寄存器有哪些标志位?它们的含义和作用是什么?2.5 数据在存储器中存放有何规定?什么是对准字?什么是非对准字?2.6 什么是逻辑地址?它由哪两部分组成?8086的物理地址是如何形成的?2.7 8086微机系统中存储器为什么要分段?各逻辑段之间的关系如何?2.8 I/O端口有哪两种编址方式?8086的最大I/O寻址空间是多少?2.9 8086的最大模式和最小模式的主要区别是什么?2.10 有一个由20个字组成的数据区,其起始地址为5300H:0320H。
第1章进制及码元1.进制转换129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D3.数据表示范围:一字节的无符号数表示范围为0~255,有符号数(补码)表示范围为-l28—+127。
一个字的无符号数表示范围为0~65535,有符号数(补码)表示范围为—32768~+32767。
N位二进制数的无符号数表示范围为0~(2N-1),有符号数(补码)表示范围为-2N-1~(2N-1-1).4.35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53 ,代表压缩8421BCD码等价的十进制值为35 ,代表非压缩8421BCD码等价的十进制值为5。
5.FFH代表无符号数时等价的十进制值为255 ,代表补码有符号数时等价的十进制值为一1 ,代表反码有符号数时等价的十进制值为一0 ,代表原码有符号数时等价的十进制值为一l27。
6.--20的8位二进制补码为ECH ,原码为94H ,反码为EBH 。
158的16位二进制补码为009EH,原码为009EH ,反码为009EH 。
第2章微机硬件基础1.计算机系统硬件的五大功能部件及其主要功能?答:硬件系统按功能模块分为运算器、控制器、存储器、输入设备、输出设备。
运算器主要完成算术运算、逻辑运算及移位运算,其中主要包括算术逻辑运算单元Arithmetic Logic Unit,ALU)和暂存数据(原始、中间、结果)的寄存器(Register,R)。
控制器实现对计算机部件的协调调度完成指令的分析执行,其中主要有程序计数器Program Counter,PC)或叫指令指针(Instruction Pointer,IP)、指令寄存器(Instruction register,IR)、指令译码器(Instruction Decoder,ID)、微操作命令发生器、时序发生器等。
微机原理与接口技术习题参考答案第一章p201、参考答案:冯诺伊曼计算机的设计思想EDVAC方案:存储程序通用电子计算机方案:①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”;其中第三点是冯诺依曼计算机设计的精华,所以人们又把冯诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作;冯诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示;2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口注意:不是I/O设备组成;而微型计算机系统除了包括微型计算机外,还有系统软件即操作系统、应用软件、外存储器和I/O设备等;微型计算机系统结构如下图所示;3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间;7、参考答案:①PCIPeripheral Component Interconnect:外围设备互联,是Intel 公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机;PCI总线是同步且独立于微处理器的具有即插即用PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序的特性.PCI总线允许任何微处理器通过桥接口连接到PCI总线上;②USBUniversal Serial Bus:通用串行总线,是1994年由Compaq,IBM,Microsoft 等多家公司联合提出的;USB有两种规格:和,USB 传输速度为12M/秒,而USB 提高至360到480M/秒;USB 是向下兼容USB ,这意味着将一个USB 的设备插到USB 口中,只能按USB 的速度运行;USB连接方式十分灵活,支持热插拔,不需要单独的供电系统;可以通过一条4线串行线缆访问USB设备,用于连接键盘、鼠标、投影仪、数码相机等,现在成为每一台计算机都必须配备的标准接口;8、参考答案:DB----Define byte 定义一个字节类型的变量,并为该变量分配内存DW…Define word 定义一个字类型的变量,并为该变量分配内存DD….Define double word 定义一个双字类型的变量,并为该变量分配内存9、参考答案:1=或2=3=4=如何转换例如:=1×25+1×23+1×2+1+1×2-2+1×2-4= 32+8+2+1++=10、参考答案:1=10×16+3+3×16-1=2=1×162+2×16+9+12×16-1=3=10×16+12+13×16-1+12×16-2=4=15×162+10×16+11+3×16-1=11、参考答案:123=10111B=27Q=17H2107=1101011B=153Q=6BH492=1011100B=134Q=5CH12、参考答案:即把下面的数用8位补码表示13、参考答案:压缩BCD码就是用4位二进制表示一个0~9之间的十进制数非压缩的BCD码就是用8位二进制表示一个0~9之间的十进制数,8位二进制的最高4位可以位任何数,例如0000,0~9的ASCII码实际上就是0~9的非压缩BCD 码的表示;14、参考答案:如果二进制最高位为0,则该数为正数,反之,如果最高位为1,则该数为负数,对其做求补运算就得到其相反数;200110011B=+5115、参考答案:一个单精度浮点数占4个字节双字,即32位二进制,其中符号位占1位,指数部分占8位,尾数部分占23位;十进制数表示成单精度浮点数的方法如下:①填充符号位,如果是正数填0,如果是负数填1②将数表示成二进制形式,并进行规格化③对于单精度浮点数,指数加上1277FH;对于双精度浮点数,指数要加上1023 3FFH,并填充指数位④填充尾数位1+ ①由于是正数,所以符号位为0;②写成二进制并规格化得到×20,③由于2的指数是0,所以指数部分以0+127=01111111填充;④由②写成十六进制数为:+=3F C0 00 00H2=C12A0000H3+=42C88000H4=C4960000H16、参考答案:21 01111111 00000000000000000000000B=第二章p55~p561、答案略,见p22~242、答案略,见p24~273、答案略,见p334、参考答案其他可以参照本章相关内容:① CPU:又称微处理器,是计算机系统的核心,一般由逻辑运算、控制单元和一些组成;这些寄存器用于CPU在处理过程中数据的暂时保存;它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或I/O接口之间传送数据;程序的流向控制等;②存储器:是计算机系统的记忆部件,主要用来存储程序和数据;存储器一般分为内部存储器和外部存储器两大类;内部存储器内存存放当前正在使用或经常使用的程序和数据,CPU可以直接访问;外存存放“海量”数据,相对来说不经常使用,CPU使用时要先调入内存;内部存储器又可以分为随机存取存储器RAM和只读存储器ROM;计算机系统存储器的三层结构:按存储容量由低到高或按存取速度由高到低分为高速缓冲存储器CACHE、主存、辅存三层;③堆栈Stack:堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用SP指向,栈底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令PUSH 和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理,入栈操作SP减小,出栈操作SP增大;堆栈的操作以字为单位;④机器语言Machine Language:计算机唯一能接受和执行的语言;机器语言由二进制码组成,每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统,不同型号的计算机的指令系统不同;使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出来的程序全是由0和1的数字组成,直观性差、难以阅读;不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍;⑤汇编语言Assembly Language:是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符Mnemonic代替操作码,用地址符号Symbol 或标号Label代替地址码;使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序;汇编程序把汇编语言翻译成机器语言的过程称为汇编;汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点;但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植;⑥指令Instruction:指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作;一条指令通常由两个部分组成:操作码+操作数;:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等;操作数:指明操作对象的内容或所在的存储单元地址地址码,操作数在大多数情况下是地址码,地址码可以有0~3个;9、参考答案:注意:①段起始地址和段结束地址均为20位的物理地址;②段起始的偏移量为0000H,所以段起始地址为段基地址×16+偏移地址;③由于每个段的最大容量为64K字节,段结束的偏移量为FFFFH,所以段结束地址为段基地址×16+偏移地址=段基地址×16+FFFFH10、参考答案:a)CS:IP=1000H:2000H 下一条指令的存储器地址为CS×16+IP=12000Hb)CS:IP=2000H:1000H 下一条指令的存储器地址为CS×16+IP=21000Hc)CS:IP=1A00H:B000H 下一条指令的存储器地址为CS×16+IP=25000Hd)CS:IP=3456H:AB09H 下一条指令的存储器地址为CS×16+IP=3F069 H11、参考答案:a)DS=1000H,DI=2000H 存储单元地址为:DS×16+DI=12000Hb)SS=2300H,BP=3200H 存储单元地址为:SS×16+BP=26200Hc)DS=A000H,BX=1000H 存储单元地址为:DS×16+BX=A1000Hd)SS=2900H,SP=3A00H 存储单元地址为:SS×16+SP=2CA00H12、参考答案:①堆栈段在存储器中的物理地址即堆栈段的起始地址为:SS×16+0000H=35000H②入栈10个字节后,SP=0800H-10=07F6H③再出栈6个字节,SP=07F6H+6=07FCH13、参考答案:示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作;①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字;14、参考答案:段段起始地址段结束地址DS 10E40H 20E3FHES 10F40H 20F3FH可见,①DS和ES有部分的重叠,重叠区域大小为:20E3FH-10F40H+1=FF00H字节;②ES和SS之间有空隙,空隙的大小为:21F00H-20F3FH+1=0FC2H字节;③SS和CS 之间有空隙,空隙的大小为:31FF0H-31EFFH+1=00F2H字节④OF SF ZF CF 均为017、参考答案:IF标志位控制INTR引脚20、答案略,见p4921、答案略第三章p121~p1241、参考答案:对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;如果是短格式,即端口地址存放在DX寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:IN AX,DX对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT 20H,AL;如果是短格式,即端口地址存放在DX寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:OUT DX,AX 2、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址指令执行后AX中的内容1 立即寻址------- ------ 0200H2 直接寻址0200H 10200H 2A10H3 寄存器寻址------- ------ 0200H4 寄存器相对寻址0203H 10203H 5946H5 基址变址寻址0202H 10202H 463CH6 相对基址变址寻址0204H 10204H 6B59H注:10200H~10205H单元存储状况如左图所示3、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址4、答案略5、参考答案:1该数据段的存储状况如下表所示:注:①表格的第一行为变量名称;②第三行的每个小格子代表一个存储单元;③第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;④第三行为存储单元的具体内容,以十六进制表示;2写出各条指令执行后的结果6、参考答案:7、程序片段如下:LEA BX,TABLE MOV AL,57MOV AH,0MOV DL,10DIV DLPUSH AXXLATMOV CH,ALPOP AXMOV AL,AHXLATMOV CL,ALMOV BX,CX9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么10、参考程序片段如下:;定义数据段DATA SEGMENTARRAY DB 60,65,72,76,77,66,79NEW DB 7 DUP0SUM DB 0AVERAGE DB 0DATA ENDS;程序代码如下……MOV CX,7MOV SUM,0MOV SI,0NEXT:MOV AL,ARRAYSIADD SUM,AL ;总分存入SUM中ADD AL,5MOV NEWSI,ALINC SILOOP NEXTMOV AL,SUMMOV AH,0MOV CL,7DIV CLMOV AVERAGE,AL ;平均分存入AVERAGE中12、参考答案:1程序片段如下:LEA SI,STRINGLEA DI,GET_CHARMOV CX,26CLDREP MOVSB2程序片段如下:先定义一个附加段,用来存放’The computer’EXTRA SEGMENTS2 DB ‘The computer’EXTRA ENDS…LEA SI,STRINGLEA DI,S2MOV CX,12CLDREPZ CMPSBJZ NEXT ;若比较的两个字符串相同,则跳到NEXT执行MOV AL,0 ; 若比较的两个字符串不相同SUB CL,12NEG CLMOV BL,CL ;比较的次数存入BL中RETNEXT:MOV AL,1MOV BL,12RET3程序片段如下:LEA DI,STRING ;被查找的字符串STRING作为目的串MOV AL,’&’MOV CX,26CLDREPNZ SCASBJNZ EXIT ;如果没有找到,直接退出DEC DI ;找到’&’字符的位置MOV BYTE PTR ES:DI,20H ;用空格字符替换EXIT: RET4完整的程序如下:;这里的DATA既作为数据段,又作为附加段,即数据段和附加段公用一个段DATA SEGMENTSTRING DB ‘The Personal Computer & TV’COUNT EQU $-STRINGCAPS DB COUNT DUP0CHART DB COUNT DUP0DATA ENDSCODE SEGMENTASSUME DS:DATA,ES:DATA,CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX;把字符串中大写字母传送到CAPS开始的单元中LEA SI,STRINGLEA DI,CAPSMOV CX,COUNTCLDAGAIN1:LODSBCMP AL,41HJB NEXT1CMP AL,5AHJA NEXT1STOSBNEXT1:LOOP AGAIN1;把字符串中其余字母传送到CHART开始的单元中LEA SI,STRINGLEA DI,CHARTMOV CX,COUNTCLDAGAIN2:LODSBCMP AL,41HJB NEXTCMP AL,5AHJBE NEXT2NEXT: STOSBNEXT2:LOOP AGAIN2;将STRING字符串清零LEA DI,STRINGMOV AL,0MOV CX,COUNTCLDREP STOSBRETMAIN ENDPCODE ENDSEND MAIN13、完整的程序如下:CODE SEGMENTASSUME CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXXOR SI,SI ;SI中存放DX中1的个数XOR DX,DXMOV AX,1234HMOV CX,16AGAIN:ROR AX,1JNC NEXTINC SIPUSH CXDEC CLMOV BX,1SHL BX,CLOR DX,BXPOP CXNEXT: LOOP AGAINRETMAIN ENDPCODE ENDSEND MAIN程序的运行结果:AX=1234H DX=2C48H SI=0005H,结果正确如果是段内转移,跳转指令只改变IP寄存器的内容,前三条跳转指令是段内跳转;如果是段间跳转,跳转指令同时改变IP和CS寄存器的内容,后两条跳转指令是段间跳转;15、参考答案:注意:三个循环指令LOOP 、LOOPE 和LOOPNE 终止循环的条件是不一样的; 16、参考答案:中断向量表的作用:中断向量表用于存放256种中断的中断服务程序的入口地址,每种类型中断的中断服务程序的入口地址占用4个字节,存储CS 和IP,总共需要1024个字节,即1K 字节; 中断向量表位于内存的最低1K 字节,地址范围为:00000H~003FFH;类型3的中断的中断服务程序的入口地址存放在:0000CH~0000FH 这四个单元; 17、参考答案:如下图所示解释:①由于中断类型号为2,所以该类型中断的中断服务程序入口地址占据内存最低1K 字节的2×4,2×4+1,2×4+2,2×4+3四个单元;②前两个单元存放中断服务程序IP 值,即0016H,后两个单元存放中断服务程序的CS 值,即0485H;③由于CS 和IP 值均为一个字,所以在存放中断服务程序入口地址的CS 和IP 值时,低位字节存放在低地址区,高位字节存放在高地址区; 18、参考答案: 1中断类型号为162该中断服务程序的起始地址是:CS:IP=D169H:240BH 解释:①由于中断向量表中地址为0040H 开始存放某类型中断的中断服务程序的入口地址,所以0040H 除以4就可以得到该类型中断的中断类型号n,即n=16;②中断服务程序的入口地址的CS 值存放在0042H 单元里,IP 值存放在0040H 单元里;20、参考答案:MOV CX,N;4个时钟周期NEXT:NOP ;N ×3个时钟周期 NOP ;N ×3个时钟周期LOOP NEXT;N-1×17+1×5个时钟周期由f =5MHz,t =,延时5ms 需要25000102.010563=⨯⨯--个时钟周期 所以:4+N ×3+N ×3+N-1×17+1×5=25000 解得:N=1087第四章p205~p2061、参考答案写出各变量在内存中的存储状况A1 DW 23H,5678HA2 DB 3 DUP,0AH,0DH,’$’A3 DD 5 DUP1234H,567890HA4 DB 4 DUP3 DUP1,2,’ABC’①变量A1占4个字节,在内存中的存储状况以十六进制表示,从左到右地址依次增加,以下同:23 00 78 56②变量A2占6个字节,在内存中的存储状况:00 00 00 0A 0D 24③变量A3占40个字节,在内存中的存储状况:34 12 00 00 90 78 56 00 再重复4遍④变量A4占60个字节,在内存中的存储状况:01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43带下画线部分重复4遍2、参考答案写出各指令执行后的结果3、参考答案:L=6,L的值实际就是BUF变量在内存中占有的字节数;4、参考答案:PLENGTH=22,PLENGTH的值实际就是三个变量PAR、PNAME和COUNT在内存中占有的总的字节数;5、参考答案:AX=1 BX=20 CX=16、参考答案:AH=00H7、1利用中断调用产生5秒延时data segments db '5 second is gone',13,10,'$'data endscode segmentassume cs:code,ds:datamain proc farmov ax,datamov ds,axmov ah,2chint 21h ;取得当前时间:ch时 cl分 dh秒 dl1/100秒mov bl,dhcontinue:mov ah,2chint 21hsub dh,blcmp dh,5jb continue ;判断两次取得时间间隔是否为5秒钟,如果不是则继续读取时间lea dx,s ;如果达到5秒,则显示一条信息mov ah,9int 21hmov ax,4c00hint 21hmain endpcode endsend main2利用中断调用,在屏幕上显示1~9之间的随机数思路:利用DOS系统功能调用得到当前时间,其中的dl寄存器中存放的是1/100秒,可以用来产生随机数;code segmentassume cs:codemain proc farmov ah,2chint 21hmov al,dl ;取得1/100秒,不同时间运行该程序时得到的这个数字也不一样,具有随机性mov ah,0mov bl,9 ;除以9div bl ;相除后的余数ah的范围为0~8inc ah ;加1后得到1~9之间的数add ah,30h ;转换为ASCII码mov dl,ahmov ah,2int 21h ;在屏幕上显示该数mov ax,4c00hint 21hmain endpcode endsend main8、1二进制到压缩BCD码的转换;把AX中的二进制数转换为压缩的BCD码,仍然存放AX寄存器中;例如:如果AX中的二进制数为0010 0110 1001 0100B=2694H,化成十进制数是9876,其压缩的BCD码是1001 1000 0111 0110,用十六进制表示是9876H;即这种转换实际就是把2694H转换为9876H;考虑到AX中能够存放的最大的四位压缩BCD数为9999H,所以在转换之前需要判断AX中的二进制数不能超过9999,即270FH;第五章p237~2382、ROM、PROM、EPROM、EEPROM在功能上各有何特点答案略见教材p2083、DRAM的CAS和RAS输入的用途是什么答:为了提高DRAM的集成度,减少引脚的数目,DRAM的地址线分成行地址和列地址两部分,在对存储器进行访问时,先由行地址选通信号RAS把行地址送入行地址锁存器,再由列地址选通信号CAS把列地址送入列地址锁存器,并由读写信号控制数据的读出或写入;4、什么CACHE作用是什么处于微处理机中的什么位置答:CACHE即高速缓冲存储器,通常由SRAM组成;其作用是:将经常访问的代码和数据保存到由SRAM 组成的高速缓冲存储器中,把不经常访问的数据保存到由DRAM组成的主存中,这样使存储器系统的价格降低,同时又降低了接近零等待的性能,大大的提高了系统的性能;CACHE位于CPU和主存储器之间;7、用1024×1位的RAM芯片组成16K×8位的存储器,需要多少芯片在地址线中有多少位参与片内寻址多少位合成片选信号设地址总线为16位答:需要16×8=128片RAM芯片,其中每8片为一组,总共有16组;地址线中有10位参与片内寻址;由于有16组芯片,余下的6根地址线中至少需要4根合成片选信号,来选中其中的一组芯片;8、现有一存储器芯片的容量为512×4位,若要用它组成4KB的存储器,需要多少这样的芯片每块芯片需要多少寻址线整个存储系统最少需要多少寻址线答:需要的芯片的数目为16片,每两片为一组,共有8组;每块芯片需要9根寻址线;由于共有8组芯片,至少需要3根地址线合成片选信号用来选择8组芯片中的一组;整个存储器系统至少需要9+3=12根地址线;9、利用1024×8位的RAM芯片组成4K×8位的存储器系统,用A15~A12地址线用线性选择法产生片选信号,存储器地址的分配有什么问题写出各芯片的地址分配;答:①需要的芯片的数目:4片②片内寻址需要的地址线的数目:由于每片RAM芯片内部有1024个存储单元,所以需要10根地址线用于选中其中某一个存储单元,占用地址总线的低10位A9~A0③片间寻址需要的地址线的数目:由于需要4片存储器芯片,所以至少需要2根地址线进行译码用于选择4片芯片中的一片,这样占用地址总线的A11和A10;余下的地址总线用线性选择法产生片选信号,这样A15~A12的电平的不同组合就产生了不同的地址空间,使得存储器芯片的地址空间产生重叠;如果A15~A12的电平组合为:A15=1,其余的均为0,则4片存储器芯片的地址范围分别为:A15 A14 A13 A12 A11 A10 A9…A01:1 0 0 0 0 0 0 … 0 =8000H1 0 0 0 0 0 1 … 1 =83FFH2:1 0 0 0 0 1 0 … 0 =8400H1 0 0 0 0 1 1 … 1 =87FFH3:1 0 0 0 1 0 0 … 0 =8800H1 0 0 0 1 0 1 … 1 =8BFFH4:1 0 0 0 1 1 0 … 0 =8C00H1 0 0 0 1 1 1 … 1 =8FFFH10、当从存储器偶地址单元读一个字节数据时,写出存储器的控制信号和它们的有效电平8086工作在最小模式;答案如下表所示:11、当要将一个字写入到存储器奇地址开始的单元中,列出存储器的控制信号和他们的有效电平8086工作在最小模式;答案如下表所示:分两次写入:第一次:第二次:12、设计一个64K×8的存储器系统,采用74LS138和EPROM 2764器件,使其寻址空间范围为:40000H~4FFFFH;解题步骤如下:①存储器芯片数目的确定:由于每片2764芯片为8K×8位,要组成64K×8的存储器系统,需要8片2764芯片,编号为1~8;②片内寻址地址线的选择:由于每片2764芯片为8K×8位,即有8K213=8K个存储单元,所以需要13根地址线A12~A0分别接到芯片的13个地址引脚,来选通片内某个存储单元;③片间寻址地址线的分配:A15、A14和A13分别连接到74LS138的C、B、A端,74LS138的8个输出④余下的地址线的连接:A19~A16和M/IO信号通过逻辑电路接到74LS138的三个控制端G1、G2A和G2B,具体的逻辑电路的设计与题目给定的寻址空间范围有关,如果题目没有给定寻址空间范围,逻辑电路由读者自行设计;⑤根据寻址空间范围设计控制端的逻辑电路:把最低地址40000H表示成二进制形式为:0100 0000 0000 0000 0000,可知20位地址总线高4位A19~A16的电平组合为A19=0,A18=1,A17=0,A16=0,加上M/IO=1,由此可以设计出74LS138的三个控制端G1、G2A和G2B的逻辑电路;M/IO信号可以同G1端直接相连;A18反向后与A19通过二输入负逻辑与非门即或门接到G2A端,A17和A16通过二输入负逻辑与非门或门连接到G2B端;⑥其他控制信号的连接:数据总线D7~D0直接与存储器芯片的8根数据引脚相连接;RD信号直接芯片的允许输出引脚相连;具体的电路图略;13、用8K×8的EPROM 2764,8K×8的RAM 6264和74LS138构成一个16K字ROM,16K字RAM的存储器子系统;8086工作在最小模式,系统带有地址锁存器8282,数据收发器8286;画出存储器系统与CPU的连接图,写出各芯片的地址分配;解题步骤如下:①存储器芯片数目的确定:需要EPROM芯片4片,每两片组成一组两片存储器芯片构成一个字存储器,一片为奇地址存储体,另一片为偶地址存储体,共有2组,编号为1和2;需要RAM芯片4片,每两片组成一组两片存储器芯片构成一个字存储器,一片为奇地址存储器,另一片为偶地址存储器,共有2组,编号为3和4;②片内寻址地址线的选择:由于每片2764芯片和6364芯片均为8K×8位,即有8K213=8K个存储单元,所以需要13根地址线A13~A1分别接到芯片的13个地址引脚,来选通片内某个存储单元;注意:A0不参与片内寻址,用来作为奇偶存储体的选择信号;A0与BHE信号相配合来读/写每一组中的奇偶存储体;③片间寻址地址线的分配:A16、A15和A14分别连接到74LS138的C、B、A端,74LS138的8个输出中的4个输出端分别选择4组包括2组EPROM芯片和2组RAM芯片存储器芯片中的一组;④三个控制端相连;可以由读者自行设计;如果选择A19=1,A18=0,A17=0,M/IO信号可以同G1端直接相连;A19反向后接到G2A端,A18和A17通过二输入负逻辑与非门或门连接到G2B端;⑤二次译码:由于每一组存储器由两片存储器芯片组成,一片为奇地址存储体,另一片为偶地址存储体,这两个存储体的选择需要A0和BHE信号;因此,74LS138的每个输出Y0~Y3还需要同这两个信号进行二次译码产生两个信号分别连到该组存储器的两个存储器芯片的CS端;例如:对于第1组存储器,Y0与A0通过二输入或门连到1的偶地址存储器芯片的CS端;Y0与BHE通过二输入或门连到1的奇地址存储器芯片的CS端;其他三组的二次译码电路以此类推;⑥各组芯片的地址范围:1:80000H~83FFFH2:84000H~87FFFH3:88000H~8BFFFH4:8C000H~8FFFFH每组的两个存储器芯片分别占用其中的奇地址和偶地址;14、上题中若从74LS138的Y2开始选择ROM和RAM芯片,写出各块芯片的地址分配;解答:若从74LS138的Y2开始选择ROM和RAM芯片,那么片间寻址A16、A15和A14组合如下表所示则各组芯片的地址范围为:1:88000H~8BFFFH2:8C000H~8FFFFH3:90000H~93FFFH4:94000H~97FFFH第六章p2627、某微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LS138作译码器,画出译码电路,并说明每块芯片的端口地址范围;解答:①片内寻址地址线的分配:由于每个芯片占有8个端口地址,则需要3个地址线用于片内寻址以访问片内8个端口,这样占用地址总线的最低3位,即A2、A1和A0;②片间寻址地址线的分配:由于总共有8块I/O接口芯片,则需要8根地址线,并接到74LS138的3个输入端C、B和A,74LS138的8个输出端Y0~Y7分别接8个I/O接口芯片的CS端,以寻址8块芯片中的一块,这样占用地址总线的A5、A4和A3位;③74LS138的控制端的连接:根据起始地址9000H可知,剩下的地址线A15~A6的组合为A15=1,其余的地址线的电平信号为低电平,加上M/IO=0,据此可以求出74LS138的3个控制端的连线逻辑;④各个芯片的地址范围:1 9000H~9007H2 9008H~900FH3 9010H~9017H4 9018H~901FH,同理可写出剩下的4块芯片的地址范围;第七章p302~3031~4题略5、中断服务子程序中中断指令STI放在不同位置会产生什么不同的结果中断嵌套时STI指令应如何设置解答:在进入中断服务程序时,中断允许标志位IF被清0,以屏蔽其他外部中断,在中断服务程序中可以用STI指令重新开中断,即IF=1;①STI指令放在中断服务程序开头和中间的某个位置,可以允许中断嵌套,CPU能响应更高级别的中断请求;②STI指令放在中断服务程序结束之前,几乎没什么作用,因为当前的中断服务快要结束了,中断结束后,自动恢复标志位IF,使IF=1,CPU又可以响应中断了;如果允许中断嵌套,则在中断服务子程序的开头用STI指令开中断;6、中断结束命令EOI放在程序的不同位置会产生什么不同的结果解答:EOI命令能够使中断控制器的ISR中断服务寄存器的相应位清0,允许同级别或级别较低的中断请求;在中断服务子程序中,EOI指令可以放在①中断服务程序的开头和中间的某个位置,则在中断处理中提前发出了EOI命令,则清除了正在执行的中断服务,ISR置“1”位被清0,允许响应同级别或低级的中断申请,但是这样会出现重复嵌套,使优先级高的中断不能及时得到服务;②放在中断服务程序返回指令IRET之前,这样当前中断结束之后,同级别或低级的中断申请同样可以得到响应,也不会出现重复嵌套,优先级高的中断也能够得到及时服务;建议在中断返回指令IRET指令前面使用EOI命令;7、中断向量表的功能是什么。