实验二:数据存取实验.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二:数据存取实验

实验二 数据存取实验 一、 实验目的 1、 了解TMS320VC5416内部存储器空间的分配及指令寻址方式; 2、 学习使用Code Composer Studio修改、填充DSP内存单元的方法; 3、 重点掌握直接寻址和间接寻址的相关指令及使用方法。 二 实验工具 计算机、Code Composer Studio开发系统 三.实验原理 1、TMS320VC54x DSP 内部存储器资源介绍: C54x 片内有8 条16 位主总线:4 条程序/数据总线和4 条地址总线,功能如下: -程序总线(PB)传送取自程序存储器的指令代码和立即操作数。 -3 条数据中线(CB,DB,EB)将内部各单元连接在一起。 -4 个地址总线(PAB、CAB、DAB、EAB)传送执行指令所需的地址。 ‘C54x 的总存储空间为192K 字,分成3 个可独立选择的空间:程序存储空间(64K 字),数据存储空间(64K 字),输入/输出(I/O)空间(64K 字)。 *程序区: 0000-007Fh: OVLY 位= 1,保留空间 OVLY 位=0,片外扩展存储器 0080-7FFFh: OVLY 位= 1,片上DARAM0-3 OVLY 位=0,片外扩展存储器 8000-BFFFh: 片外扩展存储器 C000-FEFFh: MP/MC 位=0 片上ROM,4Kx16 位 MP/MC 位=1 片外扩展存储器 FF00-FF7Fh: MP/MC 位=0,保留空间 MP/MC 位=1,片外扩展存储器 FF80-FFFFh: MP/MC 位=0,片上中断向量表 MP/MC 位=1,片外扩展中断向量表 *数据区: 0000-005Fh: 寄存器映射地址 0060-007Fh: 暂存器 SPRAM 0080-7FFFh: 片上 DARAM0-3,32Kx16 位 8000-FFFFh: DROM 位=1,片上DARAM4-7 DROM 位=0,片外扩展存储器 *I/O 区: 0000-FFFFh: 片外扩展区 *扩展程序存储器空间: 扩展程序存储器空间采用分页扩展方法,使程序空间可扩展到 8192K 字。 2.TMS320C54x 数据寻址方式介绍 ’C54x 共有7 种有效的寻址方式: *立即寻址:主要用于初始化。 例如:LD #10, A ;将立即数10 传送至累加器A *绝对寻址:利用16 位地址寻址存储单元。 例如:STL A,*(y) ;将累加器的低16 位存放到变量与y 所在的存储单元中 *累加器寻址:把累加器的内容作为地址。 例如:READA x ;按累加器A 作为地址读程序存储器,并存入变量x 所在的数据存储器单元 *直接寻址:利用数据页指针或堆栈指针寻址。 例如:LD @x,A ;(DP+x 的低7 位地址)??A *间接寻址:利用辅助寄存器作为地址指针。 例如:LD *AR1,A ; AR1为地址的存储单元中的数据加载到累加器A中 *存储器映象寄存器寻址:快速寻址存储器映象器存器。 例如:LDM ST1,B ; ST1的内容加载到累加器B中 *堆栈寻址:压入/弹出数据存储器和MMR(存储器映象寄存器)。 例如:PSHM AG ;(SP)-1=(SP),(AG)=TOS 5.实验程序分析 源程序 Memory.asm .global start ; 定义全局标号 .mmregs .text start: nop ld #4,dp ;直接寻址,装载DP 值,页指针指向片内数据区DARAM B0 st #1,1 ; 绝对地址201H 开始的四个单元存1,2,3,4 st #2,2 st #3,3 st #4,4 stm #205h,ar1 ; 间接寻址,使用辅助寄存器1 rpt #3 ; 循环重复执行下条语句4 次 st #1234h,*ar1+ ; 将绝对地址205H 开始的4 个单元存成1234H ; 下面将201H 开始的8 个数读出 ; 存到2000H 开始的8 个单元 stm #7h,ar3 ; 循环计数器=7(8 次循环) stm #201h,ar1 ; 源起始地址 stm #2000h,ar2 ; 目的起始地址 loop: ld *ar1+,T ; 将ar1 指向单元内容读入T 寄存器,ar1 的值+1 st T,*ar2+ ; 将T 寄存器的值转存到ar2 指向的目的地址,ar2 的值+1 banz loop,*ar3- ; ar3 的值-1,循环计数不等于0 则循环 xh: b xh ; 空循环 .end 四.实验步骤 1.实验准备 (1) 设置Code Composer Studio 为C5416 Device Simulator 方式; (2) 启动Code Composer Studio。 双击桌面上“CCS 2(‘C

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档