




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子信息学院DSP结构原理及应用实验组员:实验报告书写:日期:地点:根底教学楼B座520实验室实验一CCS的用法实验目的:1〕了解TMS320C54X汇编语言程序对的根本格式以及汇编、链接的根本过程。2〕初步熟悉CCS的用法。实验条件:1〕硬件DSK板及软件开发平台工具CCS。2〕源程序清单lab1.asm,链接命令文件lab1,cmd.二、实验步骤:1、翻开桌面CCS2〔‘5000〕图标,启动CCS集成开发环境。2、创立一个新工程;从project中选择new项,输入工程名如lab1,单击完成。将文件添加到工程中:a、从project中选择AddFilestoproject,在弹出的对话框选择lab1.asm文件并单击翻开;或在工程lab.pjt处单击右键,选择菜单命令AddFilestoproject。b、同理将lab1d文件添参加工程。对工程进行汇编、编译、链接:执行菜单命令project->RebuildAll,或在工具栏上单击RebuildAll图标。加载程序:执行菜单命令File->LoadProgram,在弹出的对话框中选择lab1.out并单击翻开按钮。运行程序:选择Debug中的Run运行程序或单击工具栏的Run图标、SingleStep图标运行程序。三实验要求:了解CCS菜单命令及产生各个显示窗口的操作。操作各种仿真命令·进入、退出CCS;·选择当前窗口,改变窗口的大小。·加载程序。·运行程序〔包括单步运行〕。·检查修改CUP存放器。·检查修改存储器单元内容。·用观察窗口检查变量、CPU存放器或存储单元内容。四、实验源程序:*lab1.asmy=a1*x1+a2*x2+a3*x3+a4*x4*************************************************.title"lab1.asm" ;汇编语言源文件取名 .mmregs ;定义存储器印象存放器STACK.usect"STACK",10h;为堆栈分配10个空间.bssx,4;为变量x分配4个存储单元.bssa,4;为系数a分配4个存储单元.bssy,1 ;为变量y分配1个存储单元.defstart.data;定义数据代码段table:.word1,2,3,4;为table开始的8个存储单元赋值.word8,6,4,2.text;定义文本代码段start:STM#0,SWWSRSTM#STACK+10h,SP;设置堆栈指针STM#table,AR1;AR1指向table首地址STM#x,AR2;AR2指向x首地址STM#7,AR0 ;存放器AR0赋值7LD#0,A ;累加器清零loop:LD*AR1+,A;将AR1的值赋给累加器A中STLA,*AR2+;将A的低16位存储到AR2中BANZloop,*AR0-;辅助存放器CALLSUM;调用乘法累加子程序SUMend:Bend ;循环等等SUM:STM#a,AR3;将系数的首地址赋给AR3STM#x,AR4;将变量x的首地址赋给AR4RPTZA,#3 ;将累加器清零,重复执行下条指令4次MAC*AR3+,*AR4+,A ;执行乘法累加运算,结果存储在累加器A中STLA,@y ;将结果(A的低16位〕送往变量y存储单元RET.end实验体会:1〕、出现一个warning:entrypointotherthan_c_int00specified,将start用_c_int00代替后warning消失,说明标号_c_int00更精确。2〕、堆栈赋值改为20时,SP值变为100,但对整体无影响,仅只是为堆栈分配的存储单元增加了。3〕、4次loop循环中,PC指针由F00B到F00D依次变化,说明LD*AR1+,A;STLA,*AR2+;BANZloop,*AR0-;三条语句的执行周期均为1.实验二数据寻址方式实验目的熟悉TMS320C54X的各种寻址方式。继续练习CCS软件用法。二、实验条件本实验已准备的程序于表2.1中表2.1数据寻址方式实验程序序号实验内容源程序名链接文件名1立即寻址Lab2a.asmLab2ad2绝对寻址Lab2b.asmLab2bd3累加器寻址Lab2c.asmLab2cd4直接寻址Lab2d.asmLab2dd5间接寻址Lab2e.asmLab2ed6存储器映象寻址Lab2f.asmLab2fd7堆栈寻址Lab2g.asmLab2gd实验步骤双击桌面上的“CCS〞图标,启动〞CCS〞开发环境。在file菜单中选择open项,翻开并阅读每一种寻址方式的源程序和链接命令文件。创立新工程并添加文件,包括〔.asm源文件和d链接命令文件〕。汇编、编译、链接生成输出文件并加载程序。用单步方式执行程序,观察程序中各条指令执行结果。在程序中添加假设干条类似这样的寻址方式的指令,并汇编、编译、链接、执行。实验源程序1 立即寻址 Lab2a.asm Lab2ad;********************************;ImmediateAddressing;******************************** .title"lab2a.asm" .def start .textstart: LD #100,A;长立即数100加到累加器A,变为A=0x0064 LD #10h,4,A;十六进制数10h左移4位后加载到累加器A,A=0x0100 RSBXSXM;状态存放器复位 LD #32769,B;立即数32769转为16进制加载到B,B=0x8001 LD #4000h,16,B ;十六进制数4000h左移16位后加载到B,B=0x40000000here B here.end_____________________________________________________________________2 绝对寻址 Lab2b.asm Lab2bd;********************************;AbsoluteAddressing;******************************** .title"lab2b.asm" .def startSAMPLE .set 0060h .bss x,10 .datatable: .word 1 .word 2 .word 3 .word 4 .word 5 .textstart: LD #4AB8h,A;4AB8h加载到累加器A,A=4AB8; STL A,SAMPLE STM #0060h,AR2;存放器AR2指向首地址0x0060 RPT #4;重复运行4次 MVPD table,*AR2+;将程序存储器标号为table地址单元中数据传送到存放器AR2中,AR2变为0x0065 RPT #4 MVKD #0061h,*AR2+;将地址为0061h的数据存储器中的数据传到AR2,AR2变为0x006A LD x,B;B=0x0001 LD 0061h,A ;A=0x0002here B here.end___________________________________________________________________3 累加器寻址 Lab2c.asm Lab2cd;********************************;AccumulatorAddressing;******************************** .title"lab2c.asm"STACK.usect "STACK",10h .def start .bss x,10 .datatable: .word 1234h,5678h,9abch,0def0h .textstart: STM #STACK+10h,SP;SP=90 LD #table,A;A=0xE010h STM #0060h,AR2;AR2指向首地址0x0060h RPT #3;重复运行三次 READA *AR2+;立即数寻址:AR2指向的地址空间存入“word〞 LD #ADD_1,A;A=0xE00Dh CALA A;调用子程序ADD_1here B hereADD_1: ADD #1,A;A=0xE00Eh RET .end4 直接寻址 Lab2d.asm Lab2dd;********************************;DirectAddressing;******************************** .title"lab2d.asm" .def start .bss x,1 .bss y,1 .textstart:ST #0001,*(0180h);将数据0x0001存到地址为0x0180h的空间 ST #1000,*(01ffh);将数据1000b存到地址为0x01ffh的空间 ST #500,*(0200h);将数据500b存到地址为0x0200h的空间 LD #3,DP LD @x,A;A=0x03E8 ;LD #4,DP ADD @y,A;A=0x03E9here B here.end结果可发现,程序执行没有到达预期的结果〔A=x+y=1500h〕其原因是x和y存放在不同页面,执行“ADD@y,A〞指令时,DP=3,结果变成0180h单元中的数〔0x0001〕加至累加器A,故而结果为:A=0x03E9.5 间接寻址 Lab2e.asm Lab2ed;****************************************;IndirectAddressing;**************************************** .title"lab2d.asm" .def start .bss x,10hstart: ST #1000h,*(0060h);将数据0x1000存到地址为0x0060h的空间 ST #2000h,*(0061h);将数据0x2000存到地址为0x0061h的空间 ST #3000h,*(0062h);将数据0x3000存到地址为0x0062h的空间 ST #4000h,*(0063h);将数据0x4000存到地址为0x0063h的空间 LD #1000h,A;A=0x1000h STM #0060h,AR1;AR1首地址为0x0060h MAR *AR1+;修改AR1地址,使AR1指向0x0061h,间接寻址 STM #2,AR0;AR0所在首地址存放2个地址跳变 LD *AR1+0,A;A=0x2000h LD *AR1,B;B=0x4000hhere B here.end6存储器映象寻址Lab2f.asmLab2fd;****************************************;Memory-MappedRegisterAddressing;**************************************** .title"lab2f.asm" .def start .mmregs .textstart: STM #1234h,AR1 STM #5678h,AR2 STM #2,SWWSR LDM AR1,A;A=0x1234h MVMM AR1,AR3;AR3指向0x1234h,存储器印象寻址 STLM A,AR2;AR2指向0x1234hhere B here.end7 堆栈寻址 Lab2g.asm Lab2gd;********************************;StackAddressing;******************************** .title"lab2g.asm" .def startSTACK: .usect "STACK",10h .bss x,10h .textstart: STM#STACK+10h,SPx的首地址为0x0060h ST #1234h,*(x)0x0060h存入1234h ST #5678h,*(x+1)0x0061h存入5678h ST #9abch,*(x+2)0x0061h存入9abch STM #x,AR1 RPT #2 PSHD *AR1+;压栈,AR1指向0x0063h,SP=8D;********************************;堆栈寻址 RPT #2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文明驾考试题及答案
- 物业人员考试题及答案
- 封窗美化改造方案
- 物理管理面试题及答案
- 模拟盲人考试题及答案
- 高端酒店客房楼顶花园使用权租赁合同
- 设计院新员工入职培训方案
- 教育功能概述
- 脊柱侧弯的护理病例讨论
- 感觉与挫折教育
- 2025至2030浮式储油卸油装置(FSO)行业发展趋势分析与未来投资战略咨询研究报告
- 交通运输行政执法课件培训
- 中国肉类加工设备行业发展趋势及发展前景研究报告2025-2028版
- 2025年新疆中考数学试卷真题(含答案解析)
- 设备集中采购管理制度
- 高考数学专题-基本不等式求最值的常用方法(解析版)
- 中国上海市酒店行业市场调查研究及投资前景预测报告
- 2025春季学期国开电大本科《管理英语4》一平台机考真题及答案(第四套)
- 2025上海纺织工业职工大学教师招聘考试试题
- DB13T 2770-2018 焊接熔深检测方法
- 网络题库财务会计知识竞赛1000题(仅供自行学习使用)
评论
0/150
提交评论