文档详情

第四章DSP指令系统.ppt

发布:2024-05-27约9.89千字共53页下载文档
文本预览下载声明

(1)假设一个循环缓冲区的容量是R,那么就存在一个整数N(N是满足2NR的最小整数)如:31个字(R=31)的循环缓冲区必须从最低5位为0的地址开始,即:地址:xxxxxxxxxxx00000这时N=52N=25=3231STM#1FH,BK(2)使用循环寻址需遵循的3条规则:#循环寻址的最低地址应放在2N的边界上,循环缓冲区的容量应小于2N;##寻址步长应小于或等于循环缓冲区的容量;###第一次在循环缓冲区内寻址时,辅助寄存器必须指向循环缓冲区中的元素。(3)循环寻址的寻址方法:If0≤index+stepBK:;index就是辅助寄存器的低N位的值index=index+stepElseifindex+step≥BK:index=index+step-BKElseifindex+step0:index=index+step+BK§4.2程序存储器地址生成方式程序地址生成器(PAGEN)组成:??程序计数器(PC)??重复计数器(RC)(用于单条指令重复执行)??块重复计数器(BRC)??块重复起始地址寄存器(RSA)??块重复结束地址寄存器(REA)将程序存储器地址加载到程序计数器的途径1、分支转移操作功能:可执行分支转移,循环控制以及子程序操作。方法:通过分支转移指令改写PC,可以改变程序的流向。分类:有条件转移和无条件转移;延迟和不延迟操作。指令说明:A.条件分支转移BC[D]pmad,cond[,cond[,cond]]如果指令中规定的条件得到满足,就用指令中所给出的地址加载PC;BANZ[D]pmad,Sind如果当前辅助寄存器不等于0,就用指令中规定的地址加载PC。B.无条件分支转移B[D]pmad;用指令中给出的地址加载PCBACC[D]src;用指定的累加器的低16位作为地址加载PC。无条件转移和有条件转移指令例4-2:1)BANZ2000H,*AR3-(指令执行前)(指令执行后)PC=1000HPC=2000HAR3=5HAR3=4H2)BANZ2000H,*AR3-(指令执行前)(指令执行后)PC=1000HPC=1002HAR3=0HAR3=FFFFH2.调用和返回功能:当采用调用指令进行子程序或函数调用时,DSP中断当前运行的程序,转移到程序存储器的其它地址继续运行。方法:转移前,原程序的下条指令的地址被压入堆栈,而在返回时则将这个地址弹出至PC,使被中断了的原程序能继续执行。分类:有条件调用与返回和无条件调用与返回;延迟和不延迟操作。指令说明:有条件调用和无条件调用指令有条件返回和无条件返回指令3.条件指令中的条件判断在条件分支转移和条件调用与返回指令中,所涉及的条件:例4-3:1)BC2000H,AGT(执行前)(执行后)A=0000000053HA=0000000053HPC=1000HPC=2000H2)BC2000H,AGT(2字指令)(执行前)(执行后)A=FFFFFFFF53HA=FFFFFFFF53HPC=1000HPC=1002H(1)第一组:可以从A类中选一个条件,同时可以从B类中选择一个条件。但是不能从同一类中选择两个条件。另外,两种条件测试的累加器必须是同一个。例如:可以同时测试AGT和AOV,但不能同时测试AGT和BGT。(2)第二组:可以在A、B、C三类中各选择一个条件,但不能从同一类中选择两个条件。例如:可以在A、B、C三类中各选择一个条件,但不能从

显示全部
相似文档