计算机原理课后练习题.docx
《计算机原理课后练习题.docx》由会员分享,可在线阅读,更多相关《计算机原理课后练习题.docx(47页珍藏版)》请在冰豆网上搜索。
计算机原理课后练习题
第1章计算机系统概述
【1-1】简答题
(1)计算机字长(Word)指的是什么?
(2)处理器的“取指-译码-执行周期”是指什么?
(3)总线信号分成哪3组信号?
(4)外部设备为什么又称为I/O设备?
(5)Windows的控制台窗口与模拟DOS窗口有什么不同?
[答案]
(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程。
处理器的“取指—译码—执行周期”是指处理器从主存储器
读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作
(简称执行)的过程。
(3)总线信号分成3组,分别是数据总线、地址总线和控制总线。
(4)因为外设以输入(Input)和输出(Output)形式与主机交换数据。
(5)Windows的控制台窗口是基于32/64位Windows操作系统,模拟DOS窗口是基于16位DOS操作系统。
【1-2】判断题
(1)处理器是计算机的控制中心,内部只包括5大功能部件的控制器。
(2)处理器并不直接连接外设,而是通过I/O接口电路与外设连接。
(3)处理器进行读操作,就是把数据从处理器内部读出传送给主存或外设。
【读操作是数据由模块到主模块的数据传送,写操作是数据由主模块到从模块的数据传送。
】
(4)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。
【软件和硬件的等价性原理是什么?
特点?
答:
理论上,任何一个由软件所完成的操作也可以直接由硬件来实现,任何一条由硬件所执行的指令也能用软件来完成。
特点:
软件易于实现各种逻辑和运算功能,但是往往速度较慢;硬件则可以高速实现逻辑和运算功能,但是难以实现复杂功能或计算。
】
(5)支持USB2.0版本的USB设备一定能够以高速(480Mb/s)传输数据。
【USB2.0最高理论带宽是480Mb/s,USB3.0最高理论带宽是5Gb/s.】
[答案]
(1)错
(2)对
(3)错
(4)错
(5)错
【1-3】填空题
(1)CPU是英文___________的缩写,中文译为___________,微型机采用___________芯片构成CPU。
(2)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,
16位地址信号共能寻址___________容量主存空间。
(3)某个处理器具有16个地址总线,通常可以用A__________表达最低位地址信号,
用A15表达最高地址信号。
【对应存储器那个图】
(4)英文缩写ISA常表示PC机工业标准结构(IndustryStandardArchitecture)
总线,也表示指令集结构,后者的英文原文是___________。
(5)在计算机层次结构中,___________层起着承上启下的软硬件界面作用。
-2-
[答案]
(1)CentralProcessingUnit,中央处理单元,(微)处理器
(2)2^16,64KB【1024B=2^10=1KB,64=2^6】
(3)A0(4)InstructionSetArchitecture
(5)传统机器语言层(指令集结构层)
【1-4】什么是摩尔定律?
它能永久成立吗?
[答案]
每18个月,集成电路的性能将提高一倍,而其价格将降低一半。
(1965年,Intel
公司的创始人之一摩尔预言:
集成电路上的晶体管密度每年将翻倍。
现在这个预言通常表
达为:
每隔18个月硅片密度(晶体管容量)将翻倍;也常被表达为:
每18个月,集成电
路的性能将提高一倍,而其价格将降低一半。
)
不能。
由于电子器件的物理极限在悄然逼近,摩尔定律不会永远持续。
【1-6】冯·诺伊曼计算机的基本设计思想是什么?
[答案]
采用二进制形式表示数据和指令。
指令由操作码和地址码组成。
将程序和数据存放在存储器中,计算机在工作时从存储器取出指令加以执行,自动完
成计算任务。
这就是“存储程序”和“程序控制”(简称存储程序控制)的概念。
指令的执行是顺序的,即一般按照指令在存储器中存放的顺序执行,程序分支由转移
指令实现。
计算机由存储器、运算器、控制器、输入设备和输出设备五大基本部件组成,并规定
了5部分的基本功能。
【1-8】计算机系统通常划分为哪几个层次?
普通计算机用户和软件开发人员对计算
机系统的认识一样吗?
[答案]
最上层是用户层。
第5层是高级语言层。
第4层是汇编语言层。
第3层是操作系统层。
第2层是机器语言层。
第1层是控制层。
第0层是数字电路层。
普通计算机用户和软件人员对计算机系统的认识并不一样。
普通计算机用户看到的计
算机,也就是我们最熟悉的计算机,属于用户层,而软件人员看到的属于高级语言层或是
汇编语言层
【1-10】EISA总线的时钟频率是8MHz,每2个时钟可以传送一个32位数据,计算其
总线带宽。
[答案]
(32×8)÷(2×8)=16MBps
第2章数据表示
【2-1】简答题
(1)使用二进制8位表达无符号整数,257有对应的编码吗?
(2)字符“F”的ASCII码和数值70的整数编码在计算机内部是否一样?
(3)大小写字母转换使用了什么规律?
(4)一个数字开头的文件名、一个字母开头的文件名,如果按照从小到大排列,哪
个文件会排在前面?
(5)为什么浮点数据编码有舍入问题,而整数编码却没有?
[答案]
(1)没有。
因为使用二进制8位表达无符号整数,最大是255。
(2)字符“F”的ASCII码和数值70的整数编码都是0x46,所以没有区别。
(3)大小写字母转换利用它们的ASCII码相差20H。
(4)数字开头的文件。
(5)浮点数据编码无法表达任意精度的数据,所以需要舍入。
但整数编码表达的数
据都是精确的数据。
【2-2】判断题
(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。
(2)常用的BCD码为8421BCD码,其中的8表示D3位的权重。
(3)无符号数在前面加零扩展,数值不变;有符号数前面进行符号扩展,位数加长
一位、数值增加一倍。
(4)在文字编辑软件中,按下键盘上的空格键往往显示空白,所以ASCII的空格编
码不是字符编码。
(5)IEEE754规定的浮点数据格式的阶码与标准偏移码一样。
[答案]
(1)对
(2)对
(3)错
(4)错
(5)错
【2-3】填空题
(1)计算机中有一个“01100001”编码。
如果把它认为是无符号数,它是十进制数
___________;如果认为它是BCD码,则表示真值_____________;又如果它是某个ASCII
码,则代表字符__________。
(2)C语言用“\n”表示让光标回到下一行首位,在DOS、Windows中需要输出两个
控制字符:
一个是回车,其ASCII码是_____________,它将光标移动到当前所在行的首
位;另一个是换行,其ASCII码是_____________,它将光标移到下一行。
(3)8个二进制位具有_________个不同的编码。
如果某种编码用00H表示真值-2,
01H表示-1,02H表示0,03H表示1,……依次顺序编码表示,则FFH表示真值_____________。
(4)有一个32位整数编码,在IA-32处理器的主存中占用______个字节空间,起始
于405000H地址,则最高字节存放的地址是_____________。
-6-
(5)单精度浮点数据格式共有__________位,其中符号位占一位,阶码部分占
__________位,尾数部分有__________位。
[答案]
(1)97,61,小写字母a
(2)0xd(0DH,13),0xa(0AH,10)
(3)256,253
(4)4,405003H
(5)32,8,23
【2-4】下列十六进制数表示无符号整数,请转换为十进制形式的真值:
(1)FFH
(2)0H(3)5EH(4)EFH
[答案]
(1)255
(2)0
(3)94
(4)239
【2-5】将下列十进制数真值转换为压缩BCD码:
(1)12
(2)24(3)68(4)99
[答案]
(1)12H
(2)24H
(3)68H
(4)99H
【2-6】将下列压缩BCD码转换为十进制数:
(1)10010001
(2)10001001(3)00110110(4)10010000
[答案]
(1)91
(2)89
(3)36
(4)90
【2-7】将下列十进制数用8位二进制补码表示:
(1)0
(2)127(3)-127(4)-57
[答案]
(1)00000000
(2)01111111
(3)10000001(负数补码取反加一)
(4)110001110011100111000110+1=11000111
【2-8】进行十六进制数据的加减运算,并说明是否有进位或借位:
(1)1234H+7802H
(2)F034H+5AB0H
(3)C051H-1234H
(4)9876H-ABCDH
[答案]
(1)1234H+7802H=8A36H,无进位
(2)F034H+5AB0H=4AF4H,有进位
(3)C051H-1234H=BE1DH,无借位(C051大于1234,所以不需要借位)
(4)9876H-ABCDH=ECA9H,有借位
【2-9】假设某C语言程序有一个字符串变量声明如下:
char*string="ABCabc890!
";
请按照顺序逐个字节写出其机器码。
[答案]
0x410x420x430x610x620x630x380x390x300x210x00
第3章数字逻辑基础
【3-1】简答题
(1)逻辑代数有哪3种基本逻辑关系,英文分别是什么?
(2)三态门有什么作用?
(3)什么是译码和译码器?
(4)具有反馈回路的逻辑电路属于组合逻辑电路还是时序逻辑电路?
(5)复位和置位是什么意思?
[答案]
(1)逻辑与AND、逻辑或OR、逻辑非NOT。
(2)控制器件与线路逻辑断路,便于构成共用的总线。
(3)译码是将给定代码翻译为输出信号的过程,译码器是实现译码的器件。
(4)时序逻辑电路。
(5)复位是设置状态为逻辑0,置位设置状态为逻辑1。
【3-2】判断题
(1)逻辑变量只有两个值、常用0和1表示,所以它具有大小之分。
(2)逻辑运算没有进位或溢出问题。
(3)一个数据采用偶校验,其校验位是1;如果改为奇校验,则校验位一定是0。
(4)组合逻辑电路组合有触发器电路。
(5)采用边沿触发方式的触发器只在时钟跳转时发生翻转。
[答案]
(1)错
(2)对
(3)对
(4)对
(5)对
【3-3】填空题
(1)对于逻辑0和逻辑1分别进行逻辑与、或、异或,结果分别是___、___和____。
(2)三态门除具有正常工作的___和___输出状态外,还可能处于称为___的禁止输出
状态。
(3)3位输入的二进制译码器,可以有____个输出信号。
(4)时序逻辑电路根据状态变换是否受时钟脉冲控制,可以分成____和____时序电
路两种类型。
(5)每个触发器有____种稳定状态,可以保存____位二进制数据。
[答案]
(1)0,1,1
(2)高电平,低电平,高阻
(3)8
(4)同步,异步
(5)2,1
A、B因为分两边计算,所以分别分两条线;之后再“与”计算;再之后,再进行“或”计算
公式有问题,同或应该是F=非A*非B+A*B
上式为直接化简,与下方式子不一样。
第4章处理器
【4-1】简答题
(1)定点整数运算器和浮点运算器哪个更复杂?
(2)控制器采用硬布线设计的主要优势是什么?
(3)ALU是什么?
(4)IA-32处理器的指令寄存器EIP对应程序计数器PC的作用。
当顺序执行指令时,
EIP自动加1,还是自动加一条指令的字节个数?
(5)物理地址唯一的存储单元为什么可以用多个逻辑地址表示?
[答案]
(1)浮点运算器更复杂。
(2)控制速度快。
(3)ALU是算术逻辑运算单元,负责处理器所能进行的各种运算,主要是算术运算和
逻辑运算。
(4)指令的字节个数。
(5)因为一个存储单元可能存在于多个段中,从而形成多个逻辑地址。
【4-2】判断题
(1)用微程序方法设计控制器具有灵活的优势,所以它已经完全取代硬布线控制。
(2)基本的ALU有加法器和减法器电路组成。
(3)程序计数器PC或指令指针EIP寄存器属于通用寄存器。
(4)EAX也被称为累加器,因为它使用最频繁。
(5)既然编程使用逻辑地址,所以地址总线也输出逻辑地址以便访问主存。
[答案]
(1)错
(2)错
(3)错
(4)对
(5)错
【4-3】填空题
(1)IA-32处理器有8个32位通用寄存器,其中EAX,__________,__________和
EDX,可以分成16位和8位操作;还有另外4个是__________,__________,__________,
和__________。
(2)寄存器EDX是__________位的,其中低16位的名称是__________,还可以分成
两个8位的寄存器,其中D8~D15部分可以用名称__________表示。
(3)编写应用程序通常涉及3个基本段,它们是_________、_________和_________。
(4)逻辑地址由__________和__________两部分组成。
代码段中下一条要执行的指
令由CS和__________寄存器指示,后者在实地址模型中起作用的仅有_________寄存器部
分。
(5)在实地址工作方式下,逻辑地址“7380H∶400H”表示的物理地址是__________,
并且该段起始于__________物理地址。
[答案]-23-
(1)EBX,ECX,ESI,EDI,EBP,ESP
(2)32,DX,DH
(3)代码段,数据段,堆栈段
(4)段地址,偏移地址,EIP,IP
(5)73C00H,73800H
【4-6】什么是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
第5章指令系统
【5-1】简答题
(1)什么是Load-Store指令集结构?
(2)MASM进行汇编时生成的列表文件主要包括哪些内容?
(3)汇编语言为什么规定十六进制数若以A~F开头,需要在前面加个0?
(4)数值500,在MASM中能够作为字节变量(BYTE)的初值吗?
(5)为什么将查找操作数的方法称为数据寻“址”方式?
(6)为什么变量VAR在指令“MOVEAX,VAR”中表达直接寻址?
(7)堆栈的存取原则是什么?
(8)如何修改“MOVESI,WORDPTR250”语句使其正确?
(9)都是获取偏移地址,为什么指令“LEAEBX,[ESI]”正确,而指令“MOVEBX,
OFFSET[ESI]”就错误?
(10)乘法指令“MULESI”的乘积在哪里?
[答案]
(1)处理器内部设置较多的通用寄存器,使多数操作(算术逻辑运算)都在寄存器
与寄存器之间,只有“取数Load”和“存数Store”指令访问存储器。
或者说,访问存储
器只能通过Load和Store指令实现。
(2)主要包括源程序和机器代码,以及标识符的说明。
(3)以便与标识符区别,因为标识符要求以字母(或特殊符号)开头。
(4)不能。
数值500大于一个字节所能表达的数据量,所以不能为字节变量赋值。
(5)指令的操作数需要通过存储器地址或I/O地址,才能查找到数据本身,故称数
据寻址方式。
(6)因为这里的变量名VAR实际上表达了从变量所存放的主存单元,即[地址]。
(7)堆栈的存取原则是先进后出(也称为后进先出)操作方式存取数据。
(8)MOVESI,250,或者:
MOVESI,DWORDPTR250
(9)LEA指令在指令执行时获取ESI内容赋值给EBX。
OFFSET在汇编阶段获取偏移量、
此时是无法获得执行时的ESI值的,所以是错误的。
(10)EDX(高32位)和EAX(低32位)
【5-2】判断题
(1)MASM汇编语言的注释用分号开始,但不能用中文分号。
(2)程序终止执行也就意味着汇编语言程序的汇编结束,所以两者含义相同。
(3)MASM中,用“BYTE”和“DWORD”定义变量,如果初值相同,则占用的存储空间
也一样多。
(4)立即数寻址只会出现在源操作数中。
(5)存储器寻址方式的操作数当然在主存了。
(6)堆栈的操作原则是“先进后出”,压入数据是PUSH指令、弹出数据是POP指令。
(7)MASM中,指令“MOVEAX,VAR+2”与“MOVEAX,VAR[2]”表达的功能相同。
(8)空操作NOP指令其实根本没有指令。
(9)CMP比较指令是目的操作数减去源操作数,与SUB减法指令功能完全相同。
(10)逻辑运算没有进位或溢出问题,此时CF和OF没有作用,所以逻辑运算指令如
AND、OR等将CF和OF设置为0。
-26-
[答案]
(1)对
(2)错
(3)错
(4)对
(5)对
(6)对
(7)对
(8)错
(9)错
(10)对
【5-3】填空题
(1)指令由表示指令功能的___________和表示操作对象的___________部分组成,
IA-32处理器的指令前缀属于___________部分。
(2)数据段有语句“ABCBYTE1,2,3”,代码段指令“MOVCL,ABC+2”执行后,CL=_____________。
(3)数据段有语句“H8843DWORD99008843H”,代码段指令“MOVCX,WORDPTRH8843”
执行后,CX=_____________。
(4)用DWORD定义的一个变量XYZ,它的类型是_____________,用“TYPEXYZ”会
得到数值为_____________。
如果将其以字量使用,应该用_____________说明。
(5)在IA-32指令“ADDEDX,5”中,指令助记符是__________,目的操作数是
__________,另一个操作数采用__________寻址方式。
(6)指令“MOVEAX,OFFSETMSG”的目的操作数和源操作数分别采用_____________和_____________寻址方式。
(7)已知ESI=04000H,EBX=20H,指令“MOVEAX,[ESI+EBX*2+8]”中访问的有效
地址是_____________。
(8)指令“POPEDX”的功能也可以用MOV和ADD指令实现,带上操作数依次应该是
__________和__________指令。
(9)IA-32处理器的指令“XOREAX,EAX”和“SUBEAX,EAX”执行后,EAX=__________,
CF=OF=__________。
而指令“MOVEAX,0”执行后,EAX=__________,CF和OF没有变
化。
(10)欲将EDX内的无符号数除以16,可以使用指令“SHREDX,__________”,其
中后一个操作数是一个立即数。
[答案]
(1)操作码,操作数,操作码
(2)3
(3)8843H
(4)DWORD,4,WORDPTRXYZ
(5)ADD,EDX,立即数
(6)寄存器寻址,立即数寻址
(7)04000H+20H×2+8=04048H
(8)MOVEDX,[ESP],ADDESP,4
(9)0,0,0
(10)4(2^4)
【5-4】MASM汇编语言语句有哪两种,每种语句由哪4个部分组成?
[答案]
汇编语句有两种:
执行性语句(处理器指令)、说明性语句(伪指令)。
每个语句有:
标号、指令助记符、操作数或参数、注释4个部分组成。
【5-5】MASM汇编语言中,下面哪些是程序员可以使用的自定义标识符。
FFH,DS,Again,next,@data,h_ascii,6364b,flat
[答案]
FFH,Again,next,h_ascii
其他符号错误的原因:
DS是数据段寄存器名。
6364b是数字开头。
@data是汇编语言使用预定义符号,表示数据段地址。
flat是表示平展存储模型的关键字。
【5-6】MASM汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么
输出文件。
[答案]
汇编语言程序的开发有4个步骤:
编辑:
用文本编辑器形成一个以ASM为扩展名的源程序文件。
汇编:
用汇编程序将ASM文件转换为OBJ模块文件。
连接:
用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。
调试:
用调试程序排除错误,生成正确的可执行文件。
【5-8】数据段有如下定义,IA-32处理器将以小端方式保存在主存:
vardword12345678h
现以字节为单位按地址从低到高的顺序,写出这个变量内容。
并说明如下指令的执行
结果:
moveax,var;EAX=__________
movbx,wordptrvar;BX=__________
movcx,wordptrvar+2;CX=__________一个1等于两个数。
movdl,byteptrvar;DL=__________
movdh,byteptrvar+3;DH=__________
[答案]-28-
小端方式采用“低对低、高对高”,即低字节数据存放在低地址存储单元、高字节数
据存放在高地址存储单元。
以字节为单位按地址从低到高的顺序,var变量的内容:
78H、