微原课后题.docx
- 文档编号:17196780
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:25
- 大小:28.40KB
微原课后题.docx
《微原课后题.docx》由会员分享,可在线阅读,更多相关《微原课后题.docx(25页珍藏版)》请在冰点文库上搜索。
微原课后题
第1章练习题
1、简述冯诺依曼体系结构计算机的要点和工作过程。
答:
冯诺依曼体系结构计算机的要点:
计算机中的信息(程序和数据)以二进制方式表示。
程序预存储,机器自动执行。
计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
计算机通过执行预存储在存储器中的程序来完成预定的运算。
程序由计算机的指令序列构成
计算机在处理器的控制下,首先从存储器读取一条待执行的指令到处理器中,接下来分析这条指令,而后发出该指令对应的电平脉码序列,即执行该指令。
并以此递归运行程序。
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到其它部件,或反之),但作为总线来说,它是双向信号线。
5、什么是处理器的主频?
什么是处理器的字长?
答:
CPU主频也叫时钟频率,单位是MHz(或GHz),用来表示处理器的工作频率。
CPU字长是指运算器的位宽,单位是比特(bit),用于表示CPU一次运算可处理的二进制数据的位度。
6、简述计算机接口在计算机系统中的作用。
答:
“输入/输出接口”是用于外设与计算机之间桥接和匹配的专用部件,通常以集成电路或板卡的形式存在。
应用于计算机主机与外界的信息交互。
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)
15600111000(0x38)0000000000111000(0x0038)
211501110011(0x73)0000000001110011(0x0073)
3-5611001000(0xC8)1111111111001000(0xFFC8)
4-11510001101(0x8D)1111111110001101(0xFFC8)
13、假设运算器的长度n=16,完成下列补码运算,观察运算器内的结果值,观察CF、DF和OF位的情况;再分别用真值运算验证,说明补码结果原因,总结OF位于与补码运算溢出的关系。
答:
补码运算结果码真值比对CFDFOF说明
0000010000101001
+
1000010000101001
1000100001010010
(0x8852)
1065+(-31703)
=-30638
[-30638]补=0x8852
000运算无溢出
1000010000101001
+
1111111111111111
1000010000101000
(0x8428)
(-31703)+(-1)
=-31704
[-31704]补=0x8428
110运算无溢出
1111111111111111
+
0111111111111111
0111111111111110
(0x7FFE)
(-1)+32767
=32766
[32766]补=0x7FFE
110运算无溢出
0111111111111111
+
0000000000000001
1000000000000000
(0x8000)
32767+1
=32768(超出值域)
[-32768]补=0x8000
011运算有溢出
5、什么是嵌入式系统?
有何特点?
答:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
其特点是:
它是嵌入到目标对象中的、软硬件定制的专用计算机系统。
17、简述嵌入式操作系统的特点。
答:
微内核、高可靠性、可裁减定制、满足实时性。
第2章练习题
2、什么是处理器的指令?
什么是处理器的指令系统?
答:
计算机中的“指令”就是CPU执行某种操作的命令,它也是以二进制编码方式存在,每一条指令都对应着CPU要完成的特定操作。
一台计算机中所有机器指令的集合称为该CPU的“指令系统”。
4、什么是RISC?
什么是CISC?
简述他们的特点与差别。
答:
RISC是ReducedInstructionSetComputer,精简指令集计算机的缩写。
它的特点是指令系统精炼,处理器电路逻辑相对简单,且能够以更快的速度执行操作。
对于负载的功能需要编程实现。
CISC是ComplexInstructionSetComputer,复杂指令集计算机的缩写。
它的特点是指令系统中含有大量的类似于高级程序设计语言结构的复合功能指令。
指令系统庞大,处理器硬件电路的复杂度。
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寄存器的作用。
答:
R13被处理器用作处理器堆栈指针SP;ARM处理器中共有6个R13,分别隶属于对应的处理器模式。
如此,处理器可以同时开辟6个处理器堆栈,分别服务于对应的处理器模式。
R14被处理器用作连接寄存器LR;LR寄存器用于备份PC,即用于记录程序的断点或调用点。
ARM处理器中共有6个R14,分别隶属于对应的处理器模式。
R15被处理器用作指令计数器PC。
ARM处理器中只有一个PC,PC指向的是下一条要取指的指令。
11、什么是堆栈?
堆栈有几种类型,简述各类型堆栈的进/出栈过程。
答:
堆栈(Stack)是一种具有“后进先出”(LIFO---LastInFirstOut)特殊访问属性的存储结构。
按照入栈时SP的变化方向和SP指向单元是否含有堆栈数据,堆栈共有满递增、空递增、满递减和空递减四种方式。
12、什么是“字对齐”和“半字对齐”数据存储?
答:
“半字”数据必须存放在存储器紧邻的两个字节单元,并且首字节地址必须能被2整除,这样存储的16bit数据称为‘半字对齐’存储数据,16bit数据这样的存储方式称为‘半字对齐’存储。
“字”数据必须存放在存储器紧邻的4个字节单元,并且首字节地址必须能被4整除,这样存储的32bit数据称为‘字对齐’存储数据,32bit数据这样的存储方式称为‘字对齐’存储。
13、简述程序计数器(PC)在处理器工作中的作用。
答:
CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC决定了程序运行流向。
在计算机运行中,处理器依据当前的情况和程序指令自动地修改PC,以实现程序预存储,计算机自动执行。
14、简述ARM处理器中的返回连接寄存器(LR)在处理器工作中的作用。
答:
在ARM处理器中使用R14实现对断点和调用点的记录,即使用R14用作返回链接寄存器(Link
Register,LR)。
在硬件上CPU自动完成相应返回点的记录。
需要时,可依据LR寄存器中的值追溯返回
点。
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个状态寄存器。
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位的数据总线。
24、大端存储模式和小端存储模式的含义是什么?
画出数据0x87654321分别以大端存储模式和小端存储模式存储在0x4000单元的具体存储格式。
答:
高位数据存储在高地址字节,这种组织数据的存储方式称为‘小端模式’;另一种则反之,高位数据存储在低地址字节,这种组织数据的存储方式称为‘大端模式’;
数据0x87654321以小端存储模式存储在0x4000单元的具体存储格式:
字节地址单元单元数据
0x40030x87
0x40020x65
0x40010x43
0x40000x21
数据0x87654321以大端存储模式存储在0x4000单元的具体存储格式:
字节地址单元单元数据
0x40030x21
0x40020x43
0x40010x65
0x40000x87
第3章练习题
1、ARM7TDMI支持哪几种指令集,各有什么特点?
答:
ARM7TDMI支持32位的ARM指令集和16位的Thumb指令集。
ARM指令集效率高、功能全,但是代码密度低,所有ARM指令都是可以有条件执行的;
Thumb指令集,功能上是ARM指令集的子集,Thumb状态下的ARM7TDMI(-S)仍然是32位的处理器,因此具有更高的代码密度;Thumb指令中仅有B指令具备条件执行功能。
2、ARM指令的寻址方式有几种?
并指出下列指令中源操作数的寻址方式。
⑴ADDR0,R1,R2⑵LDRR0,[R2]
⑶MVNR0,#0x0F2⑷LDMIAR0,{R1-R5}
⑸STRR2,[R4,#0x02]⑹LDRR1,[R2,R3]
⑺MOVR1,R1,ROR#2⑻LDRR1,[R3],#0x04
答:
ARM处理器寻址方式可以分为两大类:
数据处理指令操作数寻址方式和存储器访问指令操作数寻址方式,其中数据处理指令操作数寻址方式又可分为立即数寻址方式、寄存器寻址方式和寄存器移位寻址方式3种类型;存储器访问指令操作数寻址方式又可以分为寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址(块拷贝寻址)和堆栈寻址5种类型。
⑴ADDR0,R1,R2寄存器寻址方式
⑵LDRR0,[R2]寄存器间接寻址
⑶MVNR0,#0x0F2立即数寻址方式
⑷LDMIAR0,{R1-R5}多寄存器寻址(块拷贝寻址)
⑸STRR2,[R4,#0x02]相对寻址
⑹LDRR1,[R2,R3]基址变址寻址
⑺MOVR1,R1,ROR#2寄存器移位寻址方式
⑻LDRR1,[R3],#0x04相对寻址
3、ARM指令的基本格式?
答:
ARM指令的基本格式如下:
<指令助记符>{<执行条件>}{S}<目标寄存器>,<第1操作数的寄存器>{,<第2操作数>}
其中,<>号内的项是必需的,{}号内的项是可选的。
如
若不书写,则使用默认条件AL(无条件执行)。
opcode指令助记符,用于指定指令的操作功能。
cond执行条件,用于指定指令的执行条件。
S用于指定指令的执行是否影响CPSR寄存器的值,书写时影响CPSR。
Rd目标寄存器,用于存放运算的结果。
Rn第1个操作数的寄存器。
用于存放参与运算的操作数1。
operand2第2个操作数。
用于指定参与运算的操作数2。
4、指出下列指令是否正确,若不正确请说明原因。
MOVR1,#101⑴⑵MVNR1,#0x10F
⑶LDMIAR11,{R2-R8}⑷ADDR0,R2,#4!
⑸LDRR4,[R5]!
⑹MRSPC,CPSR
⑺LDMFDR0!
{R2,R5-R8}⑻ADDR3,[R3],R7
答:
(1)对
(2)错,MVN指令中的源操作数不是8bit位图数据
(3)对
(4)错,立即数后不能附加!
操作符
(5)对
(6)对
(7)对
(8)错,ADD指令中的操作数不能用存储器访问寻址方式
5、何谓ARM指令的条件码?
默认的条件码是什么?
举例说明ARM指令的条件码对指令执行的影响。
答:
所谓的ARM指令条件码分别对应了CPSR寄存器标志位(N、Z、C、V)的16个值组合状态,处理器根据CPSR中标志位N、Z、C和V的值来确定该指令是否执行,当CPSR中的条件码标志满足时,处理器执行本条指令,否则本条指令等价于空操作。
其中条件(AL)是缺省条件,可以省略。
如果指令不含有条件码时,就默认是该条件。
6、解释“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”?
ARM指令系统中是如何支持的?
答:
满堆栈就是堆栈指针总是指向最后压入堆栈的数据的存储单元;
空堆栈就是堆栈指针总是指向下一个将要放入数据的存储单元;
递增堆栈就是堆栈底部位于低地址处,堆栈向高地址方向增长;
递减堆栈就是堆栈底部位于高地址处,堆栈向低地址方向递减;
ARM指令系统支持的是满递减堆栈,即堆栈底部位于高地址处,堆栈向低地址方向递减,且堆栈指针总是指向最后压入堆栈的数据的存储单元;
7、请说明MOV指令与LDR加载指令的区别和用途。
答:
MOV指令用于将8位位图立即数或寄存器数据传送到目标寄存器(Rd),也可用于移位运算等操作。
LDR指令用于从存储器中加载一个数据到寄存器中。
用于访问存储器操作。
8、什么是‘文字池’?
它在ARM汇编程序中用和用途?
答:
文字池是镶嵌在代码中的一段存储空间,可用来存放常量数据;这些常量可以是程序中的立即数,也可以是存储单元地址。
ARM汇编语言中使用LDR加载指令附加文字池的方法,以实现对任意32bit立即数的访问。
9、解释B指令、BL指令与BX指令的功能差别?
简述它们的应用场合。
答:
B指令跳转到标号指定的地址执行程序。
BL指令先将下一条指令的地址拷贝到R14中,然后跳转到标号指定地址运行程序。
BX指令跳转到Rm指定的地址处执行程序,若Rm[0]为1,则跳转时自动将CPSR中的标志T置位,即把目标地址的代码解释为Thumb代码;若Rm[0]为0,则跳转时自动将CPSR中的标志T清零,即把目标地址的代码解释为ARM代码。
该指令用于处理器状态切换。
10、ARM汇编指令条件码如下表,分析下两段程序片断的功能,写出其等价的类C语言功能描述:
条件助记符标志含义
EQZ=1相等
NEZ=0不相等
CS/HSC=1无符号数大于或等于
CC/LOC=0无符号数小于
MIN=1负数
PLN=0正数或零
VSV=1溢出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课后