社区导航

 

搜索
查看: 988|回复: 0

[资料分享] c2000的实验测试程序 1 指令实验(汇编程序)

[复制链接]

3404

TA的帖子

0

TA的资源

纯净的硅(初级)

Rank: 4

发表于 2018-3-18 20:33 | 显示全部楼层 |阅读模式
实验一: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

回复

使用道具 举报

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

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-27 10:17 , Processed in 0.090500 second(s), 20 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表