文档介绍:三、三、 TMS320C54X TMS320C54X 的指的指令系统令系统 1 TMS320C54x TMS320C54x 的指令集有近两百条指令,按功的指令集有近两百条指令,按功能分为如下几类: 能分为如下几类: ??算术运算指令算术运算指令??逻辑运算指令逻辑运算指令??程序控制指令程序控制指令??装入和存储指令装入和存储指令 TMS320C54x TMS320C54x 的指令集的指令集 2 一、算术运算指令一、算术运算指令算术运算指令可分为如下几类: 算术运算指令可分为如下几类: ??加法指令加法指令??减法指令减法指令??乘法指令乘法指令??乘加指令乘加指令??乘减指令乘减指令??双数双数/ /双精度指令双精度指令??特殊操作指令特殊操作指令 3定点定点 DSP DSP 中数据表示方法中数据表示方法??当它表示一个整数时,其最低位( 当它表示一个整数时,其最低位( D0 D0 )表)表示示1 1, , D1 D1 位表示位表示 2 2的的1 1次方,次高位( 次方,次高位( D14 D14 ) ) 表示表示 2 2的的 14 14方。方。??如果表示一个有符号数时,最高位( 如果表示一个有符号数时,最高位( D15 D15 ) ) 为符号位, 为符号位, 0 0表示正数, 表示正数, 1 1表示负数。例如, 表示负数。例如, 7FFFH 7FFFH 表示最大的正数表示最大的正数 32767 32767 (十进制), (十进制), 而而 0FFFFH 0FFFFH 表示最大的负数表示最大的负数-1 -1(负数用(负数用 2 2的补的补码方式显示)。码方式显示)。 4 ??当需要表示小数时,小数点的位置始终当需要表示小数时,小数点的位置始终在最高位后,而最高位( 在最高位后,而最高位( D15 D15 )表示符号)表示符号位。这样次高位( 位。这样次高位( D14 D14 )表示)表示 ,然后是,然后是 ,最低位( ,最低位( D0 D0 )表示。所以)表示。所以 4000H 4000H 表表示小数示小数 , , 1000H 1000H 表示小数表示小数 ,而,而 0001H 0001H 表示表示 16 16位定点位定点 DSP DSP 表示的最小的小表示的最小的小数(有符号) 数(有符号) 。。 5实现实现 16 16位定点加法位定点加法??‘‘ C54X C54X 中提供了多条用于加法的指令,如中提供了多条用于加法的指令,如 ADD ADD , , ADDC ADDC , , ADDM ADDM 和和 ADDS ADDS 。其中。其中 ADDS ADDS 用于无符号数的加法运算, 用于无符号数的加法运算, ADDC ADDC 用用于带进位的加法运算(如于带进位的加法运算(如 32 32位扩展精度加位扩展精度加法),而法),而 ADDM ADDM 专用于长立即数的加法。专用于长立即数的加法。 6 1 1、加法指令、加法指令 7使用使用 ADD ADD 完成加法完成加法 LD temp1, A ;将变量 temp1 装入寄存器 A ADD temp2, A ;将变量 temp2 与寄存器 A相加;结果放入 A中 STL A, temp3 ;将结果(低 16位)存入变量; temp3 中。注意:这里完成计算 temp3=temp1+temp2 , 我们没有特意考虑 temp1 和 temp2 是整数还是小数,在加法和下面的减法中整数运算和定点的小数运算都是一样的。 8利用利用 ADDS ADDS 实现实现 32 32位数据装入位数据装入 LD #0,DP ; 设置数据页指针 LD 60H,16,A ; 将60H的内容装到 A的高 16位 ADDS 61H, A ; 将61H 的内容加到 A的低 16位 DLD 60H,B ; 直接装入 32位到 B寄存器 9 2 2、、减减法法指指令令 10