嵌入式系统原理与应用题目要求+程序代码.doc

嵌入式系统原理与应用题目要求+程序代码.doc

ID:48202542

大小:98.00 KB

页数:18页

时间:2020-01-22

嵌入式系统原理与应用题目要求+程序代码.doc_第1页
嵌入式系统原理与应用题目要求+程序代码.doc_第2页
嵌入式系统原理与应用题目要求+程序代码.doc_第3页
嵌入式系统原理与应用题目要求+程序代码.doc_第4页
嵌入式系统原理与应用题目要求+程序代码.doc_第5页
资源描述:

《嵌入式系统原理与应用题目要求+程序代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、word格式《嵌入式系统原理及应用》作业题目作业1一、调试下面的程序,并回答问题。.global_start.text_start:LDRSP,=srcLDMFDSP!,{R0-R6}STMFDSP!,{R0-R6}LDMFDSP!,{R3}LDMFDSP!,{R4}LDMFDSP!,{R5}LDMFDSP!,{R6}LDMFDSP!,{R0}LDMFDSP!,{R1}LDMFDSP!,{R2}stop:bstop.ltorgsrc:.long1,2,3,4,5,6,7.end问:该程序完成了什么功能?答:该程序完成的功能:先把数据区堆栈中的1~7这七个数据送给R0~R0寄存器,然后又把寄存

2、器列表中的R0~R7存入堆栈,然后又依次把堆栈中的1~7这七个数送给R3~R6,R0~R2,然后程序就结束了,在取数和存数的过程中。堆栈指针sp由0x0000变到0x8030再到0x804c,然后到0x8030,然后依次加4,最后到0x804c;程序计数器R15(PC)由0x8000地址依次加4。二、LDMFD,STMFD伪代码实现的原理。答:指令STMFD和LDMFD分析:根据ATPCS规则,我们一般使用FD(FullDescending)类型的数据栈!所以经常使用的指令就有STMFD和LDMFD,通过ARM对于栈操作和批量Load/Store指令寻址方式,可以知道指令STMFD和LDMF

3、D的地址计算方法:STMFD指令的寻址方式为事后递减方式(DB)....word格式 而DB寻址方式实际内存地址为: start_address=Rn-(Number_Of_Set_Bits_In(register_list)*4) end_address=Rn-4 STM指令操作的伪代码: ifConditionPassed(cond)then    address=start_address    fori=0to15        ifregister_list[i]==1             Memory[address]=Ri             address=addre

4、ss+4有上面两个伪代码可以得出STMFDSP!,{R0-R7,LR}的伪代码如下:  SP=SP-9×4; address= SP;  fori=0to7   Memory[address]=Ri;   address =address+4;Memory[address]=LR; LDMFD指令的寻址方式为事后递增方式(IA)IA内存的实际地址的伪代码 start_address=Rn end_address=Rn+(Number_of_set_bits_in(register_list)*4)-4LDM指令操作的伪代码(未考虑PC寄存器): ifConditionPassed(cond)

5、then    address=start_address    fori=0to15        ifregister_list[i]==1             Ri=Memory[address,4]             address=address+4所以LDMFDSP!,{R0-R7,PC}^(;恢复现场,异常处理返回)伪代码是: address=SP; fori=0to7    Ri=Memory[address,4]   address=address+4; SP=address;作业2一、用移位操作完成(R0)*10运算。参考程序:.text.global_star

6、t_start:....word格式movR0,#10movR1,R0,LSL#3movR2,R0,LSL#1addR3,R1,R2stop:Bstop.end二、已知数据缓冲池中有两组数据x和y,每组中有3个数据(例如x:90,60,30,y:60,40,20),将x中的数据减去y中的数据,最后将两组数相减得到的结果送回到x中去!参考代码:.text.global_start_start:LDRSP,=xLDMFDSP!,{R0-R2}LDMFDSP!,{R3-R5}subR2,R2,R5SubR1,R1,R4SubR0,R0,R3STMFDSP!,{R0-R2}stop:bstop.lt

7、orgx:.long80,90,100y:.long10,20,30.end作业3已知R0和R1的值,要求保留R0的低16位,保留R1的高16位状态,最后将这两个值组成一个新的数送给R3.参考代码:.text.global_start....word格式_start:LDRR0,=0x12345678LDRR1,=0x87654321ldrR2,=0xffffLDRR4,=0xffff0000ANDR0,R0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。