嵌入式系统原理第三章习题(1)_第1页
嵌入式系统原理第三章习题(1)_第2页
嵌入式系统原理第三章习题(1)_第3页
嵌入式系统原理第三章习题(1)_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章第一次作业1. ARM 寻址方式有几种?举例说明ARM 如何进行不同方式的寻址。1).寄存器寻址;如MOVR1, R22).立即寻址;如 MOVR0, #0xFF003).寄存器移位寻址;如MOVR0, R2, LSL #34).寄存器间接寻址;如LDRR1,R25).基址加偏址寻址;如LDRR2,R3,#0x0C6).多寄存器寻址;如LDMIAR1!, R2-R4,R67).堆栈寻址;如STMFDSP!, R1-R7,LR8).相对寻址。如BLSUBR12. 简述 ARM 指令分类及指令格式形式。ARM 指令集可以分为 6 大类:数据处理指令、 Load/Store 指令、跳转指令、程

2、序状态寄存器处理指令、协处理器指令和异常产生指令。ARM 指令的基本格式为:<opcode> <cond> S<Rd> ,<Rn>,<operand2>其中, opcode 为操作码; cond 为可选的条件码; S 为可选后缀; Rd 为目标寄存器; Rn 为存放第 1 个操作数的寄存器; operand2 为第 2 个操作数。3. 假设 R0 的内容为 0x8000, 寄存器 R1 、 R2 的内容分别为 0x01 与 0x10, 存储器中所有存储单元的内容均为 0xFF 。连续执行下述两条指令后 ,存储器及寄存器的内容如何变化?

3、STMIBR0!,R1, R2LDMIAR0!,R1, R2存储器里内容为:R00xFF0x80000x010x80040x100x8008 R10xFF0x800C R2R00xFF0x80100xFF0x8014精选文库寄存器里内容为:R0 0x8010R1 0x10R2 0xFF4. ARM 处理器如何进入和退出 Thumb 指令模式?用汇编语言实现 ARM 状态和 Thumb 状态互相的切换。进入 Thumb 模式:有 2 种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb 指令。另一种方法是利用异常返回

4、,也可把微处理器从ARM 模式转换为Thumb 模式。退出 Thumb 模式:也有2 种方法。一种是执行Thumb 指令中的交换转移BX 指令可以显式地返回到ARM 指令流。另一种是利用异常进入ARM 指令流。ARM 状态切换到Thumb 状态:CODE32LDRR0,=Lable+1BXR0CODE16LableMOVR1,#12Thumb 状态切换到ARM 状态:CODE16LDRR0,=LableBXR0CODE32LableMOVR1,#105. 请将下面 C 语言代码转换成汇编语言。(1) If(a=0|b=1)c=d+eCMPR0,#0CMPNER1,#1ADDEQR2,R3,R4

5、(2) if (a= = b)&&(c= = d)&&(e= =f) g+ ;2精选文库CMPR0, R1CMPEQR2, R3CMPEQR4, R5ADDEQR6, R6, #16. 编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入 R1,长度(以字节为单位)放入 R2,目的字符串的起始地址放入 R3。LOOPLDRBR0,R1,#1STRB R0,R3,#1SUBS R2,R2,#1BNELOOPMOVPC,LR7. 读懂下面一段程序,程序执行过程中寄存器 R0、R1、R2 中的内容如何变化?试分析并给出程序每一步所得

6、的结果。从执行完loop 循环开始,循环结束时 R0 0MOVR1,#y;R1 76ADDR2, R0, R1, LSL #1;R2 152MOVSP,#0x1000;SP 0x1000STRR2,SP;mem 0x1000 15232MOVR0,#Z;R0 96ANDR0,R0, #0XFF;R0 96MOVR1,#y;R1 76ADDR2, R0, R1, LSR #1;R2 134LDRR0,SP;R0 152MOVR1,#0x01;R11ORRR0,R0, R1;R0 153 (0x99) (0b10011001)MOVR1,R2;R1 134 (0x86) (0b10000110)A

7、DDR2, R0, R1, LSR #1;R2 220 (0xDC) (0b11011100)8. 请标出在块拷贝后,寄存器中的值在存储器中对应的位置以及基址寄存器R1 的变化情况。( R3 中的值为 3,R4 中的值为 4, R5 中的值为5)3精选文库R14014H54010H4400CHR134008H4004H4000HSTMIAR1!,R3-R54014HR154010H4400CH34008HR14004H4000HSTMDAR1!,R3-R54014HR154010H4400CH34008HR14004H4000HSTMIBR1!,R3-R5R14014H54010H4400CH

8、R134008H4004H4000HSTMDBR1!,R3-R59. 请使用 MRS 和 MSR 指令,通过修改 CPSR寄存器,写出将处理器工作模式变为管理模式的子程序。(注意不能影响其它位,管理模式的二进制编码为10011)MRSR0, CPSRANDR0, R0, #0b11100000ORRR0, R0, #0b00010011MSRCPSR_c, R0MOVPC, LR10. 用汇编语言的移位指令实现A 9 AB(变量 A、 B、 C 分别存放在寄存器R1 、R22C、R3中 )ADDR1, R1, R1, LSL#3SUBR1, R1, R2, LSRR34精选文库11. 用汇编语言实现96 位整数加法 (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论