1、汇编的数据访问 实 验 报 告实验名称 汇编的数据访问课程名称 DSP 院 系 部: 电院 专业班级:学生姓名: 学 号: 同 组 人: 实验台号: 指导教师: 成 绩: 实验日期: 华北电力大学(北京)实验报告要求:一、实验目的及要求:实验目的1. 了解 DSP 结构;2. 熟悉 CCS 开发环境;3. 熟悉 TDB- C54X plus DSP 实验箱的硬件环境;4. 掌握 C54X plus 存储区数据访问的方法。实验要求在程序区预留 2 个数据块,每块大小为 128 字;在数据区预留 4 个数据块, 每块大小为 128 字, 分别将数据区的数据移动到程序区, 将程序区的数据移动到数据区
2、,将数据区的数据移动到数据区,运行程序,通过 CCSViewCPU Registers,观察各寄存器的值,通过 CCSViewMemory ,观察片内程序区和数据区的值,上述各值应与源程序的结果一致。二、仪器用具:仪器名称规格/型号数量备注PC机1装有CCS软件三、实验原理(填写程序流程图)四、实验步骤(包括原理图、程序、实验结果与数据处理)实验结果:1#程序区地址=0x 1f 00, 初始化为全 0 2#程序区地址=0x 1f80, 初始化为全 01#数据区地址=0x 2000, 初始化为 0- 1272#数据区地址=0x 20803#数据区地址=0x 21004#数据区地址=0x 2180
3、1. 将 1#数据区的内容写到 1#程序区执行前:执行后:2. 将 1#程序区的内容写到 2#数据区执行前:执行后:3.将 2#数据区的内容写到 2#程序区执行前:执行后:4. 将 2#程序区的内容写到 3#数据区执行前:执行后:5. 将 3#数据区的内容写到 4#数据区执行前:执行后:源程序:T .set 00EHBRC .set 01AH SWWSR .set 028HCLKMD .set 058HPADD .set 1F00H ;PROGRAM_MEMORY ADDRESSDADD .set 2000H ;DATA_MEMORY ADDRESS .def _main .def _c_in
4、t00 .def _DELAY .text_c_int00: RPT #1000H NOP LD #40H,DP ;设置数据存储器页指针 STM #4000H ,SP ;设置堆栈指针 ADDM #7FFH,*(SP) ANDM #0FFFEH,*(SP) SSBX INTM ;禁止中断 STM #07FFFH,SWWSR ;置外部等待时间 STM #06004H,CLKMD LD #0FFFFH,A CALL _DELAY STM #087FBH,CLKMD LD #0FFFFH,A CALL _DELAY B _main _main: CALL INIT_DATA ;初始化程序区为0,数据区
5、为0-127 NOP NOP CALL WRITE_A ;将1#数据区的内容写到1#程序区 NOP NOP CALL READ_A ;将1#程序区的内容写到2#数据区 NOP NOP CALL MOVE_DP ;将2#数据区的内容写到2#程序区 NOP NOP CALL MOVE_PD ;将2#程序区的内容写到3#数据区 NOP NOP CALL MOVE_DD ;将3#数据区的内容写到4#数据区 NOP NOP B $ _DELAY: STLM A,BRC ;设置块循环计数器 RPTB _DELAY1-1 NOP NOP NOP NOP_DELAY1:RET INIT_DATA: STM #
6、PADD,AR2 RPTZ A, #03FFH STL A,*AR2+ NOP NOP NOP LD #0,A STM #DADD,AR2 STM #127,BRC RPTB _INIT_DATA1-1 STL A,*AR2+ ADD #1,0,A NOP NOP_INIT_DATA1: RET ; This routine uses the MVDD instruction to move; information in data memory to other data memory; locations.;MOVE_DD: STM #DADD+100h,AR2 ;Load pointer
7、 to source in data memory. STM #DADD+180h,AR3 ;Load pointer to ;destination in data memory. RPT #127 ;Move 128 value. MVDD *AR2+,*AR3+ RET; This routine uses the MVDP instruction to move external; data memory to internal program memory.;MOVE_DP: STM #DADD+80h,AR1 ;Load pointer to source in data memo
8、ry. RPT #127 ;Move 128 to program memory space. MVDP *AR1+,#PADD+80H RET; This routine uses the MVPD instruction to move external; program memory to internal data memory.;MOVE_PD: STM #DADD+100h,AR1 ;Load pointer to destination in data memory. RPT #127 ;Move 128 words from external MVPD #PADD+80h,*A
9、R1+ ;program to internal data memory. RET; This routine uses the READA instruction to move external; program memory to internal data memory. This differs; from the MVPD instruction in that the accumulator; contains the address in program memory from which to; transfer. This allows for a calculated,
10、rather than; pre-determined, location in program memory to be; specified. READA can access locations in program memory; beyond 64K word boundary;READ_A: LD #PADD,A STM #DADD+80h,AR1 ;Load pointer to destination in data memory. RPT #127 ;Move 128 words from external READA *AR1+ ;program to internal d
11、ata memory. RET; This routine uses the WRITA instruction to move data; memory to program memory. The calling routine must; contain the destination program memory address in the; accumulator. WRITA can access program memory address; beyond 64K word boundary;WRITE_A: LD #PADD,A STM #DADD,AR1 ;Load pointer to source in data memory. RPT #127 ;Move 128 words from data WRITA *AR1+ ;memory to program memory. RET .end五、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见。) 指导教师签字: 年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1