第7章汇编语言程序设计 71程序流程控制 72数据块传送 73定点数的基本算术运算 74长字运算和并行运算 75FR滤波器的DSP实现 76IR数字滤波器的DSP实现 77FFT运算的DSP实现
第7章 汇编语言程序设计 ◼ 7.1 程序流程控制 ◼ 7.2 数据块传送 ◼ 7.3 定点数的基本算术运算 ◼ 7.4 长字运算和并行运算 ◼ 7.5 FIR滤波器的DSP实现 ◼ 7.6 IIR数字滤波器的DSP实现 ◼ 7.7 FFT运算的DSP实现
7.1程序流程控制 7.11程序存储器地址生成 712条件操作 713分支转移 714调用与返回 71.5重复操作 716TMS320c54x中断系统 7.17堆栈的使用 返回首页
7.1 程序流程控制 ◼ 7.1.1 程序存储器地址生成 ◼ 7.1.2 条件操作 ◼ 7.1.3 分支转移 ◼ 7.1.4 调用与返回 ◼ 7.1.5 重复操作 ◼ 7.1.6 TMS320C54x中断系统 ◼ 7.1.7 堆栈的使用 返回首页
7.1.1程序存储器地址生成 程序存储器中存放指令代码、参数表和立即数。程序地址 产生逻辑( PAGEN),包括以下5个寄存器(如图7-1所 示): 程序计数器(Pc) 重复计数器(RC); 块重复计数器(BRc); 块重复起始地址寄存器(RSA) 块重复结束地址寄存器(REA)
7.1.1 程序存储器地址生成 ◼ 程序存储器中存放指令代码、参数表和立即数。程序地址 产生逻辑(PAGEN), 包括以下5个寄存器(如图7-1所 示): ◼ 程序计数器(PC); ◼ 重复计数器(RC); ◼ 块重复计数器(BRC); ◼ 块重复起始地址寄存器(RSA); ◼ 块重复结束地址寄存器(REA)
程序地址产生逻辑 PAGEN PC 重复寄存器 RC BRC RSA REA 图7-1程序地址产生逻辑( PAGEN)寄存器 返回本
图7-1 程序地址产生逻辑(PAGEN)寄存器 返回本节
712条件操作表71条件指令中的各种条件 条件 说明 操作符 A=0 累加器A等于0 AEQ B=0 累加器B等于0 BEO A≠0 累加器A不等于0ANEQ B≠0 累加器B不等于0BNEQ 累加器A小于0 ALT B<0 累加器B小于0 BLT A≤0 累加器A小于等于0ALEQ B≤0 累加器B小于等于0BLFQ A≥0 累加器A大于0 AGT B≥0 累加器B大于0 BGT C=1 ALU进位位置1 C ALU进位位清0 TC=1 测试控制标志置1TC TC=0 测试控制标志清0|NTc BO低 B信号为低电平Bo B0高 BD信号为高电平NBo 无 无条件操作 UNC
7.1.2 条件操作 表7-1 条件指令中的各种条件
表7-2多条件指令中的条件组合 第一组 第二组 A类B类A类B类C类 EQ OV TC C BIO NEQ NOV NTC NC NBI LT LEO GT GEQ 返回本
表7-2 多条件指令中的条件组合 第一组 第二组 A 类 B 类 A 类 B 类 C 类 EQ OV TC C BIO NEQ NOV NTC NC NBIO LT LEQ GT GEQ 返回本节
7.13分支转移 表7-3无条件分支转移指令 指令 说明 周期数(非延迟/烻 迟) BDI 用指令中给出的地址加载PC 4/2 用指定累加器(A或B)的低16位作为地址加 BACD载PC 6/4
7.1.3 分支转移 表7-3 无条件分支转移指令 指令 说明 周期数(非延迟/延 迟) B[D] 用指令中给出的地址加载PC 4/2 BACC[D] 用指定累加器(A或B)的低16位作为地址加 载PC 6/4
表7-4条件分支转移指令 周期数 (条件满足/不满 指令 说明 足) 非延迟延迟 BCID 如果指令中的条件满足,就用指令中给出的 地址加载PC 5/3 BAN[如果所选择的铺助寄存器不等于0,就用指42 2/2 D] 的地址 于循环)
表7-4 条件分支转移指令 指令 说明 周期数 (条件满足/不满 足) 非延迟 延迟 BC[D] 如果指令中的条件满足,就用指令中给出的 地址加载PC 5/3 3/3 BANZ[ D] 如果所选择的辅助寄存器不等于0,就用指 令中给出的地址加载PC(用于循环) 4/2 2/2
表7-5远分支转移指令 周期数 指令 说明 (非 延迟延迟) 可以转移到由指令所给定的23位地址(C5402为 FBD 20位地址) 4/2 FBACO[可以转移到指定累加器所给定的23位地址 6/4 DI (C5402为20位地址) 返回本
表7-5 远分支转移指令 指令 说明 周期数 (非 延迟/延迟) FB[D] 可以转移到由指令所给定的23位地址(C5402为 20位地址) 4/2 FBACC[ D] 可以转移到指定累加器所给定的2 3位地址 (C5402为20位地址) 6/4 返回本节
714调用与返回 表7-6无条件调用与返回指令 周期数 指令 说明 〔非延迟延 迟 CAL]将返回地址压入堆栈,用指令中给出的地址加载FC CALAD将返回地址压入堆栈,用指定累加器的低16位加载PC RET四将栈顶的返回地址弹出堆栈装入PC 655 RTED]将栈顶的返回地址弹出堆栈装入PC,并开放中断 将RTN寄存器中的值装入PC,并开放中断〔这是一种快速返回, RTFD可以减少执行中断所用的时钟数,这对于较短的、频繁的中断很重 31 要的。注意:RTN寄存器是一个不能读写的CFU内部寄存器
7.1.4 调用与返回 表7-6 无条件调用与返回指令