嵌入式系统原理第三章习题(1).doc

上传人:苏美尔 文档编号:5655522 上传时间:2020-07-20 格式:DOC 页数:5 大小:54.50KB
返回 下载 相关 举报
嵌入式系统原理第三章习题(1).doc_第1页
第1页 / 共5页
嵌入式系统原理第三章习题(1).doc_第2页
第2页 / 共5页
嵌入式系统原理第三章习题(1).doc_第3页
第3页 / 共5页
嵌入式系统原理第三章习题(1).doc_第4页
第4页 / 共5页
嵌入式系统原理第三章习题(1).doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《嵌入式系统原理第三章习题(1).doc》由会员分享,可在线阅读,更多相关《嵌入式系统原理第三章习题(1).doc(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指令的基本格式为: S ,其中,opcode为操作码;cond为可选的条件码;S为可选后缀;Rd为目标寄存器;Rn为存放第1个操作数的寄存器;operand2为第2个操作数。3. 假设R0的内容为0x8000,寄存器R1、R2的内容分别为0x01与0x10,存储器中所有存储单元的内容均为0xFF。连续执行下述两条指令后,存储器及寄存器的内容如何变化? STMIB R0!, R1, R2 LDMIA R0!, R1, R2存储器里内容为: 0xFF0x01 0x10 0xFF 0xFF 0xFF R0 0x8000 0x8004 0x80

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

4、RM指令流。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= = b)&(c= = d)&(e= =f) g+;CMP R0, R1CMPEQ R2, R3CMPEQ R4, R5ADDEQ R6

5、, R6, #16. 编写以字节为单位的字符串拷贝子程序,要求从存储器某处拷贝到另一处。源字符串的起始地址放入R1,长度(以字节为单位)放入R2,目的字符串的起始地址放入R3。LOOPLDRB R0, R1, #1STRB R0, R3, #1SUBS R2, R2, #1BNE LOOPMOV PC, LR7. 读懂下面一段程序,程序执行过程中寄存器R0、R1、R2中的内容如何变化?试分析并给出程序每一步所得的结果。 从执行完loop循环开始,循环结束时R0 0MOV R1, #y ;R1 76ADD R2, R0, R1, LSL #1 ;R2 152MOV SP, #0x1000 ;SP

6、 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 134 (0x86) (0b10000110)ADD R2, R0, R1, LSR #1 ;R2 220 (0xDC) (0b11011100)8. 请标出在块拷贝后

7、,寄存器中的值在存储器中对应的位置以及基址寄存器R1的变化情况。(R3中的值为3,R4中的值为4,R5中的值为5)345R1R1STMIA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1R1STMDA R1!,R3-R54008H4004H4000H4014H4010H400CH345R1R1STMIB R1!,R3-R54008H4004H4000H4014H4010H400CH345R1R1STMDB R1!,R3-R54008H4004H4000H4014H4010H400CH9. 请使用MRS和MSR指令,通过修改CPSR寄存器,写出将处理器工

8、作模式变为管理模式的子程序。(注意不能影响其它位,管理模式的二进制编码为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. 用汇编语言实现96位整数加法(加数从高到低位存放在寄存器R8、R7、R6中,被加数从高到低位存放在寄存器R11、R10、R9中,结果从高到低位存放在寄存器R5、R4、R3中)。ADDS R3, R9, R6ADCS R4, R10, R7ADC R5, R11, R8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1