《微机原理与嵌入式系统基础--练习_答案》1(2)

2019-06-05 00:23

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---Last In First Out)特殊访问属性的存储结构。按照入栈时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用作返回链接寄存器(Link Register,LR)。在硬件上CPU自动完成相应返回点的记录。需要时,可依据LR寄存器中的值追溯返回点。

(LR寄存器的使用时ARM汇编的重点和难点,在启动代码中大量使用,应该重点掌握) 15、 分别简述ARM处理器中的CPSR、SPSR在处理器工作中的作用。

答:ARM处理器中只有一个CPSR寄存器,被各模式共用,它记录了处理器当前的状态、模式、中断屏蔽状态以及处理器的运算状态标志。ARM处理器中含有5个存储程序状态寄存器SPSR(Saved Program Status Register),他们分别为SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq,分别隶属于ARM处理器的5种异常模式。当处理器因某种异常发生而进入到对应的异常模式时,相应模式的SPSR将自动地备份CPSR的原值,将来可使用此SPSR中保存的备份值恢复CPSR。

16、 结合CPSR的结构,说明其中的M[4:0]的作用和T位的作用。

31N30Z29C28V2787I6F5T4M43M32M21M10M0

答:M[4:0]位用于标志处理器的当前模式;T位用于标志处理器的当前状态。

17、 结合CPSR的结构,说明其中的I位和F位的作用。

31N30Z29C28V2787I6F5T4M43M32M21M10M0

答: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自动转移到0x0000 001C地址单元取指执行,同时处理器会自动转换到快中断模式。发生IRQ异常时,CPU自动转移到0x0000 0018地址单元取指执行,同时处理器会自动转换到IRQ中断模式。IRQ、FIQ异常向量地址分别是:0x0000 0018、0x0000 001C

IRQ异常处理过程:

? 备份PC、CPSR的值到LR_irq、SPSR_irq; ? CPSR的I位置‘1’, F位无影响,禁止IRQ异常;

? CPSR的M[4:0]赋值‘0b10010’,处理器转入到ARM状态的irq模式; ? PC(R15)← 0x0000 0018;

FIQ异常处理过程:

? 备份PC、CPSR的值到LR_fiq、SPSR_fiq; ? CPSR的I位和F位置‘1’,禁止IRQ、FIQ异常;

? CPSR的M[4:0]赋值‘0b10001’,处理器转入到ARM状态的fiq模式; ? PC(R15)← 0x0000 001C;

21、 ARM7处理器对哪些异常可以屏蔽控制?如何屏蔽或允许控制? 答:ARM7处理器对IRQ、FIQ异常可以屏蔽控制;对CPSR寄存器的I_bit和F_bit置‘1’或清‘0’ 可以分别屏蔽或允许响应IRQ、FIQ异常。

序号 1 2 CPSR bit值 CPSR[I] CPSR[F] 说明 =1,屏蔽IRQ异常响应; =0,允许IRQ异常响应; =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单元的具体存储格式:

字节地址单元 0x4003 0x4002 0x4001 0x4000 单元数据 0x87 0x65 0x43 0x21

数据0x87654321以大端存储模式存储在0x4000单元的具体存储格式:

字节地址单元 0x4003 0x4002 0x4001 0x4000

单元数据 0x21 0x43 0x65 0x87 练习题

1、 ARM7TDMI支持哪几种指令集,各有什么特点?

答:ARM7TDMI支持32位的ARM指令集和16位的Thumb指令集。

ARM指令集效率高、功能全,但是代码密度低,所有ARM指令都是可以有条件执行的;

Thumb指令集,功能上是ARM指令集的子集,Thumb状态下的ARM7TDMI(-S)仍然是32位的处理器,因此具有更高的代码密度;Thumb指令中仅有B指令具备条件执行功能。

2、 ARM指令的寻址方式有几种?并指出下列指令中源操作数的寻址方式。 ⑴ ADD R0, R1, R2 ⑵ LDR R0, [R2] ⑶ MVN R0, #0x0F2 ⑷ LDMIA R0, {R1-R5} ⑸ STR R2, [R4, #0x02] ⑹ LDR R1, [R2, R3] ⑺ MOV R1, R1, ROR #2 ⑻ LDR R1, [R3], #0x04

答:ARM处理器寻址方式可以分为两大类:数据处理指令操作数寻址方式和存储器访问指令操作数寻址方式,其中数据处理指令操作数寻址方式又可分为立即数寻址方式、寄存器寻址方式和寄存器移位寻址方式3种类型;存储器访问指令操作数寻址方式又可以分为寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址(块拷贝寻址)和堆栈寻址5种类型。

⑴ ADD R0, R1, R2 寄存器寻址方式 ⑵ LDR R0, [R2] 寄存器间接寻址 ⑶ MVN R0, #0x0F2 立即数寻址方式 ⑷ LDMIA R0, {R1-R5} 多寄存器寻址(块拷贝寻址) ⑸ STR R2, [R4, #0x02] 基址变址寻址 ⑹ LDR R1, [R2, R3] 基址变址寻址 ⑺ MOV R1, R1, ROR #2 寄存器移位寻址方式 ⑻ LDR R1, [R3], #0x04 基址变址寻址

(大多数人对于基址变址的寻址方式和相对寻址方式混淆:相对寻址只存在于跳转指令的寻址,表示现对于当前的PC值得变化大小,其他的寻址方式特征比较明显,掌握比较清晰)

3、 ARM指令的基本格式?

答:ARM指令的基本格式如下:

<指令助记符>{<执行条件>}{S} <目标寄存器>, <第1操作数的寄存器> {,<第2操作数>}

{} {S} , {,}

其中,< >号内的项是必需的,{}号内的项是可选的。如是指令助记符,是必须含有的,而{}为指令执行条件,是依据实际需要可选项。若不书写,则使用默认条件AL(无条件执行)。


《微机原理与嵌入式系统基础--练习_答案》1(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:青岛市2015年中考模拟试卷 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: