15和16-DSP原理及应用第5章TMS320C54x汇编语言程序设计(第15、16次课)(讲稿).ppt
文本预览下载声明
四川大学 定点DSP的小数表示法 基于2的补码形式; 数的定标有Q法和S法; C54X为16位:1位符号位,Q个小数位和15-Q个整数位。 十进制小数的2的补码表示 正数:乘以32768; 负数:绝对值乘32768,再取反加1。 小数乘法 设字长为4位(累加器为8位),有如下小数乘法: 0.625×-0.125 【例5.7.1】求 ,数据全为小数。 a1=0.3,a2=0.2,a3=-0.4,a4=0.1 x1=0.6,x2=0.5,x3=-0.1,x4=-0.2 .title Ex_571.asm .mmregs stack .usect STACK, 10H .bss a,4 .bss x,4 .bss y,1 .def start .data table: .word 3*32768/10,2*32768/10,- 4*32768/10,1*32768/10 .word 6*32768/10,5*32768/10,-1*32768/10,-2*32768/10 浮点数的表示 包含尾数和指数两部分 如:定点数0x2000(0.25)用浮点数表示时,尾数为0x4000(0.5),指数为1,即0.5×2-1; 尾数和指数都可正可负:尾数符号表示浮点数的正负,指数的符号表示浮点数的绝对值大小。 定点数转换成浮点数 Step1: EXP A Step2: ST T, EXPONENT Step3: NORM A .title Ex_581.asm .mmregs stack .usect STACK, 100H .bss a, 2 .bss b, 2 .bss c, 2 .bss ep, 1 .bss mp, 1 .bss product, 1 .bss temp, 1 .def start .data table: .word 4*32768/10,-9*32768/10 .text start: STM #stack+100, SP MVPD table, @a MVPD table+1, @a+1 LD @a, 16, A EXP A ST T, @b NORM A STH A, @c LD @a+1, 16, A EXP A ST T, @b+1 * TM * 《DSP原理及应用》 成都理工大学工程技术学院 石坚 第5章 TMS320C54x的汇编语言程序设计 * TM 成都理工大学工程技术学院电子信息工程系 《DSP原理及应用》 授课人:石坚 (讲师) 第15、16次课 第5章 TMS320C54x的汇编语言程序设计 5.5 重复操作程序 5.6 数据块传送程序 5.7 小数运算程序 5.8 浮点运算程序 5.5 重复操作程序 .bss x, 8 STM #x, AR1 LD #0, A RPT #7 STL A,*AR1+ .bss x, 8 STM #x, AR1 RPTZ A, #7 STL A, *AR1+ 注意: ① 对x[8]中的8个元素置0,重复次数为7,即执行1次STL A,?AR1+指令后,再重复执行7次; ② RPTZ指令设定重复次数后,再对累加器清零。 【例5.5.1】对数组进行初始化,使x[8]={0,0,0,0,0,0,0,0}。 单指令重复操作程序示例: 块重复操作: 【例5.5.2】对数组x[8]中的每一元素加1。 块指令重复操作程序示例: .bss x, 8 begin: LD #1,16,B STM #7,BRC STM #x,AR4 RPTB next-1 ADD *AR4,16,B,A STH A,*AR4+ next: LD #0,B … ;设置数组空间 ;立即数1送入BH ;设置重复次数,BRC=7,循环8次 ;数组首地址x送入AR4 ;设置循环结束地址 ;数组数据左移16位与BH相加 ;存入数组结果,并修改地址 ;B清0 注 意 ① 块结束地址REA通常取程序块最后一条指令的下一条指令地址-1; ② 重复次数为7次 ③ RPTB指令可以响应中断。 5.6 数据块传送程序 5.6 数据块传送程序 5.7 小数运算程序 定点DSP的小数表示法 基于2的补码形式; 数
显示全部