嵌入式系统原理第三章习题(1)_第1页
嵌入式系统原理第三章习题(1)_第2页
嵌入式系统原理第三章习题(1)_第3页
嵌入式系统原理第三章习题(1)_第4页
嵌入式系统原理第三章习题(1)_第5页
全文预览已结束

下载本文档

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

文档简介

1、第三章第一次作业1. ARM寻址方式有几种?举例说明ARM如何进行不同方式的寻址。1).寄存器寻址;如MOV R1, R2 2).立即寻址;如MOV R0, #0xFF003).寄存器移位寻址;如MOV R0, R2, LSL #34).寄存器间接寻址;如LDR R1, R25).基址加偏址寻址;如LDR R2, R3,#0x0C6).多寄存器寻址;如LDMIA R1!, R2-R4,R67).堆栈寻址;如STMFD SP!, R1-R7,LR8).相对寻址。如BL SUBR12. 简述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。连续执行下述两条指令后,存储器及寄存器的内容如何变化? STMIB R0!, R1, R2 LDMIA R0!,

3、R1, R2存储器里内容为: 0xFF0x01 0x10 0xFF 0xFF 0xFF R0 0x8000 0x8004 0x8008 R1 0x800C R2R0 0x8010 0x8014 寄存器里内容为:R0 0x8010 R1 0x10 R2 0xFF4. ARM处理器如何进入和退出Thumb指令模式?用汇编语言实现ARM状态和Thumb状态互相的切换。进入Thumb模式:有2种方法。一种是执行一条交换转移指令BX,将指令中的目标地址寄存器的最低位置1,并将其他位的值放入程序计数器PC,则可以进入Thumb指令。另一种方法是利用异常返回,也可把微处理器从ARM模式转换为Thumb模式。

4、退出Thumb模式:也有2种方法。一种是执行Thumb指令中的交换转移BX指令可以显式地返回到ARM指令流。另一种是利用异常进入ARM指令流。ARM状态切换到Thumb状态:CODE32LDR R0, =Lable+1BX R0CODE16Lable MOV R1, #12Thumb状态切换到ARM状态: CODE16 LDR R0, =Lable BX R0 CODE32Lable MOV R1, #105. 请将下面C语言代码转换成汇编语言。 (1) If(a=0|b=1) c=d+e CMP R0, #0CMPNE R1, #1ADDEQ R2, R3, R4 (2) if (a= =

5、b)&&(c= = d)&&(e= =f) g+;CMP R0, R1CMPEQ R2, R3CMPEQ R4, R5ADDEQ R6, R6, #16. 编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。LOOPLDRB R0, R1, #1STRB R0, R3, #1SUBS R2, R2, #1BNE LOOPMOV PC, LR7. 读懂下面一段程序,程序执行过程中寄存器R0、R1、R2中的内容如何变化?试分析并给出程序每一步所得的结果。 从执行完l

6、oop循环开始,循环结束时R0 0MOV R1, #y ;R1 76ADD R2, R0, R1, LSL #1 ;R2 152MOV SP, #0x1000 ;SP 0x1000STR R2, SP ;mem320x1000 152MOV R0, #Z ;R0 96AND R0, R0, #0XFF ;R0 96MOV R1, #y ;R1 76ADD R2, R0, R1, LSR #1 ;R2 134LDR R0, SP ;R0 152MOV R1, #0x01 ;R1 1ORR R0, R0, R1 ;R0 153 (0x99) (0b10011001)MOV R1, R2 ;R1 1

7、34 (0x86) (0b10000110)ADD R2, R0, R1, LSR #1 ;R2 220 (0xDC) (0b11011100)8. 请标出在块拷贝后,寄存器中的值在存储器中对应的位置以及基址寄存器R1的变化情况。(R3中的值为3,R4中的值为4,R5中的值为5)345R1àR1àSTMIA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1ààR1àSTMDA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1àR1àSTMIB R

8、1!,R3-R54008H4004H4000H4014H4010H400CH345R1àR1ààSTMDB R1!,R3-R54008H4004H4000H4014H4010H400CH9. 请使用MRS和MSR指令,通过修改CPSR寄存器,写出将处理器工作模式变为管理模式的子程序。(注意不能影响其它位,管理模式的二进制编码为10011)MRS R0, CPSRAND R0, R0, #0b11100000ORR R0, R0, #0b00010011MSR CPSR_c, R0MOV PC, LR10. 用汇编语言的移位指令实现 (变量A、B、C分别存放在寄存器R1、R2、R3中)ADD R1, R1, R1, LSL #3SUB R1, R1, R2, LSR R311. 用汇编语言

温馨提示

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

评论

0/150

提交评论