《微机原理与嵌入式系统基础练习答案》1.docx
《《微机原理与嵌入式系统基础练习答案》1.docx》由会员分享,可在线阅读,更多相关《《微机原理与嵌入式系统基础练习答案》1.docx(46页珍藏版)》请在冰豆网上搜索。
《微机原理与嵌入式系统基础练习答案》1
练习题
(首先,在批改作业的过程中发现存在大量的抄袭问题,错误都是千篇一律,特此警戒)
1、简述冯诺依曼体系结构计算机的要点和工作过程。
答:
冯诺依曼体系结构计算机的要点:
计算机中的信息(程序和数据)以二进制方式表示。
程序预存储,机器自动执行。
计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
计算机通过执行预存储在存储器中的程序来完成预定的运算。
程序由计算机的指令序列构成,计算机在处理器的控制下,首先从存储器读取一条待执行的指令到处理器中,接下来分析这条指令,而后发出该指令对应的电平脉码序列,即执行该指令。
并以此递归运行程序。
2、简述计算机各组成部分的功能。
答:
♦中央处理单元(CPU):
主要由运算器、控制器构成。
其中运算器主要用于完成诸如加、减、乘、除等算术运算和左右移位、与、或、非等逻辑运算;控制器主要用于完成机器指令的解析和执行,控制运算器进行相应的运算,控制数据在计算机各组成部分之间传送,控制计算机各组成部分有条不紊地协调工作等。
♦存储器(Memory)是计算机系统中用来存储程序和数据的信息记忆部件。
♦输入/输出设备:
信息进出计算机的数据通道。
3、何谓总线?
计算机中有哪几类总线?
简述其用途。
答:
计算机的总线(Bus)就是连接计算机硬件各部件,用于计算机硬件各部件之间信息传输的公共通道。
按照其传送信号的用途属性,总线可细分为:
地址总线(AddressBus)、数据总线(DataBus)和控制总线(ControlBus)三类。
♦地址总线(A_Bus):
专用于在CPU、存储器和I/O端口间传送地址信息的信号线。
此类信号线传送的信息总是从CPU到存储器或I/O端口,它是单向信号线。
♦数据总线(D_Bus):
专用于在CPU、存储器和I/O端口间传送数据信息的信号线。
此类信号线传送的信息可以是从CPU到存储器或I/O端口(“写”操作),也可能是从存储器或I/O端口到CPU(“读”操作),它是双向信号线。
♦控制总线(C_Bus):
专用于CPU与其它部件之间传送控制信息和状态信息的信号线。
此类信号线的构成比较复杂,传送的控制、状态信息可以是从CPU到其它部件,也可能是从其它部件到CPU。
此类总线中的某些具体的线是单向的(或从CPU到其它部件,或反之),但作为总线来说,它是双向信号线。
(总线是ARM核和外部的接口,是理解ARM体系结构的重要环节,答案中应该说明总线对系统的影响,以及作为使用者来说应该怎样操作,应该重点掌握)
4、简述计算机‘真值’和‘机器数’的概念。
答:
各个信息在计算机中的二进制表示形式称之为“机器数”,机器数所代表的值含义称为该机器数的“真值”。
“真值”可以是数值,也可以是字符,甚至是语音或图象等。
5、什么是处理器的主频?
什么是处理器的字长?
答:
CPU主频也叫时钟频率,单位是MHz(或GHz),用来表示处理器的工作频率。
CPU字长是指运算器的位宽,单位是比特(bit),用于表示CPU一次运算可处理的二进制数据的位度。
6、简述计算机接口在计算机系统中的作用。
答:
“输入/输出接口”是用于外设与计算机之间桥接和匹配的专用部件,通常以集成电路或板卡的形式存在。
应用于计算机主机与外界的信息交互。
7、将下列十进制数分别转换为十六进制数和二进制数:
⑴123.85;⑵93.125;⑶23.625;⑷65535
答:
123.85=0x7B.D99=01111011.110110011001b
93.125=0x5D.2=01011101.001b
23.625=0x17.A=00010111.101b
65535=0xFFFF=1111111111111111b
8、将下列二进制数分别转换为十六进制数和十进制数:
⑴11001101.1b;⑵10001101.01b;⑶11010.011b;⑷101100101110001b
答:
11001101.1b=0xCD.8=205.5
10001101.01b=0x8D.4=141.25
11010.011b=0x1A.6=26.375
101100101110001b=0x5971=22897
(数值转换方面比较简单,掌握情况来看比较好,4的错误率较高,是由于不认真做造成的)
9、完成下列二进制数的运算:
答:
⑴10100101b+00111010b=11011111b
⑵11001011b–00100100b=10100111b
⑶10000101.1b+00011110.11b=10100100.01b
⑷10101101.01b–01001001.10b=1100011.11b
10、完成下列十六进制数的运算:
答:
⑴0x39+0x56=0x80
⑵0x7B–0x3C=0x3F
⑶0x5D.A1+15.75=0x48.2C
⑷0x83.02–1E.B3=0x64.4E
11、分别假设字长n=8,n=16,计算下列十进制数的补码:
答:
序号
真值
补码(n=8)
补码(n=16)
1
56
00111000(0x38)
0000000000111000(0x0038)
2
115
01110011(0x73)
0000000001110011(0x0073)
3
-56
11001000(0xC8)
1111111111001000(0xFFC8)
4
-115
10001101(0x8D)
1111111110001101(0xFFC8)
12、假设字长n=16,写出下列补码的真值:
答:
⑴[0000010000101001]真=[0x0429]真=1065
⑵[1000010000101001]真=[0x8429]真=-31703
⑶[1111111111111111]真=[0xffff]真=-1
⑷[0111111111111111]真=[0x7FFF]真=32767
13、假设运算器的长度n=16,完成下列补码运算,观察运算器内的结果值,观察CF、DF和OF位的情况;再分别用真值运算验证,说明补码结果原因,总结OF位于与补码运算溢出的关系。
答:
补码运算
结果码
真值比对
CF
DF
OF
说明
0000010000101001
+
1000010000101001
1000100001010010
(0x8852)
1065+(-31703)
=-30638
[-30638]补=0x8852
0
0
0
运算无溢出
1000010000101001
+
1111111111111111
1000010000101000
(0x8428)
(-31703)+(-1)
=-31704
[-31704]补=0x8428
1
1
0
运算无溢出
1111111111111111
+
0111111111111111
0111111111111110
(0x7FFE)
(-1)+32767
=32766
[32766]补=0x7FFE
1
1
0
运算无溢出
0111111111111111
+
0000000000000001
1000000000000000
(0x8000)
32767+1
=32768(超出值域)
[-32768]补=0x8000
0
1
1
运算有溢出
14、什么是ASCII编码?
写出引号内各字符的ASCII编码“IAmaStudent!
”。
答:
ASCII编码----美国标准信息交换标准码(AmericanStandardCodeforInformationInterchange,ASCII),统一规定了常用符号的二进制数表示方式。
计算机中常用ASCII编码表示字符信息。
IAmaStudent!
的ASCII编码-----略。
15、什么是嵌入式系统?
有何特点?
答:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
其特点是:
它是嵌入到目标对象中的、软硬件定制的专用计算机系统。
16、举例在你的身边常见到的嵌入式系统产品,谈一谈你对“嵌入式系统”的初步理解。
答:
略。
17、简述嵌入式操作系统的特点。
答:
微内核、高可靠性、可裁减定制、满足实时性。
18、简述你对嵌入式操作系统的基本认识,嵌入式操作系统在嵌入式系统开发中的必要性。
答:
略。
练习题
(第二章基本上是问答题,作业中存在的问题是,最好用自己的语言来回答问题,如果一味抄书的话,不能对问题理解透彻)
1、何谓计算机体系结构?
答:
计算机体系结构是对计算机较高层次的抽象,是摆脱具体电路的实现而主要着眼于计算机系统的逻辑特征、原理特征、结构特征和功能特征的抽象。
2、什么是处理器的指令?
什么是处理器的指令系统?
答:
计算机中的“指令”就是CPU执行某种操作的命令,它也是以二进制编码方式存在,每一条指令都对应着CPU要完成的特定操作。
一台计算机中所有机器指令的集合称为该CPU的“指令系统”。
3、术语‘指令’和‘语句’有何差别?
答:
‘指令’一般针对处理器而言,它在物理操作级仅指示处理器完成一个具体操作,是计算机(处理器)编程的最细小的‘编程描述粒子’。
‘语句’一般针对高级语言,一般是在算法级、逻辑级描述一个算逻运算;他们在描述程序时具有不同的描述级别。
4、什么是RISC?
什么是CISC?
简述他们的特点与差别。
答:
RISC是ReducedInstructionSetComputer,精简指令集计算机的缩写。
它的特点是指令系统精炼,处理器电路逻辑相对简单,且能够以更快的速度执行操作。
对于负载的功能需要编程实现。
CISC是ComplexInstructionSetComputer,复杂指令集计算机的缩写。
它的特点是指令系统中含有大量的类似于高级程序设计语言结构的复合功能指令。
指令系统庞大,处理器硬件电路的复杂度。
5、ARM7处理器是几级流水线?
在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话对吗?
为什么?
答:
ARM7处理器是三级流水线。
在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话不对,因为流水线的存在,指令码即使取送到处理器中也未必被执行;应该说“PC指向的是下一条要取指的指令”。
6、ARM7中的‘状态’、‘模式’分别要说明什么问题?
答:
两种处理器“状态”----分别用于支持两种指令系统。
♦ARM指令系统
♦Thumbe指令系统
7种处理器“模式”----分别应用于7种场合,具有不同的寄存器资源、权限。
7、ARM处理器的工作状态分为哪二种?
ARM处理器又是怎么定义和标志的?
答:
ARM处理器的工作状态分为“ARM状态”和“Thumbe”状态。
在“ARM状态”下,处理器执行32位的指令码,在“Thumbe状态”下,处理器执行16位的指令码。
“ARM状态”和“Thumbe”状态下,处理器都是32位的处理器。
ARM处理器中的CPSR寄存器的T_bit(CPSR[5])为1时,ARM处理器的当前状态为“ARM状态”;ARM处理器中的CPSR寄存器的T_bit(CPSR[5])为0时,ARM处理器的当前状态为“Thumbe状态”。
8、ARM7TDMI支持哪几种指令集,各有什么特点?
答:
ARM7处理器分别在“ARM状态”下执行ARM指令集指令码,在“Thumbe状态”下执行Thumbe指令集指令码。
♦ARM指令集指令丰富、功能强大,Thumbe指令集指令精简、功能紧凑;
♦ARM指令集指令码长都是32位,Thumbe指令集指令码长都是16位;
♦ARM指令集、Thumbe指令集支持的都是32位运算指令。
9、ARM7处理器有哪些工作模式?
不同工作模式下CPSR寄存器的模式位如何设定?
列表说明。
答:
ARM7处理器有用户模式(usr)、系统模式(sys)、管理模式(svc)、终止模式(abt)、未定义指令模式(und)、中断模式(irq)和快速中断模式(fiq)共7种模式。
ARM处理器使用CPSR寄存器的CPSR[5:
0]来标示当前当前所处的工作模式,具体对应如下:
序号
M[4:
0]
处理器工作模式
1
0b10000
(0x10)
用户模式
(usr)
2
0b10001
(0x11)
FIQ模式
(fiq)
3
0b10010
(0x12)
IRQ模式
(irq)
4
0b10011
(0x13)
管理模式
(svc)
5
0b10111
(0x17)
中止模式
(abt)
6
0b11011
(0x1b)
未定义模式
(und)
7
0b11111
(0x1f)
系统模式
(sys)
10、描述ARM7处理器的内部寄存器结构,并分别说明R13、R14、R15寄存器的作用。
答:
ARM7处理器的内部寄存器
寄存器类别
寄存器名
各种模式下可见的寄存器
用户
系统
管理
终止
未定义
irq
fiq
通
用
寄
存
器
R0
R0
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
R8_fiq
R9
R9
R9_fiq
R10
R10
R10_fiq
R11
R11
R11_fiq
R12
R12
R12_fiq
R13(SP)
R13
R13_svc
R13_abt
R13_und
R13_irq
R13_fiq
R14(LR)
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
R15(PC)
R15
状态寄存器
CPSR
CPSR
SPSR
----
----
SPSR_svc
SPSR_abt
SPSR_und
SPSR_irq
SPSR_fiq
其中:
R13被处理器用作处理器堆栈指针SP;ARM处理器中共有6个R13,分别隶属于对应的处理器模式。
如此,处理器可以同时开辟6个处理器堆栈,分别服务于对应的处理器模式。
R14被处理器用作连接寄存器LR;LR寄存器用于备份PC,即用于记录程序的断点或调用点。
ARM处理器中共有6个R14,分别隶属于对应的处理器模式。
R15被处理器用作指令计数器PC。
ARM处理器中只有一个PC,PC指向的是下一条要取指的指令。
11、什么是堆栈?
堆栈有几种类型,简述各类型堆栈的进/出栈过程。
答:
堆栈(Stack)是一种具有“后进先出”(LIFO---LastInFirstOut)特殊访问属性的存储结构。
按照入栈时SP的变化方向和SP指向单元是否含有堆栈数据,堆栈共有满递增、空递增、满递减和空递减四种方式。
♦满递增堆栈入出栈操作:
略!
♦空递增堆栈入出栈操作:
入栈操作过程:
@SP←XX;将入栈数据写入到堆栈指针SP所指单元
SP←SP+1;递增调整堆栈指针SP
出栈操作过程:
SP←SP-1;调整堆栈指针SP
XX←@SP;将堆栈指针SP所指单元中的数据弹出
♦满递减堆栈入出栈操作:
入栈操作过程:
SP←SP-1;调整堆栈指针SP
@SP←XX;将入栈数据写入到堆栈指针SP所指单元
出栈操作过程:
XX←@SP;将堆栈指针SP所指单元中的数据弹出
SP←SP+1;调整堆栈指针SP
♦空递减堆栈入出栈操作:
略!
12、什么是“字对齐”和“半字对齐”数据存储?
答:
“半字”数据必须存放在存储器紧邻的两个字节单元,并且首字节地址必须能被2整除,这样存储的16bit数据称为‘半字对齐’存储数据,16bit数据这样的存储方式称为‘半字对齐’存储。
“字”数据必须存放在存储器紧邻的4个字节单元,并且首字节地址必须能被4整除,这样存储的32bit数据称为‘字对齐’存储数据,32bit数据这样的存储方式称为‘字对齐’存储。
13、简述程序计数器(PC)在处理器工作中的作用。
答:
CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC决定了程序运行流向。
在计算机运行中,处理器依据当前的情况和程序指令自动地修改PC,以实现程序预存储,计算机自动执行。
14、简述ARM处理器中的返回连接寄存器(LR)在处理器工作中的作用。
答:
在ARM处理器中使用R14实现对断点和调用点的记录,即使用R14用作返回链接寄存器(LinkRegister,LR)。
在硬件上CPU自动完成相应返回点的记录。
需要时,可依据LR寄存器中的值追溯返回点。
(LR寄存器的使用时ARM汇编的重点和难点,在启动代码中大量使用,应该重点掌握)
15、分别简述ARM处理器中的CPSR、SPSR在处理器工作中的作用。
答:
ARM处理器中只有一个CPSR寄存器,被各模式共用,它记录了处理器当前的状态、模式、中断屏蔽状态以及处理器的运算状态标志。
ARM处理器中含有5个存储程序状态寄存器SPSR(SavedProgramStatusRegister),他们分别为SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq,分别隶属于ARM处理器的5种异常模式。
当处理器因某种异常发生而进入到对应的异常模式时,相应模式的SPSR将自动地备份CPSR的原值,将来可使用此SPSR中保存的备份值恢复CPSR。
16、结合CPSR的结构,说明其中的M[4:
0]的作用和T位的作用。
答:
M[4:
0]位用于标志处理器的当前模式;T位用于标志处理器的当前状态。
17、结合CPSR的结构,说明其中的I位和F位的作用。
答:
I位用于标志处理器对于IRQ异常的屏蔽状态;I=1时,表示处理器屏蔽了IRQ异常,I=0时,表示处理器可以响应IRQ异常。
F位用于标志处理器对于FIQ异常的屏蔽状态;F=1时,表示处理器屏蔽了FIQ异常,F=0时,表示处理器可以响应FIQ异常。
18、简述ARM7TDMI内部有哪些寄存器及特点。
答:
ARM微处理器内共有37个32位的程序可访问寄存器物理资源,其中31个通用寄存器,6个状态寄存器。
寄存器类别
寄存器名
各种模式下可见的寄存器
用户
系统
管理
终止
未定义
irq
fiq
通
用
寄
存
器
R0
R0
R1
R1
R2
R2
R3
R3
R4
R4
R5
R5
R6
R6
R7
R7
R8
R8
R8_fiq
R9
R9
R9_fiq
R10
R10
R10_fiq
R11
R11
R11_fiq
R12
R12
R12_fiq
R13(SP)
R13
R13_svc
R13_abt
R13_und
R13_irq
R13_fiq
R14(LR)
R14
R14_svc
R14_abt
R14_und
R14_irq
R14_fiq
R15(PC)
R15
状态寄存器
CPSR
CPSR
SPSR
----
----
SPSR_svc
SPSR_abt
SPSR_und
SPSR_irq
SPSR_fiq
R0~R7:
是7个模式共用的数据寄存器;
R8~R12:
FIQ模式具有私有的R8~R12,其他6种模式共用一套R8~R12;
R13、R14:
用户模式和系统模式公用一套R13、R14,其他5种模式各自具有私有的R13、R14。
R15:
7个模式共用R15,用作为程序计数器寄存器PC;
CPSR:
7个模式共用CPSR,用作为当前程序状态寄存器;
SPSR:
5种异常模式各自具有私有的SPSR。
19、什么是ARM处理器的异常?
ARM处理器中有哪几种异常?
答:
在ARM中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停止,而进入到该事件对应的处理器异常模式并对该事件进行处理,这个过程称作异常响应。
ARM中定义了复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、irq以及fiq等7种异常。
20、分别简述ARM7的IRQ、FIQ异常处理过程,说明其异常向量地址。
答:
发生FIQ异常时,CPU自动转移到0x0000001C地址单元取指执行,同时处理器会自动转换到快中断模式。
发生IRQ异常时,CPU自动转移到0x00000018地址单元取指执行,同时处理器会自动转换到IRQ中断模式。
IRQ、FIQ异常向量地址分别是:
0x00000018、0x0000001C
IRQ异常处理过程:
♦备份PC、CPSR的值到LR_irq、SPSR_irq;
♦CPSR的I位置‘1’,F位无影响,禁止IRQ异常;
♦CPSR的M[4:
0]赋值‘0b10010’,处理器转入到ARM状态的irq模式;
♦PC(R15)←0x00000018;
FIQ异常处理过程:
♦备份PC、CPSR的值到LR_fiq、SPSR_fiq;
♦CPSR的I位和F位置‘1’,禁止IRQ、FIQ异常;
♦CPSR的M[4:
0]赋值‘0b10001’,处理器转入到ARM状态的fiq模式;
♦PC(R15)←0x0000001C;
21、ARM7处理器对哪些异常可以屏蔽控制?
如何屏蔽或允许控制?
答:
ARM7处理器对IRQ、FIQ异常可以屏蔽控制;对CPSR寄存器的I_bit和F_bit置‘1’或清‘0’可以分别屏蔽或允许响应IRQ、FIQ异常。
序号
CPSRbit值
说明
1
CPSR[I]
=1,屏蔽IRQ异常响应;
=0,允许IRQ异常响应;
2
CPSR[F]
=1,屏蔽FIQ异常响应;
=0,允许FIQ异常响应;
22、说明CPSR中T位的作用,ARM7处理器如何切换状态?
答:
T----处理器状态控制位;‘1’---Thumb状态,‘0’---ARM状态。
ARM7处理器必须通过BX指令进行状态切换。
23、存储器和IO端口统一编址和独立编址各有什么特点?
ARM7处理器采用哪种编址方式?
答:
统一编址方式---存储器单元资源和IO端口资源统一编址在一个地址空间。
特点:
按地址空间位置约定各分类资源,访问IO端口如同访问存储器单元,无需专用的IO访问指令。
芯片上没有专用于IO访问的引脚。
独立编址方式---存储器资源和IO端口资源分别编址在两个地址空间,存储器地址空间和IO地址空间。
特点:
按资源分类的地址空间清晰,使用不同的指令访问存储器和IO端口,处理器指令系统中既有存储器访问指令,又有专用的IO访问指令。
芯片上有专用于IO访问的引脚。
ARM7处理器的存储结构采用冯·诺依曼存储体系结构,程序存储器、数据存储器和I/O统一编址(即使用同一个地址空间),指令和数据共用一条32位的