数字信号处理技术2.6程序存储器地址生成方式.pptVIP

  • 11
  • 0
  • 约3.06千字
  • 约 18页
  • 2020-01-29 发布于辽宁
  • 举报

数字信号处理技术2.6程序存储器地址生成方式.ppt

程序存储器地址生成方式: ? 程序存储器的内容:存放程序指令代码、参数表和立即数。 ?程序存储器地址生成后加载到程序计数器PC中,在通过PAB 可寻址64K字的空间。 ?程序地址产生器(PAGEN):包含有5个寄存器,如下: PC RC BRC RSA REA 程序地址产生逻辑PAGEN 重复寄存器 程序计数器PC: PC是一个16位寄存器,其中保存着某个内部或外部程序存储器的地址,即指向即将访问的程序存储器的地址。 加载地址到PC的几种途经: ? 复位:PC=FF80h ? 顺序执行:PC=PC+1 ? 跳转 ? 返回 ? 循环操作 ? 调用 ? 条件操作 ? 中断 分支转移(跳转): ? 执行跳转指令打断了程序执行的顺序,跳到程序存储器的某个位置去执行。 ? 当跳转指令到达流水线的执行阶段时,其后面的两个字已被取指。 跳转 无条件跳转 条件跳转 延迟D(跟在跳转指令后的一个2字或2个一字指令可 以被执行后再跳转) 非延迟(将已被读入的跟在跳转指令后 的一个2字 或2个一字指令被清除后再跳转) 延迟D 非延迟 指令 说 明 周期数 (非延迟/延迟) B[D] BACC[D] 跳到程序给出的地址 跳到累加器给出的地址 4/2 6/4 无条件跳转 条件跳转 指令 说 明 周期数 (条件满足/不满足) (非延迟/延迟) BC[D] 条件满足就跳转 5/3 3/3 BANZ[D] 当前辅助寄存器不为零就跳转 4/2 2/2 注:不延迟需在跳转前将后两个字消除,故多需2个周期 调用与返回: 当调用子程序时,中断原程序执行的顺序,转到程序存储器 的其它位置,同时把下一条指令的地址压入堆栈。 调用 无条件调用 条件调用 延迟 非延迟 延迟 非延迟 调用与返回指令举例: 例1:CALA A 例2:CALAD B 例3:CALL 3333h 例4:CALLD 1000h 例5:CC 2222h,AGT 例6:RET 例7:RETE 例8:RETF …… 对于C548来讲,有一个7位程序扩展计数器XPC, 用来选择当前的64K字页程序存储器。可以实现 长跳转和长调用指令。 FB FBACC FCALL FCALA FRET FRETE 条件操作: ? 当一个或多个条件得到满足时才执行。条件见表2.21 ? 当多重条件时,只能从第一组或第二组条件组合,见表2.22 第一组:可从A类或B类中选择一个条件,但不能从同一类中 选择两个;另外,两种条件测试的累加器必须是 同一个。 第二组:可以从A,B,C类各选择一个,但不能从同一类中 选择两个。 ? 如果条件跳转去的地方只有1~2个字的程序段,那么可以用一条 单周期条件,如: XC n,con[,con[,con]];条件满足,n=1,就执行紧随其后的 的一条指令,n=2,就执行紧随其后的的二条指令。如果条件不 满足,就执行一条或二条NOP指令。 条件操作举例: 例1:RC TC;若TC=1,则返回,否则往下 执行 例2:CC sub,BNEQ;若累加器B不等于0, 则调用sub,否则往下执行。 例3:BC new,AGT,AOV;若累加器A0 且溢出,则转至new,否则往 下执行 例4:SACCD A,*AR3+0%,ALT;若A〈0, 则A中内容移位ASM-16后存到 *AR3中 ` 例5:STRCD *AR5-,AGT;若A>0,则把T 寄存器中的内容存在*AR5中 例6:SRCCD *AR5-,AGT;若A大于0,则 把BRC中的内容存在*AR5中 重复操作: 1)重复执行单条指令:RPT和RPTZ,重复执行的 次数存在重复计数器(RC),RC是由重复指令 加载的,最大次数为65535 2)程序块重复操作:RPTB,例如: STM #99,BRC;99

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档