2322|0

2015

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

c2000的实验测试程序 1 指令实验(汇编程序) [复制链接]

实验一:DSP指令实验
实验目的:
    了解DSP的结构及管脚功能
    掌握DSP的基本指令
实验要求:
    了解怎样连接对DSP进行简单的编程操作,运算控制等基本汇编语言及算术语言实验测试及除错验证。
程序文件:ex1.asm
实验步骤:
1、以Simulator方式启动CCS,在[Project]-[Open]菜单中打开ex1.mak;
2、在左边树状列表框内双击[Project]展开目录树,双击[ex1.asm]打开源程序文件,参考程序中的注释仔细阅读源程序;
3、在[Project]-[Build]菜单中编译项目文件,编译成功后在下端的状态窗口中显示Build Complete,0 Errors,0 Warnings;
4、在[File]-[Load Programm]中加载输出执行代码文件ex1.out,此时,反汇编窗口将显示在前端,当前PC指针为0000:0080(黄色高亮显示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[Dis-Assembly Options]打开反汇编选项对话框,在[Dis-Assembly Style]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);
5、选择[View]-[CPU Registers]-[CPU Register](或点击左边工具栏的快捷按钮)打开处理器映射寄存器窗口;
6、选择[View]-[Memory](或点击左边工具栏的快捷按钮),在弹出的[Windows Memory Options]对话框的Address文本框中输入0x0200,Page下拉框中选中Data,确定后将打开数据存储器查询窗口,此时数据存储器地址0x0200~0x0203将对应ex1.asm中声明的标号DAT0~DAT3;
7、调整[Dis-Assembly][memory][CPU Registers]三个窗口的大小,以便于观察;
8、依次把光标移动到反汇编窗口中标号为bk?(?表示从0开始的整数)的标号行下的指令处,选择菜单[Debug]-[Breakpoint](或者点击快捷按钮)设置断点,断点设置后,都将以紫色高亮显示;
9、选择[Debug]-[Run](也可以按快捷键F5或点击快捷按钮)执行程序;
10、程序将在第一个断点bk0处停止,bk0标号下的指令将以半黄半紫高亮显示,在处理器映射寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:如步骤6所述,DAT0~DAT3对应地址为0X0200~0X0203),试修改下一条指令操作数的内容,然后按F5执行程序,再在处理器映射寄存器窗口中或数据存储器查询窗口中观察指令执行结果;
11、重复执行9、10步骤,依次观察加法指令、减法指令、乘法指令、除法指令、平方指令以及3数累加宏指令的执行结果;
14、以上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。
源程序:
************************************************
* FileName:   ex1.asm                *
* Description: DSP指令实验                    *
* Copyright(C) SanZhi Electronic               *
************************************************
   .title "ex1"
   .mmregs
   .def _c_int00
DAT0 .SET 60H
DAT1 .SET 61H
DAT2 .SET 62H
DAT3 .SET 63H
   .text
ADD3 .MACRO P1,P2,P3,ADDRP   ;三数相加宏定义: ADDRP = P1 + P2 + P3
   LD P1,A
   ADD P2,A
   ADD P3,A
   STL A,ADDRP
   .ENDM  
  
_c_int00:
   B start
        
start: LD #004h,DP      ;置数据页指针
   STM #1000h,SP     ;置堆栈指针
   SSBX INTM      ;禁止中断
  
  
bk0: ST #0012h,DAT0
   LD #0023h,A
   ADD DAT0,A      ;加法操作: A = A + DAT0
   NOP
   NOP
   NOP
   NOP
bk1: ST #0054h,DAT0
   LD #0002h,A
   SUB DAT0,A      ;减法操作: A = A - DAT0
   NOP
   NOP
   NOP
   NOP
bk2: ST #0345h,DAT0
   STM #0002h,T
   MPY DAT0,A      ;乘法操作: A = DAT0 * T
   NOP
   NOP
   NOP
   NOP
bk3: ST #1000h,DAT0
   ST #0041h,DAT1
   RSBX SXM      ;无符号除法操作: DAT0 ÷ DAT1 ;   结果: DAT2:商; DAT3:余数
   LD DAT0,A
   RPT #15
   SUBC DAT1,A
   STL A,DAT2
   STH A,DAT3
   NOP
   NOP
   NOP
   NOP
bk4: ST #0333h,DAT0
   SQUR DAT0,A      ;平方操作: A = DAT0 * DAT0
   NOP
   NOP
   NOP
   NOP
bk5: ST #0034h,DAT0
   ST #0243h,DAT1
   ST #1230h,DAT2
   ADD3 DAT0,DAT1,DAT2,DAT3    ;三数相加操作: DAT3 = DAT0 + DAT1 + DAT2
   NOP
   NOP
   NOP
   NOP
bk6: B bk0       ;循环执行
   .end
 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表