微机原理与接口技术钱晓捷版课后习题答案.docx
《微机原理与接口技术钱晓捷版课后习题答案.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术钱晓捷版课后习题答案.docx(117页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术钱晓捷版课后习题答案
“微机原理与接口技术”习题解答
第1章微型计算机系统
〔习题1.1〕简答题
〔解答〕
①处理器每个单位时间可以处理的二进制数据位数称计算机字长。
②总线信号分成三组,分别是数据总线、地址总线和控制总线。
③PC机主存采用DRAM组成。
④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。
⑤ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。
⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。
⑧MASM是微软开发的宏汇编程序。
⑨指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
⑩机器语言层,即指令集结构。
(学生很多认为是:
汇编语言层。
前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)
〔习题1.2〕判断题
①错②错③对④错⑤对
⑥错⑦错⑧对⑨错⑩错
〔
〔解答〕
①CentralProcessingUnit,中央处理单元,处理器
②1MB,4GB
③216,64KB
④EXE,COM(BAT老师讲的)
⑤InstructionSetArchitecture
⑥目录
⑦MMX,SSE3
⑧64
⑨IBM,DOS
⑩PCI
〔习题1.4〕
说明微型计算机系统的硬件组成及各部分作用。
〔解答〕
CPU:
CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:
存储器是存放程序和数据的部件。
外部设备:
外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:
互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题1.5〕
什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?
〔解答〕
通用微处理器:
适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工作站、服务器上的微处理器。
单片机:
是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
DSP芯片:
称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:
利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统。
〔习题1.6〕
综述Intel80x86系列处理器在指令集方面的发展。
〔解答〕
8086奠定了基本的16位指令集,80286提供了保护方式的各种指令,80386将指令集全面提升为32位,80486融入了浮点数据处理指令,奔腾系列陆续增加了多媒体指令MMX、SSE、SSE2和SSE3,最新的奔腾4处理器还支持64位指令集。
题外话:
大家可以通过阅读相关资料、查询互联网获得更加详细的发展情况。
可以考虑组织成一篇或多篇论文。
〔习题1.7〕
区别如下概念:
助记符、汇编语言、汇编语言程序和汇编程序。
〔解答〕
助记符:
人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。
汇编语言:
用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。
汇编语言程序:
用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。
汇编程序:
汇编语言源程序要翻译成机器语言程序才可以由处理器执行。
这个翻译的过程称为“汇编”,完成汇编工作的程序就是汇编程序(Assembler)。
〔习题1.8〕
区别如下概念:
路径、绝对路径、相对路径、当前目录。
系统磁盘上存在某个可执行文件,但在DOS环境输入其文件名却提示没有这个文件,是什么原因?
〔解答〕
路径:
操作系统以目录形式管理磁盘上的文件,文件所在的分区和目录就是该文件的路径。
绝对路径:
从根目录到文件所在目录的完整路径称为“绝对路径”。
是保证文件唯一性的标示方法。
相对路径:
从系统当前目录到文件所在目录的路径称为相对路径。
当前目录:
用户当前所在的目录就是当前目录。
指明的路径不正确,或者执行了另外一个同名的文件。
〔习题1.9〕
什么是摩尔定律?
它能永久成立吗?
〔解答〕
每18个月,集成电路的性能将提高一倍,而其价格将降低一半。
(1965年,Intel公司的创始人之一摩尔预言:
集成电路上的晶体管密度每年将翻倍。
现在这个预言通常表达为:
每隔18个月硅片密度(晶体管容量)将翻倍;也常被表达为:
每18个月,集成电路的性能将提高一倍,而其价格将降低一半。
)
不能。
由于电子器件的物理极限在悄然逼近,摩尔定律不会永远持续。
〔习题1.10〕
冯·诺依曼计算机的基本设计思想是什么?
〔解答〕
采用二进制形式表示数据和指令。
指令由操作码和地址码组成。
将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完成计算任务。
这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移指令实现。
计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定了5部分的基本功能。
〔习题1.11〕
计算机系统通常划分为哪几个层次?
普通计算机用户和软件开发人员对计算机系统的认识一样吗?
〔解答〕
最上层是用户层。
第5层是高级语言层。
第4层是汇编语言层。
第3层是操作系统层。
第2层是机器语言层。
第1层是控制层。
第0层是数字电路层。
普通计算机用户和软件人员对计算机系统的认识并不一样。
普通计算机用户看到的计算机,也就是我们最熟悉的计算机,属于用户层,而软件人员看到的属于高级语言层或是汇编语言层。
〔习题1.12〕
什么是系列机和兼容机?
你怎样理解计算机中的“兼容”特性?
例如,你可以用PC机为例,谈谈你对软件兼容(或兼容性)的认识,说明为什么PC机具有如此强大的生命力?
〔解答〕
系列机是指在一个厂家生产的具有相同计算机结构,但具有不同组成和实现的一系列(Family)不同档次、不同型号的机器。
兼容机是指不同厂家生产的具有相同计算机结构(不同的组成和实现)的计算机。
兼容是一个广泛的概念,包括软件兼容、硬件兼容、系统兼容等。
其中软件兼容是指同一个软件可以不加修改地运行于体系结构相同的各档机器,结果一样但运行时间可能不同。
软件兼容可从机器性能和推出时间分成向上(向下)和向前(向后)兼容。
例如32位PC机就陆续增加了对浮点处理指令、多媒体指令等的支持。
在保证向后兼容的前提下,不断改进其组成和实现,延续计算机结构的生命,才使得PC机具有如此强大的生命力。
〔习题1.13〕
英特尔公司最新Intel80x86处理器是什么?
请通过查阅相关资料(如英特尔公司网站),说明其主要特点和采用的新技术。
〔解答〕
酷睿2多核处理器。
〔习题1.14〕
说明高级语言、汇编语言、机器语言三者的区别,谈谈你对汇编语言的认识。
〔解答〕
高级语言与具体的计算机硬件无关,其表达方式接近于所描述的问题,易为人们接受和掌握,用高级语言编写程序要比低级语言容易得多,并大大简化了程序的编制和调试,使编程效率得到大幅度的提高。
而汇编语言是为了便于理解与记忆,将机器指令用助记符代替而形成的一种语言。
汇编语言的语句通常与机器指令对应,因此,汇编语言与具体的计算机有关,属于低级语言。
它比机器语言直观,容易理解和记忆,用汇编语言编写的程序也比机器语言易阅读、易排错。
机器语言的每一条机器指令都是二进制形式的指令代码,计算机硬件可以直接识别。
高级语言程序通常也需要翻译成汇编语言程序,再进一步翻译成机器语言代码。
〔习题1.15〕
为了更好地进行编程实践,请进入Windows操作系统下的控制台环境(或MS-DOS模拟环境),练习常用命令。
第2章处理器结构
〔习题2.1〕简答题
〔解答〕
①ALU是算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运算和逻辑运算。
②取指是指从主存取出指令代码通过总线传输到处理器内部指令寄存器的过程。
8086分成总线接口单元和指令执行单元,可以独立操作。
在执行单元执行一条指令的同时,总线接口单元可以读取下一条指令,等到执行时不需要进行取指了,所以称为预取。
③Pentium采用分离的Cache结构,一个用做指令Cache,一个用做数据Cache。
④堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。
⑤标志寄存器主要保存反映指令执行结果和控制指令执行形式的有关状态。
⑥执行了一条加法指令后,发现ZF=1,表明运算结果为0。
⑦没有。
⑧汇编语言的标识符大小写不敏感,即表示字母大小写不同、但表示同一个符号。
⑨不会。
⑩指令的操作数需要通过存储器地址或I/O地址,才能查找到数据本身,故称数据寻址方式。
〔习题2.2〕判断题
〔解答〕
①错②对③对④对⑤错
⑥对⑦对⑧错⑨对⑩对
〔习题2.3〕填空题
〔解答〕
①32,DX,DH
②16
③段地址,偏移地址,EIP,IP
④00100110,0
⑤73C00H,73800H
⑥EBX,ECX,ESI,EDI,EBP,ESP
⑦实地址,64KB
⑧ASM,目标模块,FLAT
⑨立即数寻址、寄存器寻址和存储器寻址
⑩DS,SS
〔习题2.4〕
处理器内部具有哪3个基本部分?
8086分为哪两大功能部件?
其各自的主要功能是什么?
〔解答〕
处理器内部有ALU、寄存器和指令处理三个基本单元。
8086有两大功能部件:
总线接口单元和执行单元。
总线接口单元:
管理着8086与系统总线的接口,负责处理器对存储器和外设进行访问。
8086所有对外操作必须通过BIU和这些总线进行。
执行单元EU:
负责指令译码、数据运算和指令执行。
〔习题2.5〕
8086怎样实现了最简单的指令流水线?
〔解答〕
8086中,指令的读取是在BIU单元,而指令的执行是在EU单元。
因为BIU和EU两个单元相互独立、分别完成各自操作,所以可以并行操作。
也就是说,在EU单元对一个指令进行译码执行时,BIU单元可以同时对后续指令进行读取;这就是最简单的指令流水线技术。
〔习题2.6〕
什么是标志?
什么是IA-32处理器的状态标志、控制标志和系统标志?
说明状态标志在标志寄存器EFLAGS的位置和含义。
〔解答〕
标志:
用于反映指令执行结果或控制指令执行形式的一个或多个二进制数位。
例如,有些指令执行后会影响有关标志位;有些指令的执行要利用相关标志。
状态标志:
用来记录程序运行结果的状态信息。
控制标志:
DF标志,控制字符串操作的地址方向。
系统标志:
用于控制处理器执行指令的方式。
状态标志在标志寄存器EFLAGS中的位置和含义如下:
3111109876543210
……OFSFZFAFPFCF
〔习题2.7〕
举例说明CF和OF标志的差异。
〔解答〕
进位标志CF表示无符号数运算结果是否超出范围,超出范围后加上进位或借位,运算结果仍然正确;溢出标志OF表示有符号数运算结果是否超出范围,如果超出范围,运算结果已经不正确。
例1:
3AH+7CH=B6H
无符号数运算:
58+124=182,范围内,无进位。
有符号数运算:
58+124=182,范围外,有溢出。
例2:
AAH+7CH=①26H
无符号数运算:
170+124=294,范围外,有进位。
有符号数运算:
-86+124=28,范围内,无溢出。
〔习题2.8〕
什么是8086中的逻辑地址和物理地址?
逻辑地址如何转换成物理地址?
请将如下逻辑地址用物理地址表达(均为十六进制形式):
①FFFF∶0②40∶17③2000∶4500④B821∶4567
〔解答〕
物理地址:
在处理器地址总线上输出的地址称为物理地址。
每个存储单元有一个唯一的物理地址。
逻辑地址:
在处理器内部、程序员编程时采用逻辑地址,采用“段地址:
偏移地址“形式。
某个存储单元可以有多个逻辑地址,即处于不同起点的逻辑段中,但其物理地址是唯一的。
逻辑地址转换成物理地址:
逻辑地址由处理器在输出之前转换为物理地址。
将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址。
①FFFFH:
0=FFFF0H
②40H:
17H=00417H
③2000H:
4500H=24500H
④B821H:
4567H=BC777H
〔习题2.9〕
IA-32处理器有哪三类基本段,各是什么用途?
〔解答〕
IA-32处理器有代码段、数据段、堆栈段三类基本段。
代码段:
存放程序的指令代码。
程序的指令代码必须安排在代码段,否则将无法正常执行。
数据段:
存放当前运行程序所用的数据。
程序中的数据默认是存放在数据段,也可以存放在其他逻辑段中。
堆栈段:
主存中堆栈所在的区域。
程序使用的堆栈一定在堆栈段。
〔习题2.10〕
什么是平展存储模型、段式存储模型和实地址存储模型?
〔解答〕
平展存储模型下,对程序来说存储器是一个连续的地址空间,称为线性地址空间。
程序需要的代码、数据和堆栈都包含在这个地址空间中。
段式存储模型下,对程序来说存储器由一组独立的地址空间组成,独立的地址空间称为段。
通常,代码、数据和堆栈位于分开的段中。
实地址存储模型是8086处理器的存储模型。
它是段式存储模型的特例,其线性地址空间最大为1MB容量,由最大为64KB的多个段组成。
〔习题2.11〕
什么是实地址方式、保护方式和虚拟8086方式?
它们分别使用什么存储模型?
〔解答〕
实地址方式:
与8086具有相同的基本结构,只能寻址1MB物理存储器空间,逻辑段最大不超过64KB;但可以使用32位寄存器、32位操作数和32位寻址方式;相当于可以进行32位处理的快速8086。
实地址工作方式只能支持实地址存储模型。
保护方式:
具有强大的段页式存储管理和特权与保护能力,使用全部32条地址总线,可寻址4GB物理存储器。
保护方式通过描述符实现分段存储管理,每个逻辑段可达4GB。
处理器工作在保护方式时,可以使用平展或段式存储模型。
虚拟8086方式:
在保护方式下运行的类似实方式的运行环境,只能在1MB存储空间下使用“16位段”。
处理器工作在虚拟8086方式时,只能使用实地址存储模型。
〔习题2.12〕
汇编语句有哪两种,每个语句由哪4个部分组成?
〔解答〕
汇编语句有两种:
执行性语句(处理器指令)、说明性语句(伪指令)。
每个语句有:
标号、指令助记符、操作数或参数、注释4个部分组成。
〔习题2.13〕
汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。
〔解答〕
汇编语言程序的开发有4个步骤:
编辑:
用文本编辑器形成一个以ASM为扩展名的源程序文件。
汇编:
用汇编程序将ASM文件转换为OBJ模块文件。
连接:
用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。
调试:
用调试程序排除错误,生成正确的可执行文件。
〔习题2.14〕
MASM汇编语言中,下面哪些是程序员可以使用的正确的标识符。
FFH,DS,0xvab,Again,next,@data,h_ascii,6364b,.exit,small
〔解答〕
FFH,Again,next,h_ascii
〔习题2.15〕
给出IA-32处理器的32位寻址方式和16位寻址方式的组成公式,并说明各部分作用。
〔解答〕
①32位存储器寻址方式的组成公式
32位有效地址=基址寄存器+(变址寄存器×比例)+位移量
其中的4个组成部分是:
·基址寄存器任何8个32位通用寄存器之一;
·变址寄存器除ESP之外的任何32位通用寄存器之一;
·比例可以是1,2,4或8(因为操作数的长度可以是1,2,4或8字节);
·位移量可以是8或32位有符号值。
②16位存储器寻址方式的组成公式
16位有效地址=基址寄存器+变址寄存器+位移量
其中基址寄存器只能是BX或BP,变址寄存器只能是SI或DI,位移量是8或16位有符号值。
〔习题2.16〕
说明下列指令中源操作数的寻址方式?
假设VARD是一个双字变量。
(1)movedx,1234h
(2)movedx,vard
(3)movedx,ebx
(4)movedx,[ebx]
(5)movedx,[ebx+1234h]
(6)movedx,vard[ebx]
(7)movedx,[ebx+edi]
(8)movedx,[ebx+edi+1234h]
(9)movedx,vard[esi+edi]
(10)movedx,[ebp*4]
〔解答〕
①立即数
②直接
③寄存器
④寄存器间接
⑤寄存器相对
⑥寄存器相对
⑦基址变址
⑧相对基址变址
⑨相对基址变址
⑩带比例寻址
〔习题2.17〕
使用本书配套的软件包(或者按照本书说明)创建MASM开发环境,通过编辑例题2-1和例题2-2程序、汇编连接生成可执行程序和列表文件,掌握汇编语言的开发。
第3章数据处理
〔习题3.1〕简答题
〔解答〕
①没有。
使用二进制8位表达无符号整数,257没有对应的编码。
②字符“'F'”的ASCII码就是数值46H,所以没有区别。
③汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量。
④不能。
数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。
⑤源、目标寄存器位数不同,不能用该指令进行数据交换。
⑥前者在指令执行时获得偏移地址,是正确的;但后者的OFFSET只能在汇编阶段获得偏移地址,但此时寄存器内容是不可知的,所以无法获得偏移地址。
⑦INC,DEC,NEG和NOT指令的操作数既是源操作数也是目的操作数。
⑧大小写字母转换利用它们的ASCII码相差20H。
⑨加减法不区别无符号数和有符号数,但根据运算结果分别设置标志寄存器的CF和OF标志,可利用CF和OF进行区别。
⑩逻辑与运算规则类似二进制的乘法,所以称其为逻辑乘。
〔习题3.2〕判断题
〔解答〕
①对②对③对④错⑤错
⑥对⑦错⑧错⑨对⑩对
〔习题3.3〕填空题
〔解答〕
①BYTE,OFFSET
②97,61,小写字母a
③0DH(13),0AH(10)
④8843H
⑤DWORD,4,WORDPTRXYZ
⑥3
⑦78894111
⑧0,0,0
⑨0123456788765432H,83H
⑩4
〔习题3.4〕
下列十六进制数表示无符号整数,请转换为十进制形式的真值:
①FFH②0H③5EH④EFH
〔解答〕
①255
②0
③94
④239
〔习题3.5〕
将下列十进制数真值转换为压缩BCD码:
①12②24③68④99
〔解答〕
①12H
②24H
③68H
④99H
〔习题3.6〕
将下列压缩BCD码转换为十进制数:
①10010001②10001001③00110110④10010000
〔解答〕
①91
②89
③36
④90
〔习题3.7〕
将下列十进制数用8位二进制补码表示:
①0②127③-127④-57
〔解答〕
①00000000
②01111111
③10000001
④11000111
〔习题3.8〕
进行十六进制数据的加减运算,并说明是否有进位或借位:
①1234H+7802H
②F034H+5AB0H
③C051H-1234H
④9876H-ABCDH
〔解答〕
①1234H+7802H=8A36H,无进位
②F034H+5AB0H=4AF4H,有进位
③C051H-1234H=BE1DH,无借位
④9876H-ABCDH=ECA9H,有借位
〔习题3.9〕
数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?
ASCII码0DH和0AH分别对应什么字符?
〔解答〕
数码0~9对应的ASCII码依次是30H~39H。
大写字母A~Z对应的ASCII码依次是:
41H~5AH。
小写字母a~z对应的ASCII码依次是:
61~7AH。
ASCII码0DH和0AH分别对应的是回车和换行字符。
〔习题3.10〕
设置一个数据段,按照如下要求定义变量或符号常量:
①my1b为字符串变量:
PersonalComputer
②my2b为用十进制数表示的字节变量:
20
③my3b为用十六进制数表示的字节变量:
20
④my4b为用二进制数表示的字节变量:
20
⑤my5w为20个未赋值的字变量
⑥my6c为100的常量
⑦my7c表示字符串:
PersonalComputer
〔解答〕
my1bbyte'PersonalComputer'
my2bbyte20
my3bbyte14h
my4bbyte00010100b
my5wword20dup(?
)
my6c=100
my7cequ
〔习题3.11〕
定义常量NUM,其值为5;数据段中定义字数组变量DATALIST,它的头5个字单元中依次存放-10,2,5和4,最后1个单元初值不定。
〔解答〕
numequ5
datalistbyte-10,2,5,4,?
〔习题3.12〕
从低地址开始以字节为单位,用十六进制形式给出下列语句依次分配的数值:
byte'ABC',10,10h,'EF',3dup(-1,?
3dup(4))
word10h,-5,3dup(?
)
〔解答〕
4142430A104546FF00040404FF00040404FF00040404
1000FBFF000000000000
〔习题3.13〕
设在某个程序中有如下片段,请写出每条传送指令执行后寄存器EAX的内容:
;数据段
org100h
varwword1234h,5678h
varbbyte3,4
varddword12345678h
buffbyte10dup(?
)
messbyte'hello'
;代码段
moveax,offsetmess
moveax,typebuff+typemess+typevard
moveax,sizeofvarw+sizeofbuff+sizeofmess
moveax,lengthofva