一. 实验目的
1.学习用汇编语言编制程序;了解汇编语言程序与 C 语言程序的区别和在设置上的不同。
2.了解 TMS320C28x 汇编语言程序结果和一些简单的汇编语句用法。
3.学习在 CCS 环境中调试汇编代码。
二. 实验设备
PC 兼容机一台,操作系统为 WindowsXP 或者以上版本,安装了 Code Composer Studio v5软件。
三. 实验原理
1. 汇编语言程序
汇编语言程序除了程序中必须使用汇编语句之外,其编译选项的设置与C语言编制的程序也稍有不同。其区别为:
(1)汇编语言程序在执行时直接从用户指定入口开始,常见的入口标号为“start”,而C语言程序在执行时,先要调用C标准库中的初始化程序(入口标号为“_c_init00”),完成设置之后,才转入用户的主程序main()运行。
(2)由于CCS 的代码链接器默认支持C语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。
2.程序设计要求
程序框图:
| 数值运算 |
| 开设三个整 型变量 x,y,z |
| 赋初值: x=1,y=2 |
| 计算 x+y |
| 输出结果到 z |
| 循环 |
四.实验步骤
1.实验准备
确保已经设置过 CCS(参看:第三部分、第一章、四)。此实验为软件仿真。
2.启动 Code Composer Studio 5
3.创建工程
选择菜单“View”的“Project Explorer”项,打开工程查看界面
在 Project Explorer 窗口的空白地方右键选择 New->CCS Project:
在弹出的窗口中设置工程名称,以及工程的设备类型,这里我们新建工程 TASM,Device型号为TMS320F28335,点击Finish完成创建:
4.编译、下载程序。
点击图标 ,CCS会自动编译、连接和下载程序,最后会显示出Debug窗口,且主程序文件被自动打开,程序指针指向第一条汇编代码。
5.打开观察窗口
(1)选择菜单View->Disassembly。注意程序运行指针停留的位置。
(2)开启CPU寄存器观察窗口:单击菜单View->Registers 打开寄存器观察窗口,展开里面的CPU Registers。请看PC指针取值与当前程序运行地址对应。此处为 0x9000。
(3)展开ACC里面的AL寄存器,此时应为0。如果AL寄存器的值不为0,请点击Run->Reset->Reset CPU,对28335芯片进行复位。
(4)开启内存观察窗口:
选择“View”菜单中“Memory Browser…”项,在“Memroy Browser”窗口中的地址项中输入0x400,单击“GO”完成设置。
6.观察程序运行结果
(1)点击Debug窗口中的图标 ,单步运行1次,在观察窗中观察到AR1寄存器被赋值0x9000。
(2)再单步运行3次,将看到内存窗口中0x402被赋值0x0A,0x401地址被赋值 0x1。
(3)再单步运行3次,可观察0x400地址中的值变为0x0B,此数据就是把0x402 和0x401地址中数据相加得到的。
7.对照观察 map 文件和 cmd 文件的内容
(1)展开工程中的Debug文件夹,找到TASM.map文件,双击打开。
(2)打开28335_RAM_lnk.cmd文件。
(3)程序的入口地址:map文件中“ENTRY POINT SYMBOL”中说明了程序入口地址(start)。
(4)内存使用情况:
map文件中“MEMORY CONFIGURATION”标明了程序占 RAM的使用情况。比较一下,这比用C编制的程序占用的要小得多。
观察map文件中的“SECTION ALLOCATION MAP”段,可以看出TASM.obj的入口 地址为9000H,这也是程序的入口地址。
8.退出 CCS
五.实验结果
汇编语言程序可以从指定位置开始运行,但汇编程序需要完成对运行环境的初始化工作。 实验中的程序有堆栈操作,所以初始化堆栈指针,这在编制大型应用程序中是必须要的功能。
该博客围绕TMS320C28x汇编语言实验展开,介绍了实验目的,包括学习汇编编程、了解与C语言程序区别等;说明了实验设备和原理;详细阐述了实验步骤,如创建工程、编译下载程序、观察运行结果等;最终得出汇编程序可从指定位置运行,需初始化运行环境的实验结果。
1493

被折叠的 条评论
为什么被折叠?



