- 1、本文档共189页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP原理及应用总复习
C54x读/写操作占用总线情况 ST0 反映寻址要求和运行中间状态 ST1 反映寻址要求、计算的初始设置、I/O及中断控制 PMST 主要设定并控制处理器的工作方式,反映其工作状态。 助记符指令语法格式 [label][:] mnemonic [operand list] [;comment] [标号区][:] 助记符区 [操作数区] [;注释区] 助记符指令语法格式: [标号区][:] 助记符 [操作数] [;注释区] SYM1 .set 2 ;符号SYM1=2 start: LD # SYM1,AR1 ;将2装入AR1 .word 016H ;初始化字( 016H ) RET ;返回 算数运算指令 逻辑运算指令 程序控制指令 装载和存储(数据传送)指令 例:计算 ,主要程序如下: .bss x, 10 ;为变量分配11个字的空间 .bss y, 1 STM #x,AR1 ;设置数据段的首地址 STM #9,AR2 ;AR2作为循环计数器,初值为9,执行10次加法 LD #0,A ;累加器清0 loop:ADD *AR1+,A ;累加运算,并修改地址 BANZ loop, *AR2- ;若计数值不为0,则循环,并计数值减1 ;若计数值为0,则结束循环 STL A,@y ;累加和存入y中 例:对一个数组进行初始化:x[5]={0,0,0,0,0}。 .bss x,5 STM #x,AR1 LD #0,A RPT #4 STL A,*AR1+ 利用RPTZ代替LD和RPT .bss x,5 STM #x,AR1 RPTZ A,#4 STL A,*AR1+ 例:对数组x[5]中的每个元素加1。 .bss x,5 start: LD #1,16,B STM #4,BRC STM #x,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+ next: LD #0,B … 例:对数组x[5]={1,2,3,4,5}初始化。 例:将数据存储器中的数组x[20]复制到数组y[20]。 start: STM #x,AR1 ;将目的地首地址赋给AR1 PRT #19 MVPD table,*AR1+ ;程序到数据 STM #x,AR2 ;将x的首地址存入AR2 STM #y,AR3 ;将y的首地址存入AR3 RPT #19 MVDD *AR2+,*AR3+ ;数据到数据;将地址x开 ; 始的20个值复制到地址y ;开始的20个单元 end: B end .end 练习:计算y=x1×a1+x2×a2 例:用并行运算指令编写计算z=x+y和f=d+e的程序 .title “example.asm” .mmregs stack: .usect “STACK”,10H .bss x,3 .bss d,3 .def start .data table: .word 0123H,1027H,0,1020H,0345H,0 .text start: STM #0,SWWSR STM #stack+10H,SP STM #x,AR1
文档评论(0)