欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    DSP基于某CCS向量文件资料编写和总汇编语言设计实验.docx

    • 资源ID:4585768       资源大小:71.52KB        全文页数:12页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DSP基于某CCS向量文件资料编写和总汇编语言设计实验.docx

    1、DSP基于某CCS向量文件资料编写和总汇编语言设计实验实验三、向量文件的编写及多个文件的链接一、 实验目的1. 编写复位向量文件vectors.asm。2. 多个文件的链接。3. 编写复位和中断向量文件。4. 仿真外部中断。二、 实验条件lab3.asm和lab3.cmd文件三、 实验步骤1. 双击桌面上CCS 2图标,启动CCS集成开发环境。2. 建立新工程,并将lab3.asm和lab3.cmd添加入工程。3. 按照3.6.4节中的例子,编写复位向量文件vectors.asm并将该文件添加入工程。4. 为了将lab3和vectors两个文件相链接,对lab3.asm和lab3.cmd文件进

    2、行必要的修改。5. 用菜单命令对工程的所有文件进行汇编、编译、链接生成输出文件。6. 加载程序并单步执行lab3.out文件,仔细观察复位向量的作用。7. 参看教材4.4节中的内容,仿真外部中断INT2:在lab3.asm中,增加一段中断服务子程序INT_2.dat,其内容将累加器A变负。修改lab3.asm,开放INT2中断。修改vectors.asm,增加INT2中断向量。编写仿真外部中断用的数据文件,文件名为INT_2.dat,每隔100个时钟周期向CPU发出一次中断请求,直到仿真结束。对工程中所有文件重新汇编、编译、链接生成新的输出文件。执行前,从Tool菜单中选择,用鼠标选中要连接P

    3、in Name再按 connect按钮,选择输入文件INT_2与INT2引脚相连,单击打开按钮。加载程序,并利用单步方式执行程序,注意观察中断向量在程序执行过程中的作用。四、 实验程序* lab3.asm y= a1*x1+a2*x2+a3*x3+a4*x4 *.title lab3.asm.mmregs ;定义存储器映像寄存器STACK .usect STACK,10h ;给堆栈分配16个存储单元.bss x,4 ;给x分配4个存储单元 .bss a,4 .bss y,1.def start ;定义标号start .def INT_2 .data ;定义数据段.mmregs table: .

    4、word 1,2,3,4 ;为标号table开始的.word 8,6,4,2 ;8个存储单元赋初值.text ;定义文本段start: STM #STACK+10h,SP ;设置堆栈指针 STM #table,AR1 ;AR1指向table的首地址STM #x,AR2 ;AR2指向x的首地址STM #7,AR0 ;将AR0赋7LD #40h,A ;将立即数40h加载到A累加器STM #0,SWWSR ;SWWSR置0,不插等待周期RSBX INTM ;开放全部可屏蔽中断STM #04h,IMR ;开放INT2中断loop: LD *AR1+,A ;将AR1中数据加载到A累加器STL A,*AR

    5、2+ ;将A低16位送往AR2寄存器所指地址BANZ loop,*AR0- ;重复执行7次CALL SUM ;调用SUM子程序end: B end ;循环等待SUM: STM #a,AR3 ; AR3指向a的首地址 STM #x,AR4 ; AR4指向x的首地址 RPTZ A,#3 ; 将A清零,重复执行下条指令3次 MAC *AR3+,*AR4+,A ;相乘累加存入A累加器 STL A,*AR2 ;将A的低16位送往AR2所指向的地址RET ;子程序返回INT_2: NEG A ;将A累加器变负RETE ;开中断,从中断返回 .end ;程序结束五、实验现象每隔100个时钟周期来一次中断,累

    6、加器A中的数值变负六、实验体会学习了如何设置中断,及源程序和向量文件的链接,编写仿真外部中断的数据文件,更直观的认识到程序是如何执行中断的。实验四 汇编语言程序设计一、实验目的通过实验熟悉指令系统,初步掌握汇编语言程序设计的基本方法和技巧。二、实验条件在第五章基础上进行。三、实验内容1.编写实验小数乘法累加的汇编语言程序lab4a.asm。其中a=0.1,0.2,0.3,0.4,0.5。2.将第五章例9和例10组合成一个程序lab4b.asm,实现对一个数组x5=1000h,2000h,3000h,5000h进行初始化,并利用块重复操作指令将该数组每个元素加一。3.将第五章中的例20或例21,

    7、分别编写成完整的除法运算程序lab4c1.asm和lab4c2.asm。4.编写实现两个64位数相加的汇编语言程序lab4d.asm。5.在设计好上述每一个汇编语言程序的同时,均应设计相应的链接命令文件lab4x.cmd,并利用CCS进行调试。四、实验程序lab4a* lab4a.asm y= a1*x1+a2*x2+a3*x3+a4*x4+a5*x5 * .title lab4a.asm .mmregsSTACK .usect STACK,10h ;给堆栈分配16个存储单元 .bss x,5 ;给x分配4个存储单元 .bss a,5 .bss y,1 .def start .data tab

    8、le:.word 1*32768/10,2*32768/10,3*32768/10,4*32768/10,5*32768/10 ; 为标号table开始的10个存储单元赋初值。.word 1*32768/10,2*32768/10,3*32768/10,4*32768/10,5*32768/10; 分别是0.1,0.2,0.3,0.4,0.5, 0.1,0.2,0.3,0.4,0.5。 .text ;定义文本段start: SSBX FRCT ;将小数方式位状态寄存器置一 STM #STACK+10h,SP ; 设置堆栈指针 STM #table,AR1 ; AR1指向table的首地址 ST

    9、M #x,AR2 ; AR2指向x的首地址 STM #9,AR0 LD #0,Aloop: LD *AR1+,A ; 将AR1中数据加载到A累加器 STL A,*AR2+ ; 将A低16位送往AR2寄存器所指地址 BANZ loop,*AR0- ; 重复执行9次CALL SUM ;调用SUM子程序end: B end ;循环等待SUM: STM #a,AR3 ; AR3指向a的首地址 STM #x,AR4 ; AR4指向x的首地址 RPTZ A,#4 ; 将A清零,重复执行下条指令4次 MAC *AR3+,*AR4+,A ;相乘累加存入A累加器 STH A,y ;将A的高16位送往yRET ;

    10、子程序返回.end ;程序结束lab4b.title lab4b.asm.mmregs ;定义存储器映像寄存器 .bss x,5 ;给x分配5个存储单元 .def start ;定义标号start .data ;定义数据段table .word 1000h,2000h,3000h,4000h,5000h ; 为标号table开始的5个存储单元赋初值。 .text ;定义文本段start: STM #x,AR2 ; AR2指向x的首地址 RPT #4 ;重复下条指令4次 MVPD table,*AR2+ ;重复传递共5个数据next: LD #1,16,B ;将1左移16位加载到B累加器 STM

    11、 #4,BRC ;将块重复计数器赋值为4 STM #x,AR4 ; AR4指向x的首地址 RPTB end-1 ;循环执行下面语句,end-1为结束地址 ADD *AR4,16,B,A ;将AR4中数据左移16位加B赋给A STH A,*AR4+ ; 将A高16位送往AR4寄存器所指地址end: B end ;循环等待 .end ;程序结束lab4c1;*;* lab4c1.ASM * ;* .title lab4c1.asm .def startSTACK .usect STACK,100 ;给堆栈分配100个存储单元 .bss num,1 .bss den,1 .bss quot,1 .d

    12、atatable: .word -128;4*32768/10 ; 为标号table开始的4个存储单元赋初值 .word 1024;-8*32768/10 ;分别是-128,0.4,1024,-0.8 .textstart: STM #num,AR1 RPT #1 ;重复执行下条语句1次 MVPD table,*AR1+ ;传送2个数据至分子 、分母单元 LD den,16,A ;将分母移到A累加器(31-16) MPYA num ;(num)*(A(32-16)移到B,获取商的符号 ABS A ;分母取绝对值 STH A,den ;分母绝对值存回原处 LD num,16,A ;分子移到A(3

    13、2-16) ABS A ; 分子取绝对值 RPT #14 ;15次减法循环,完成除法 SUBC den,A ;有条件减法 XC 1,BLT ;如果B0(商是负数),则需要变号 NEG A ;将A累加器变负 STL A,quot ;将A的低16位送往quotdone: B done .endlab4c2;*;* lab4c2.ASM * ;* .title lab4c2.asm .def startSTACK .usect STACK,100 ;给堆栈分配100个存储单元 .bss num,1 .bss den,1 .bss quot,1 .datatable: .word 16384;66*3

    14、2768/100 ; 为标号table开始的4个存储单元赋初值 .word 512;-33*32768/100 ;分别是16384,0.66,512,-0.33 .textstart: STM #num,AR1 RPT #1 ;重复执行下条语句1次 MVPD table,*AR1+ ;传送2个数据至分子 、分母单元 LD den,16,A ;将分母移到A累加器(31-16) MPYA num ;(num)*(A(32-16)移到B,获取商的符号 ABS A ;分母取绝对值 STH A,den ;分母绝对值存回原处 LD num,A ;分子移到A ABS A ; 分子取绝对值 SUB den,A ;从累加器A中减去den中数据 BC next,ALT ;条件分支转移,A0,则执行next子程序 ADD den,A ; 在累加器A中加上den中数据 RPT #15 ;重复下条语句15次 SUBC den,A ;有条件减法 B next1 ;执行next1子程序next: LD num,16,A ;分子移到A(32-16) ABS A ; 分子取绝对值 RPT #14 ;重复下条语句14次 SUBC den,A ;有条件减法next1: XC 1,BLT ;如果B()除数时的除法运算,及两个64位数相加如何处理进位问题。


    注意事项

    本文(DSP基于某CCS向量文件资料编写和总汇编语言设计实验.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开