嵌入式系统编程题汇编.doc

嵌入式系统编程题汇编.doc

ID:52196502

大小:109.50 KB

页数:12页

时间:2020-03-24

嵌入式系统编程题汇编.doc_第1页
嵌入式系统编程题汇编.doc_第2页
嵌入式系统编程题汇编.doc_第3页
嵌入式系统编程题汇编.doc_第4页
嵌入式系统编程题汇编.doc_第5页
资源描述:

《嵌入式系统编程题汇编.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、.嵌入式系统编程题汇编(带答案).一。从一数到十COUNTEQU0x30003100;定义变量COUNT的基地址AREAExample1,CODE,READONLY;声明代码段Example1为只读ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;将0X30003100赋给R1MOVR0,#0;执行R0=0STRR0,[R1];存储R0寄存器的数据到R1指向的存储单元LOOPLDRR1,=COUNT;将0X30003100赋给R1LDRR0,[R1];将R1中的数值作为

2、地址,取出此地址中的数据保存到R0中ADDR0,R0,#1;执行R0=R0+1CMPR0,#10;将R0与10进行比较MOVHSR0,#0;若R0大于等于10,则R0=0STRR0,[R1];存储R0寄存器的数据到R1指向的地址单元BLOOP;跳转到LOOPEND;汇编文件结束二,9的8次幂XEQU9;初始化X为9nEQU8;初始化N为8AREAExample3,CODE,READONLY;生明代码段Example3为只读ENTRY;标识程序入口路CODE32;声明32位ARM指令STARTLDRSP,=0x30

3、003F00;把0x30003F00赋给SP(R13)LDRR0,=X;把9赋给R0LDRR1,=n;把8赋给R1BLPOW;跳转到POW,并把下一条指令地址存入到R14中Word文档.HALTBHALT;等待跳转POWSTMFDSP!,{R1-R12,LR};将R1-R12入栈,满递减堆栈MOVSR2,R1;将R1赋给R2,并影响标志位MOVEQR0,#1;若Z=1,则R0=1BEQPOW_END;若Z=1,跳转到POW_ENDMOVR1,R0;将R0中值赋给R1SUBR2,R2,#1;将R2-1的只赋给R2P

4、OW_L1BLDO_MUL;跳转到DO-MUL,并把下一条指令地址存入R14中SUBSR2,R2,#1;将R2-1的值赋给R2,并影响标志位BNEPOW_L1;若Z=0,跳转到POW_L1POW_ENDLDMFDSP!,{R1-R12,PC};数据出栈,存入到R1-R12,PC中DO_MULMULR0,R1,R0;把R1*R0的值赋给R0MOVPC,LR;LR中的值赋给PCEND;汇编结束三:从一一直加到一百程序清单(一)C语言实验参考程序#defineuint8unsignedchar;定义一个无符号字符常量u

5、int8#defineuint32unsignedint;定义一个无符号整形常量unint32#defineN100;定义一个常量N=100(宏定义,100用N代替)uint32sum;;定义sum为无符号整型常量(声明一个unsignedint型的变量sum)voidMain(void);主函数{uint32i;;定义无符号整型常量i(声明一个unsignedint型的变量i)sum=0;;sum初始值为0for(i=0;i<=N;i++);i在N内自增加1(i从0开始,i<=N时循环成立){sum+=i;};

6、把sum+i赋给sumwhile(1);;为真循环}程序清单(二)简单的启动代码IMPORT

7、Image$$RO$$Limit

8、;R0输出段存储区域界限IMPORT

9、Image$$RW$$Base

10、;RW输出段运行时起始地址IMPORT

11、Image$$ZI$$Base

12、;ZI输出段运行时起始地址IMPORT

13、Image$$ZI$$Limit

14、;ZI输出段存储区域界限IMPORTMain;主函数AREAStart,CODE,READONLY;声明代码段start,为只读Word文档.ENTRY;程序入口CODE32

15、;声明32位ARM指令ResetLDRSP,=0x40003f00;将0x40003f00赋给SPLDRR0,=

16、Image$$RO$$Limit

17、;将R0输出段存储区域界限赋给R0LDRR1,=

18、Image$$RW$$Base

19、;将RW输出段运行时起始地址赋给R1LDRR3,=

20、Image$$ZI$$Base

21、;将ZI输出段运行时起始地址赋给R3CMPR0,R1;比较R0和R1,相等Z=1,反之Z=0BEQLOOP1;若Z=1,则跳到LOOP1LOOP0CMPR1,R3;比较R1和R3,若R1

22、RCCR2,[R0],#4;若C=0,读取R0地址单元内容并且存入R2,且R0=R0+4STRCCR2,[R1],#4;若C=0,读取R2中的数据存入R1,且R1=R1+4BCCLOOP0;若C=0,跳转到LOOP0LOOP1LDRR1,=

23、Image$$ZI$$Limit

24、;将ZI输出段存储区域赋给R1MOVR2,#0;把0赋给R2LOOP2CMPR3,R1;比较R1和

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

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

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