资源描述
第1章 思考与习题:
1、简述计算机系统的硬件构成和软件构成。计算机的硬件结构由运算器、控制器、存储器、输入设备、输出设备及连接各部件的总线组成。其中,运算器又称为算术/逻辑运算单元,完成数据的算术(加、减、乘、除)和逻辑(与、或、非、异)等运算以及移位等操作,它是一个采用二进制运算信息加工部件。
存储器是计算机的记忆部件,存储控制计算机操作的命令(指令)和被处理的信息数据,并对处理结果加以保存。存储器存储的信息有两类:一类是命令信息,指挥计算机系统工作,用来完成所设计的任务,这类信息被存放在存储器的代码区或程序区;另一类是数据是指被处理的对象或结果,这类信息被存放在数据区。一般将存储器分为两级:内存和外存,目前使用的内存是半导体存储器,外存采用硬盘、磁带、光盘等。平时程序保存在外存,执行时再将其调入内存中运行。狭义的存储器仅指内存储器。控制器是整个系统的指挥部件,对运行的指令逐一分析,发出控制信号并执行其相应操作。输入设备与输出设备,通称外围设备,是对信息形式的转换,如将语言文字、声音、机械动作等信息形式转换为计算机能识别的二进制格式信息,或将其反向转换。总线是计算机各部件间传输信息的公共通道,各部件分时复用总线,满足数据、地址、指令和控制信息在各部件之间快速传送的需要。微型计算机的软件由系统软件和应用软件构成。系统软件包括操作系统、程序设计语言的编译程序和其他程序。
操作系统是常驻内存的软件系统,包括系统资源管理(CPU管理,存储器管理、I/O管理和驱动程序)、任务管理、文件管理和程序库。为使用者提供灵活方便操作功能,使资源得到最充分有效的利用。各种程序设计语言的编译系统为用户开发应用软件提供有力支持,如汇编语言的汇编程序,各种高级语言的汇编程序、连接程序以及各种调试工具。其他程序,如系统诊断程序、故障定位程序、系统配置程序等。应用软件(或称用户软件)是为用户实现给定的任务而编写、选购或订购的程序,它只适合给定环境的指定用途,一般驻留在外部存储器中,只在运行时才调入内存储器。
2、冯·诺依曼体系结构的五个部件是什么?总线的作用是什么?冯·诺依曼体系结构由运算器、控制器、存储器、输入设备、输出设备及连接各部件的总线组成。如下图所示:总线(Bus)是计算机各部件间传输信息的公共通道,各部件分时复用总线,满足数据、地址、指令和控制信息在各部件之间快速传送的需要。
3、填空:
(1)计算机系统中的存储器分为 内存储器 和 外存储器 。在微处理器执行程序时,必须将指令存放在 内存储器 中。
(2)计算机存储数据的最小单位为 字节 。1KB容量的存储器能存储 1024 个这样的基本单位。
(3)在计算机系统中,多个部件之间信息传送的公共通道称为 总线 。在公共通道上传送的信息有 数据 、 地址 、 控制 和 状态 信息。
4、将下列十进制数分别转换为二进制数和十六进制数:
(1)129 (2)1022 (3)0.625 (1) 129=10000001B=81H(2) 1022=1111111110B=3FEH(3) 0.625=0.101B=0.AH
5、将下列二进制数分别转换为十进制数和十六进制数:
(1)10101011B (2)101101.1011B (1) 10101011B=171=0ABH (2) 101101.1011B=45.6875=2D.BH
6、写出下列数的原码、反码和补码(设字长为8位):
(1)-0 (2)20 (3)-15(1)-0 原码10000000B 反码11111111B 补码00000000B(2)20 原码00100100B 反码00100100B 补码00100100B(3)-15 原码10001111B 反码11110000B 补码10000001B
7、试写出下列字符的ASCII码:
(1)5 (2)LF (3)CR (4)SP (5)ESC (6)b
(1)5 35H(2)LF 0AH(3)CR 0DH(4)SP 20H(5)ESC 1BH(6)b 62H
8、若A=01010011B,说明什么运算可以完成下述操作?
(1)将A的第0、2、4、6位变反;(1)A 异或 01010101B 将A的第0、2、4、6位变反;
(2)将A的第1、2、3、4位清零;(2)A 与 11100001B 将A的第1、2、3、4位清零;
(3)将A的第1、3、5位置1。(3)A 或 00101010B 将A的第1、3、5位置1。
9、为什么软件能够转化为硬件?硬件能否转化为软件? 实现这种转化的媒介是什么?
对于一个具体任务而言,一般既可以用硬件完成,也可用软件完成,从理论上说,任何软件算法都能由硬件实现,反之亦然,这就是硬件与软件的逻辑的等价性。设计计算机系统或是在现有的系统上增加功能时,具体采用硬件还是采用软件实现,取决于价格、速度、可靠性等因素。随着超大规模集成电路的发展,以前由软件实现的功能现在更多地直接由硬件实现。实现这种转化的媒介是所谓的固件(firmware),形式上类似硬件,但功能上又像软件,这种趋势成为软件的硬化和固化。
10、8位二进制补码表示的十进制数的范围是多少?-128到+127
11、计算机的分类方式有哪些?
1、按处理数据的形态分类 计算机分为数字计算机和模拟计算机;
2、按照设计的目的分类 计算机可分为专用计算机和通用计算机;
3、按照使用的用途分类 计算机可分为高级科学计算机、工业控制计算机和数据计算机;
4、按照内部逻辑结构分类 计算机可分为单CPU处理机与多CPU处理机,8位机、16位机、32位机或64位计算机,CISC与RISC计算机等;
5、按综合性能指标分类 计算机可分为巨型机、大型机、小型机、工作站、微型机等几类。
第2章 思考与习题:
1、微处理器有哪的三项主要功能?微处理器的三项主要功能:(1)在微处理器与存储器或I/O之间传送数据;(2)基本的算术与逻辑运算;(3)通过简单判定,控制程序的流向。
2、按照指令的串行执行和并行执行 ,CPU可分为哪六种体系结构?CPU的六种体系结构为:1、随机逻辑体系结构2、微码体系结构3、流水线体系结构4、超流水线体系结构5、超标量体系结构6、多核微处理器体系结构
3、简述冯•诺依曼结构、哈佛结构和改进型哈这三种特点?
冯·诺伊曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构,相对于并行计算的串行式结构参考模型。依本结构设计出的计算机又称存储程序型计算机。根据存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据在同一个存储体按不同区域(程序区、数据区等)存储,并确定了存储程序计算机的五大组成部分和基本工作方法。冯-诺依曼结构的数据总线和指令总线是分时复用的,在同一总线上,有时传送的是数据有时是指令,因此它取指令和访问数据是无法同时进行的。
哈佛结构是一种将程序指令储存和数据储存分开的存储器结构。中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,据有相互独立的指令总线和数据总线,指令和数据可以有不同的数据宽度,访问指令和访问数据可以同时进行,执行时可以预先读取下一条指令。哈佛结构的微处理器通常具有较高的执行效率。
哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问,如下图所示。这种分离的程序总线和数据总线可允许在一个机器周期内同时获得指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,提高了数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重叠。程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度。
图1.8 哈佛结构框图
改进型哈佛结构仍然使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存,以便实现并行处理。改进型哈佛结构具有一条独立的地址总线和一条独立的数据总线,利用公用地址总线访问两个存储模块(程序存储模块和数据存储模块),公用数据总线则被用来完成程序存储模块或数据存储模块与CPU之间的数据传输,两条总线由程序存储器和数据存储器分时共用,如下图所示。
4、什么是CPU、MPU、μP、μC和MCU?CPU中央处理器;MPU微处理器;μP微处理器;μC微控制器;MCU微控制器。
5、简介CPU指令执行流程。指令执行步骤:第一步:取指令和分析指令。首先根据PC所指出的现行指令地址, 从内存中取出该条指令的指令码, 并送到控制器的指令寄存器中, 然后对所取的指令进行分析, 即根据指令中的操作码进行译码, 确定计算机应进行什么操作。译码信号被送往操作控制部件, 和时序电位、测试条件配合, 产生执行本条指令相应的控制电位序列。第二步:执行指令。根据指令分析结果, 由操作控制部件器发出完成操作所需要的一系列控制电位, 指挥计算机有关部件完成这一操作, 同时为取下一条指令作好准备。由此可见, 控制器的工作就是取指令、分析指令、执行指令的过程。周而复始地重复这一过程, 就构成了执行指令序列(程序)的自动控制过程。
6、流水线体系结构与超标量体系结构各有何特点?
流水线的实质是通过在同一时间做多件事情来提高机器的性能,因此指令流水线是一种可以将多条指令的执行过程相互重叠的实现技巧,它是提高处理器处理速度的关键技术之一。其特点是:具有时间的并行性;流水线分工越细,可同时运行的指令越多,吞吐率就越高;流水线每个阶段的执行时间应尽量一致;流水线充满(满载)时达到最大的吞吐率。超标量就是使用多条流水线来提高CPU的工作效率,在一个时钟周期内CPU可以执行一条以上的指令。其特点是:配置有多个性能不同的处理部件,采用多条流水线并行处理;能同时对若干条指令进行译码,将可并行执行的指令送往不同的执行部件,从而达到在每个时钟周期启动多条指令的目的;在程序运行期间由硬件(通常是状态记录部件和调度部件)完成指令调度。
7、CISC与RISC各自的特点有哪些?其典型产品代表有哪些?1.CISC体系的特点:使用微代码:指令集可以直接在微代码存储器里执行,新设计的处理器,只需增加较少的器部件就可以执行同样的指令集,也可以很快地编写新的指令集程式。庞大的指令集:可以减少编程所需要的代码行数,减轻程式师的负担。高阶语言对应的指令集:包括双运算元格式、寄存器到寄存器、寄存器到存储器以及存储器到寄存器的指令。
RISC体系特点:精简指令集:包含了简单、基本的指令,透过这些简单、基本的指令,就可以组合成复杂指令。 同样长度的指令:每条指令的长度都是相同的,可以在一个单独操作里完成。 单机器周期指令:大多数的指令都可以在一个机器周期里完成,并且允许处理器在同一时间内执行一系列的指令。
RISC与CISC的主要特征对比
比较内容
CISC
RISC
指令系统
复杂,庞大
简单,精简
指令数目
一般大于200
一般小于100
指令格式
一般大于4
一般小于4
寻址方式
一般大于4
一般小于4
指令字长
不固定
等长
可访存指令
不加限制
只有LOAD/STORE指令
各种指令使用频率
相差很大
相差不大
各种指令执行时间
相差很大
绝大多数在一个周期内完成
优化编译实现
很难
较容易
程序源代码长度
较短
较长
控制器实现方式
绝大多数为微程序控制
绝大多数为硬布线控制
软件系统开发时间
较短
较长
CISC体系的代表为Intel的80X86,RISC体系的代表为IBM的Power PC。
第三章 思考与练习题
1、8086CPU由哪两部分组成?各有何主要功能?
8086微处理器按功能可分为执行部件(EU)和总线接口部件(BIU)。执行部件负责指令执行,它由寄存器组、算术逻辑部件、标志寄存器组成。总线接口部件执行所有的总线操作,如20位地址形成、与主存储器或I/O设备交换数据等。
2、在8086 CPU的寄存器中,哪些可作为8位/16位寄存器使用?哪些寄存器不能由程序员操作使用?
AX、BX、CX、DX既可以用字(16位)形式访问,也可以将每个寄存器分别分成两个独立的8位寄存器(AH,AL;BH,BL;CH,CL;DH,DL),用字节(8位)形式访问,用来暂存计算过程中所用到的操作数、结果或其它信息。
不支持将数据直接送入段寄存器CS以及 IP 和标志寄存器 FLAG
3、在8086 CPU的寄存器中,有哪些通用寄存器和专用寄存器?试说明专用寄存器的作用。
通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI。
专用寄存器:CS,DS,ES,SS,IP和FLAGS
IP:用于寻址当前需要取出的指令字节,程序员不能对它直接操作;
FLAGS:用于指示微处理器的状态并控制它的操作;
CS:代码段寄存器,代码段是一个存储区域,存放的是CPU要使用的代码,CS存放代码段的段基地址;
DS:数据段寄存器,数据段是包含程序使用的大部分数据的存储区,DS中存放数据段的段基地址;
ES:附加段寄存器,附加段是为某些串操作指令存放目的操作数而附近的一个数据段,ES中存放该数据段的段基地址;
SS:堆栈段寄存器,堆栈段是内存中一个特殊的存储区,用于暂时存放程序运行时所需的数据或地址信息。SS中存放该存储区的段基地址。
4、什么是堆栈?堆栈指针的作用是什么?
堆栈:在存储器中开辟的一个区域,用来存放需要暂时保存的数据。其操作特点是先进后出。堆栈指针用于指向当前栈顶单元。
5、8086CPU具有 20 条地址线,可直接寻址 1M 容量的内存空间,在访问I/O端口时,使用地址线 16 ,最多可寻址 64K 个I/O端口。
6、在8086CPU中,物理地址和逻辑地址是指什么?二者之间有何联系?有效地址是如何产生的?
C000H:0002H
78H
C000H:0003H
56H
C000H:0004H
34H
C000H:0005H
12H
物理地址:指存储器中存储单元的实际地址编码,是一种绝对地址,是CPU 访问存储器的实际寻址地址,对于8086 系统,地址范围为00000H~FFFFFH。
逻辑地址:由段基址和偏移地址组成,均为无符号的16 位二进制数,程序设计时采用逻辑地址,可由逻辑地址变换为物理地址,物理地址=段基址×16+偏移地址。
在8086/8088的各种寻址方式中,寻找存储单元所需的偏移地址可由各种成分组成,称为有效地址,用EA表示。可以通过存储器寻址方式获得有效地址。
7、设现行数据段位于B0000H到BFFFFH,DS段寄存器的内容是什么?
DS段寄存器的内容是B000H。
8、设双字(4个字节)12345678H的起始地址是C000H:0002H,试说明这个双字在存储器中是如何存放的。
9、何谓全译码电路?何谓部分译码电路?
在系统中,存储器或I/O接口需使用部分地址信号,这些地址信号通常为地址信号中的低位地址信号,全译码电路将其余所有的高位地址信号经译码后作片选信号,片选信号与唯一的存储器或I/O接口的地址对应。
部分译码电路将存储器或I/O接口所用的低位地址线外的高位地址线中的部分地址信号作为译码电路的输入信号。采用这种方法的优点是减少了译码电路的输入信号,但译码的输出与地址不是一一对应的关系。由于未参加译码的地址信号可以有不同的编码,因而译码的输出可选中不同的地址。
10、一个中断类型号为01CH的中断处理程序存放在0100H:3800H开始的内存中,其中断向量表中的CS、IP分别存储在哪些单元?
0006FH
………
00070H
00H
IP
00071H
38H
00072H
00H
CS
00073H
01H
00074H
………
01CH号中断的中断向量表地址为:01CH×4=070H,则向量表中中断入口地址存放情况如下表所示
11、一台微型机,其存储器首址为1000H,末址为5FFFH,存储容量为( D )KB。
A. 8 B.12 C.16 D.20
12、微处理器用13条地址线寻址,其最大寻址范围为 ( D )
A. 1KB B.2KB C.4KB D.8KB
13、有一存储器芯片,地址线为A0~A12,数据线为D0~D7,则该芯片的存储容量为( B )
A. 4K×8位 B. 8K×8位 C.16K×8位 D. 32K×8位
14、8086CPU对I/O操作时,如何将8位、16位的数据传送?
I/O口地址不超过8位时可采用直接寻址方式访问,超过8位时必须用DX寄存器采用间接寻址方式访问,8位数据通过累加器AL、16位数据通过AX传送。
15、图3-23是一开关式可选译码电路, 即利用开关式地址可选译码器,写出其地址范围是多少。
图3-23 开关式可选译码电路
当DIP开关全部接通时,则当A3-A8=00000B,A9=1,AEN=0时选择器输出低电平,地址范围是:200H-207H;当DIP开关全部断开时,则当A3-A8=111111B,A9=1,AEN=0时选择器输出低电平,地址范围是:3F8H-3FFH。所以由DIP开关任何一种组合给出连续的8个地址,DIP开关的64种不同可覆盖从200H到3FFH的地址范围。其中上面的138给出输入口地址,下面的138给出输出口地址,它们是同一个地址。
第四章 思考与习题
1. 内存寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?如果要用某个段寄存器指出段地址,指令中应如何表示?
堆栈操作默认段地址由SS段寄存器给出,不可段超越;串操作指令中,源串默认段地址由DS段寄存器给出,可以段超越,目的串默认段地址由ES段寄存器给出,不可段超越;BP做基址寄存器,默认段地址由SS段寄存器给出,可以段超越;一般数据存取默认段地址由DS段寄存器给出,可以段超越。
2. 在8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0060H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 (1)寄存器寻址
(2)MOV [BX],12 (2)寄存器间接寻址 物理地址:10300H
(3)MOV ES: [SI],AX(3)寄存器间接寻址 物理地址:20200H
(4)MOV VAR,12(4)直接寻址 物理地址:10060H
(5)MOV [BX][SI],AX(5)基址变址寻址 物理地址:10500H
(6)MOV 6[BP][SI],AL(6)相对基址变址寻址 物理地址:12306H
(7)MOV [1000H],DX (7)直接寻址 物理地址:11000H
(8)MOV 6[BX],CX(8)寄存器相对寻址 物理地址:10306H
(9)MOV VAR+5,AX(9)直接寻址 物理地址:10065H
3. 下面这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。
(1)XCHG CX, AX(1)正确
(2)MOV [BX], [2000](2)错误,不可以在两个存储器操作数之间进行数据传送
(3)XCHG BX, IP(3)错误,8086中没有以IP为寄存器名的指令
(4)PUSH CS(4)正确
(5)POP CS(5)错误,不可以将CS做为各类指令中的目的操作数
(6)IN BX, DX(6)错误,输入/输出指令只能通过累加器来传送数据
(7)MOV BYTE [BX], 5000(7)错误,属性操作符应为 BYTE PRT
(8)MOV CS, [3000](8)错误,同(5)
(9)MOV BX, OFFSET VAR[SI](9)正确
4. 给出下列各条指令执行后AL以及CF,OF,SF和ZF的值。
XOR AL, AL AL=00H ;CF、OF、SF、ZF=0001
MOV AL, 255 AL=0FFH;CF、OF、SF、ZF=0001
INC AL AL=00H ;CF、OF、SF、ZF=0001
NOT AL AL=0FFH;CF、OF、SF、ZF=0001
SHL AL, 1 AL=0FEH;CF、OF、SF、ZF=1010
CMP AL, 10 AL=0FEH;CF、OF、SF、ZF=0010
SUB AL, 7FH AL=07FH;CF、OF、SF、ZF=0100
SHL AL, 1 AL=0FEH;CF、OF、SF、ZF=0110
5. 试述以下指令的区别。
(1)MOV AX, 1000H 与 MOV AX, [1000H]
(2)MOV AX, MEM 与 MOV AX, OFFSET MEM
(3)MOV AX, MEM 与 LEA AX, MEM
(4)JMP SHORT L1 与 JMP NEAR PTR L1
(5)CMP DX, CX 与 SUB DX, CX
(6)MOV [BP][SI], CL 与 MOV DS:[BP][SI], CL
(1)源操作数为立即寻址 源操作数为直接寻址
(2)取源操作数内容到AX 取源操作数有效地址到AX
(3)取源操作数内容到AX 取源操作数有效地址到AX
(4)短转移,8位位移量 近转移,16位位移量
(5)影响标志位,不保存结果 影响标志位,保存结果
(6)目的操作数在堆栈段 目的操作数在数据段
6. 设当前SS=2010H,SP=0FE00H,BX=3456H,计算当前栈顶的物理地址为多少?当执行PUSH BX指令后,栈顶物理地址和栈顶2个字节的内容分别是什么?
执行入栈指令前:栈顶的物理地址=SS*16+SP=20100H+0FE00H=2FF00H。执行入栈指令后:栈顶的物理地址=SS*16+SP-2=20100H+0FE00H-2=2FEFEH,(2FEFEH)=56H,(2FEFFH)=34H
7. 设AX=1978H,VALUE字变量中存放的内容为2013H,写出下列各条指令执行后AX寄存器和CF、ZF、OF、SF、PF的值。
(1)XOR AX, VALUE(1)XOR AX, VALUE AX=396BH, CF、ZF、OF、SF、PF=00000
(2)AND AX, VALUE(2)AND AX, VALUE AX=0010H, CF、ZF、OF、SF、PF=00000
(3)SUB AX, VALUE(3)SUB AX, VALUE AX=0F965H,CF、ZF、OF、SF、PF=10011
(4)CMP AX, VALUE(4)CMP AX, VALUE AX=1978H, CF、ZF、OF、SF、PF=10011
(5)NOT AX (5)NOT AX AX=0E687H,CF、ZF、OF、SF、PF=不受影响
(6)TEST AX, VALUE(6)TEST AX, VALUE AX=1978H, CF、ZF、OF、SF、PF=00000
8. 伪指令与指令的本质区别是什么?[指令语句] 每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基本操作,如数据传送,两数相加或相减,移位等,而这种操作是在目标程序(指令代码的有序集合)运行时完成的,是依赖于计算机内的中央处理器(CPU)、存储器、I/O接口等硬件设备来实现的。 [伪指令语句] 伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫指示性语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源程序时来完成的,而不是在运行目标程序时实现的。
DATA:0000
34
VARB
0001
34H
0002
‘G’
0003
‘O’
0004
‘O’
0005
‘D’
0006
1
0007
0
0008
0
0009
1
000A
0
000B
0
000C
78H
VARW
000D
56H
000E
‘D’
000F
‘C’
0010
12H
0011
64H
0012
64H
9. 画出下列语句中的数据在存储器中的存储情况。
DATA SEGMENT
VARB DB 34, 34H, 'GOOD', 2DUP(1, 2DUP(0))
VARW DW 5678H, 'CD', $+2, 2DUP(100)
VARC EQU 12
DATA ENDS
10.按下列要求,写出各数据定义语句。
(1)DB1为10H个重复的字节数据序列:1,2,5个3,4。
(2)DB2为字符串'STUDENTS'。
(3)DB3为十六进制数序列:12H,0ABCDH。
(4)用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。
(1)DB1 DB 10H DUP(1,2,5 DUP(3),4)
(2)DB2 DB 'STUDENTS'。
(3)DB3 DW 12H,0ABCDH。
(4)COUNT EQU DB2-DB1
展开阅读全文