课程-arm系统精讲班

课程-arm系统精讲班

ID:14569132

大小:3.47 MB

页数:125页

时间:2018-07-29

课程-arm系统精讲班_第1页
课程-arm系统精讲班_第2页
课程-arm系统精讲班_第3页
课程-arm系统精讲班_第4页
课程-arm系统精讲班_第5页
资源描述:

《课程-arm系统精讲班》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ARM系统精讲班实验手册实验目录实验1-1ARM汇编编程-寄存器访问4实验1-2ARM汇编编程-算术运算5实验1-3ARM汇编编程-寻址方式7实验1-4ARM汇编编程-逻辑控制9实验1-5ARM汇编编程-模式切换13实验1-6ARM/C混合编程16实验2-1ADS集成开发环境18实验2-2ARM综合实验-二进制数字显示38实验2-3ARM综合实验-二进制数字显示46实验2-4ARM综合实验-按键程序设计54实验3-1ARM综合实验-定时器程序设计62实验4-1ARM综合实验-串口程序设计172实验4-2ARM综合实验-串口

2、程序设计284实验5-1ARM综合实验-ADC程序设计193125实验5-2ARM综合实验-ADC程序设计2104实验5-3ARM综合实验-触摸屏程序设计115实验6-1ARM综合实验-LCD程序设计127125实验1-1ARM汇编编程-寄存器访问l实验目的:掌握ARM通用寄存器,存储器的访问方法l实验要求:1.使用MOV指令访问ARM通用寄存器2.使用LDR/STR指令完成存储器的访问l实验代码与分析:1-1test1.sCOUNTEQU0x30003100;定义一个变量,地址为0x30003100AREAExample

3、2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1<=COUNTMOVR0,#0;R0<=0STRR0,[R1];[R1]<=R0,即设置COUNT为0LOOPLDRR1,=COUNTLDRR0,[R1];R0<=[R1]ADDR0,R0,#1;R0<=R0+1STRR0,[R1];[R1]<=R0,即保存COUNTBLOOPEND125实验1-2ARM汇编编程-算术运算l实验目的:掌握ARM算术,逻辑运算指令l实验要

4、求:使用ADD、SUB、AND、ORR、CMP、TST等指令完成数据加减运算及逻辑运算l实验代码与分析:1-2test2.sXEQU11;定义X的值为11YEQU8;定义Y的值为8BIT23EQU(1<<23);定义BIT23的值为0x00800000AREAExample2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令START;使用MOV、ADD指令实现:R8=R3=X+YMOVR0,#X;R0<=X,X的值必须是8位图数据MOVR1,#Y;R1<=Y

5、,Y的值必须是8位图数据ADDR3,R0,R1;即是R3=X+YMOVR8,R3;R8<=R3;使用MVN、SUB指令实现:R5=0x5FFFFFF8-R8*8MVNR0,#0xA0000007;0xA0000007的反码为0x5FFFFFF8SUBR5,R0,R8,LSL#3;R8左移3位,结果即是R8*8;使用CMP指令判断(5*Y/2)>(2*X)吗?若大于则R5=R5&0xFFFF0000,否则R5=R5

6、0x000000FFMOVR0,#YADDR0,R0,R0,LSL#2;计算R0=Y+4*Y=5*YMOVR0

7、,R0,LSR#1;计算R0=5*Y/2MOVR1,#X125MOVR1,R1,LSL#1;计算R1=2*XCMPR0,R1;比较R0和R1,即(5*Y/2)和(2*X)进行比较LDRHIR2,=0xFFFF0000;若(5*Y/2)>(2*X),则R2<=0xFFFF0000ANDHIR5,R5,R2;若(5*Y/2)>(2*X),则R5=R5&R2ORRLSR5,R5,#0x000000FF;若(5*Y/2)≤(2*X),则R5=R5

8、0x000000FF;使用TST指令测试R5的bit23是否为1,若是则将bit6位

9、清零(使用BIC指令)TSTR5,#BIT23BICNER5,R5,#0x00000040BSTARTEND125实验1-3ARM汇编编程-寻址方式l实验目的:掌握ARM寻址方式l实验要求:编写汇编程序,分别实现立即数寻址寄存器寻址寄存器间接寻址基址变址寻址多寄存器寻址l实验代码与分析:1-3test3.sAREATEST,CODE,READONLYENTRYCODE32;立即数寻址MOVR0,#0x1;立即数0x1存入寄存器R0ADDR0,R0,#0x4;寄存器R0中的内容加上立即数0x4然后存入寄存器R0;寄存器寻址M

10、OVR1,#0x2;立即数0x2存入寄存器R1ADDR2,R1,R0;寄存器R0中的内容和寄存器R1的内容相加存入寄存器R2ADDR2,R2,R0,LSL#1;寄存器R0中的内容逻辑左移1位加上寄存器R2的内容在存入寄存器R2;寄存器间接寻址MOVR1,#0x10;将立即数0x10存入寄存器R1STRR

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

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

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