(1)实验目的
了解ARM 汇编语言的基本框架,学会使用ARM 的汇编语言编程。
(2)实验内容
用汇编语言编写一个简单的应用程序。
(3)实验设备
①EL-ARM-830 教学实验箱,Pentium Ⅱ以上的PC 机,仿真器电缆。
②PC 操作系统Win98 或Win2000 或WinXP,ADS1.2 集成开发环境,仿真器驱动程序。
(4)汇编语言简介
1)ARM 汇编的一些简要的书写规范
ARM 汇编中,所有标号必须在一行顶格书写,其后面不要添加“:”,而所有指令均不能顶格书写。 ARM 汇编对标识符的大小写敏感,书写标号及指令时,字母大小写要一致。 在ARM汇编中,ARM 指令、伪指令、寄存器名等可以全部大写或者全部小写,但不要大小写混合使用。 注释使用“;”号,注释的内容由“;”号起到此行结束,注释可以在一行顶格书写。 详细的汇编语句及规范请参照ARM 汇编的相关书籍和文档。
2)ARM 汇编语言程序的基本结构
在ARM 汇编语言程序中,是以程序段为单位来组织代码。 段是相对独立的指令或数据序列,具有特定的名称。 段可以分为代码段的和数据段,代码段的内容为执行代码,数据段存放代码运行时所需的数据。 一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行文件。 可执行映像文件通常由以下几部分构成:
①一个或多个代码段,代码段为只读属性。
②零个或多个包含初始化数据的数据段,数据段的属性为可读写。
③零个或多个不包含初始化数据的数据段,数据段的属性为可读写。
链接器根据系统默认或用户设定的规则,将各个段安排在存储器中的相应位置。 源程序中段之间的相邻关系与执行的映像文件中的段之间的相邻关系不一定相同。
3)简单的示例
下面是一个代码段的示例:
在汇编程序中,用AREA 指令定义一个段,并说明定义段的相关属性,本例中定义了一个名为“Init”的代码段,属性为只读。 ENTRY 伪指令标识程序的入口,程序的末尾为END 伪指令,该伪指令告知编译器源文件的结束,每一个汇编文件都要以END 结束。
下面是一个数据段的示例:(www.xing528.com)
…
DATA 为数据段的标识。
(5)实验步骤
①本实验仅使用实验教学系统的CPU 板和串口。 在进行本实验时,LCD 电源开关、音频的左右声道开关、AD 通道选择开关、触摸屏中断选择开关等均应处在关闭状态。
②在PC 机并口和实验箱的CPU 板上的JTAG 接口之间,连接ADS1.2 调试电缆,以及串口间连接公/母接头串口线。
③检查连接是否可靠,确认可靠后,接入电源线,系统上电。
④打开ADS1.2 开发环境,从里面打开S3C44B0X 实验程序\实验二\Assemble.mcp 项目文件。
⑤编译通过后,运行ADS1.2 的调试环境AXD,装载S3C44BOX 实验程序\实验二\Assemble\Assemble _data 中的映象文件Assemble.axf。
⑥打开串口调试工具,配置波特率为115 200 Bd,校验位无,数据位为“8”,停止位为“1”。选中十六进制,显示之后,在AXD 调试环境下全速运行映象文件,将出现图9.18 所示界面。
图9.18 串口调试助手
本程序连续发送了5 个字节的AA。
下面分析程序的源码:
在标号UART 前的部分为系统的初始化,标号UART 后的程序为主程序,在程序中找到下面这部分代码,即
分析清楚之后,改变语句LDR R1,=0Xaa,将0Xaa 换成其他的数据,然后保存、编译和调试。 观察结果,比如0xaa,0x01 等。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。