实验2基于ARM的汇编语言程序设计

实验2基于ARM的汇编语言程序设计

ID:44713808

大小:47.50 KB

页数:4页

时间:2019-10-25

实验2基于ARM的汇编语言程序设计_第1页
实验2基于ARM的汇编语言程序设计_第2页
实验2基于ARM的汇编语言程序设计_第3页
实验2基于ARM的汇编语言程序设计_第4页
资源描述:

《实验2基于ARM的汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二基于ARM的汇编语言程序设计一、实验目的了解ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。二、实验设备标准硬件。三、实验内容用汇编语言编写“连续发送128个ASCII字符”的应用程序。四、实验原理ARM汇编语言程序中,是以程序段为单位来组织代码。段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。因此在进行汇编时除了要了解其书写规范外,还要能理解段的应用。下面是一

2、个代码段的小例子,实现数据的装载AREAInit,CODE,READONLYENTRYLDRR0,=0x3FF5000LDRR1,0x0fSTRR1,[R0]LDRR0,=0x3F50008LDRR1,0x1STRR1,[R0]…END上述程序,在汇编程序中,用AREA指令定义一个段,并说明定义段的相关属性,其格式为AREA段名,属性1,属性2,…,属性n。本例中定义了段名为Init的属性为代码段,只读。ENTRY伪指令标识程序的入口,即代码从此处开始执行,程序的末尾为END指令,该伪指令告诉编译器源文件的结束,每一个汇编文件都要以END结束。AREADataArea,DAT

3、A,NOINIT,ALIGN=2DISPBUFSPACE200RCVBUFSPACE200…DATA为数据段的标识。本程序段名为DataArea,属性数据段,不含初始化,采用align表达式对其方式2表达式次方。五、实验步骤1.打开ADS1.2开发环境,打开基础实验实验五asm.mcp项目文件,然后进行compile和make生成*.axf文件。2.编译通过后,进入ADS1.2调试界面,加载基础实验实验五asm_DataDebug中的映象文件asm.axf。3.在ADS调试环境下全速运行映象文件,应出现界面:本程序连续发送了128个ASCII字符。下面分析程序的

4、源码。在UART前的部分为系统的初始化,这在后边BOOTLOADER的章节里要详细介绍。UART后的程序为主程序,在程序中找到下面这部分的代码,…;//呼叫主应用程序bUARTUARTldrr0,=GPHCON;设置GPIO(RxD0,TxD0引脚)ldrr1,=0x2afaaastrr1,[r0]ldrr0,=GPHUP;GPH[10:0]禁止上拉ldrr1,=0x7ffstrr1,[r0];ldrr0,=UFCON0;禁用FIFOldrr1,=0x0strr1,[r0]ldrr0,=UMCON0;禁用AFCldrr1,=0x0strr1,[r0]ldrr0,=ULCON0

5、;设置线寄存器ldrr1,=0x3;正常模式,无奇偶校验,一个停止位,8个数据位strr1,[r0]ldrr0,=UCON0;设置Uart0控制器ldrr1,=0x245;RX边沿触发,TX电平触发,禁用延时中断,使用RX错误中断,正常操作模式,中断请求或表决模式strr1,[r0]ldrr0,=UBRDIV0;设置波特率为115200ldrr1,=0x1a;int(50700000/16/115200)-1=26strr1,[r0]movr1,#100;延时初值Delay;延时subr1,r1,#0x1bneDelay;//开中断ldrr0,=INTMSK;//中断屏蔽寄存

6、器ldrr1,[r0]andr1,r1,#0xefffffffstrr1,[r0];//打开中断uart0MOVR5,#127;//设置要打印的字符的个数MOVR1,#0x0;//设置要打印的字符LOOPLDRR3,=UTRSTAT0;//通道0状态寄存器LDRR2,[R3]TSTR2,#0x04;//判断发送缓冲区是否为空BEQLOOP;//为空则执行下边的语句,不为空则跳转到LOOPLDRR0,=UTXH0;//通道0发送缓存寄存器STRR1,[R0];//向数据缓冲区放置要发送的数据ADDR1,R1,#1;//R1加1,准备打下一个字符SUBR5,R5,#0x01;//

7、计数器减一CMPR5,#0x0;打印剩余个数和0比较,即R5-0BNELOOP;打印剩余个数,R5不为0则跳转LOOP2BLOOP2;死循环,相当C里的while(1)分析清楚之后,我们改变R1的数据,换成其他的数据,然后保存、编译、调试。观察结果。六、心得、体会本次试验通过对汇编语言的学,基本掌握了ARM中汇编语言的使用。虽然还是有点模糊,但可以仿照书上内容编写出来。之前学习嵌入式时候有过对汇编语言的学习,但不是很明白,相对来说这门语言比较高深难懂。即使现在再次学习,实验又进行了实际的验证。还是难窥其

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

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

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