第7章汇编语言程序设计 7.1程序流程控制 7.2数据块传送 7、3定点数的基本算术运算 74长字运算和并行运算 7.5FR滤波器的DSP实现 7.6IR数字滤波器的DSP实现 7,7FFT运算的DSP实现
第7章 汇编语言程序设计 ◼ 7.1 程序流程控制 ◼ 7.2 数据块传送 ◼ 7.3 定点数的基本算术运算 ◼ 7.4 长字运算和并行运算 ◼ 7.5 FIR滤波器的DSP实现 ◼ 7.6 IIR数字滤波器的DSP实现 ◼ 7.7 FFT运算的DSP实现
71程序流程控制 7.1.1程序存储器地址生成 7.12条件操作 713分支转移 714调用与返回 715重复操作 716TMS320c54x中断系统 717堆栈的使用 返回首页
7.1 程序流程控制 ◼ 7.1.1 程序存储器地址生成 ◼ 7.1.2 条件操作 ◼ 7.1.3 分支转移 ◼ 7.1.4 调用与返回 ◼ 7.1.5 重复操作 ◼ 7.1.6 TMS320C54x中断系统 ◼ 7.1.7 堆栈的使用 返回首页
71.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条件操作 表7-1条件指令中的各种条件 条件 说明 操作符 A=0 累加器A等于0 AEO B=0 累加器B等于0 BEO A≠0 累加器A不等于0ANFQ B≠0 累加器B不等于0BNEQ A<0 累加器A小于0 ALT B<0 累加器B小于0BLT A≤0 累加器A小于等于0ALEQ B≤0 累加器B小于等于0 IBLE A≥0 累加器A大于0AGT B≥0 累加器B大于0 BGT C=1 AI进位置1c C=0 ALU进位位清0 NC TC=1 测试控制标志置1TC TC=0 测试控制标志清0NTc BC低 B信号为低电平Bo B高 B信号为高电平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 LEQ GT GEQ 回本节
表7-2 多条件指令中的条件组合 第一组 第二组 A 类 B 类 A 类 B 类 C 类 EQ OV TC C BIO NEQ NOV NTC NC NBIO LT LEQ GT GEQ 返回本节
71.3分支转移 表7-3无条件分支转移指令 指令 说明 周期数(非延迟/延 迟) BDI 用指令中给出的地址加载PC 4/2 BACC[D用指定累加器(A或B)的低16位作为地址加 载PC 6/4
7.1.3 分支转移 表7-3 无条件分支转移指令 指令 说明 周期数(非延迟/延 迟) B[D] 用指令中给出的地址加载PC 4/2 BACC[D] 用指定累加器(A或B)的低16位作为地址加 载PC 6/4
表74条件分支转移指令 周期数 (条件满足/不满 指令 说明 足) 非延迟延迟 BC[D如果指令中的条件满足,就用指令中给出的53 地址加载PC /3 BANZ[如果所选择的辅助寄存器不等于0,就用指4/2 D 令中给出的地址加载PC(用于循环) 2/2
表7-4 条件分支转移指令 指令 说明 周期数 (条件满足/不满 足) 非延迟 延迟 BC[D] 如果指令中的条件满足,就用指令中给出的 地址加载PC 5/3 3/3 BANZ[ D] 如果所选择的辅助寄存器不等于0,就用指 令中给出的地址加载PC(用于循环) 4/2 2/2
表7-5远分支转移指令 周期数 指令 说明 (非 延迟/延迟) FBDI 可以转移到由指令所给定的23位地址(C5402为 20位地址) 4/2 FBACC[可以转移到指定累加器所给定的23位地址 (C5402为20位地址) 6/4 回本节
表7-5 远分支转移指令 指令 说明 周期数 (非 延迟/延迟) FB[D] 可以转移到由指令所给定的23位地址(C5402为 20位地址) 4/2 FBACC[ D] 可以转移到指定累加器所给定的2 3位地址 (C5402为20位地址) 6/4 返回本节
714调用与返回 表7-6无条件调用与返回指令 周期数 指令 说明 〔非延迟/延 迟 CALLI]将返回地址压入堆栈,用指令中给出的地址加载PC 42 CALA将返回地址压入堆栈,用指定累加器的低16位加载PC 614 RETD]将栈顶的返回地址弹出堆栈装入PC 53 RET囗将栈顶的返回地址弹出堆栈装入FC并开放中断 5 将RTN寄存器中的值装入PC,并开放中断〔这是一种快速返回, RETFL]可以减少执行中断所用的时钟数,这对于较短的频繁的中断很重 31 要的。注意:RTN寄存器是一个不能读写的CF内部寄存器
7.1.4 调用与返回 表7-6 无条件调用与返回指令