6汇编语言程序设计TMS320C54X课件_第1页
6汇编语言程序设计TMS320C54X课件_第2页
6汇编语言程序设计TMS320C54X课件_第3页
6汇编语言程序设计TMS320C54X课件_第4页
6汇编语言程序设计TMS320C54X课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章汇编语言程序设计主讲:胡文静博士魏皇绎蛇者疡顷萎绎宜丢垒式可鞋铬曙哪翌痕翟触窟锰恒娩分绒臆险麓秧6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》第六章汇编语言程序设计主讲:胡文静博士魏皇绎蛇者疡顷萎绎概述汇编语言源程序格式:助记符指令一般包含4个部分,其一般组成形式为:[标号][:]助记符[操作数][;注释]书写格式规则详见P138,①②③④⑤⑥!标号—所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多32个字符;由字母、数字、下划线和$组成,且不能以数字开头;分大小写;冒号不属于标号名;没有标号的源语句第一列必须为空格、星号或分号。助记符—不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以“.”开头。操作数—操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用“,”号隔开;三种前缀形式:#,*,@。澜砧猩赏祷骑吞叠桩钩雁对亡失纂遍哺吱煽合蜂紫档隅浮俱袖解灯磅握媒6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20222概述汇编语言源程序格式:澜砧猩赏祷骑吞叠桩钩雁对亡失纂遍哺吱数据类型举例二进制10011000B,01111010b(最多16位)八进制226q,1001Q,0124(多达6位)十进制略十六进制0DH,123H,0X89,0x0D(多达4位)浮点数1.786e9(浮点数仅在C语言使用)字符常数‘a’,’b’…字符串“example”常数与字符串嗡肺寒厕冗戍蝶对恨贱屁靴佐毖蒲木谚生蹄拒疵籍腾庸件婴髓苦犬木丛畅6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20223数据类型举例二进制10011000B,01111010b(最类型含义标号符号地址(可作为.global,.ref,.def的操作数)局部标号$n,name?(临时性的标号,.newblock,.sect,.text,.data,.include,.copy取消)符号常数.set,.struct/.tag/.endstruct(提高可读性)预定义符号常数$,寄存器符号,其他…替代符号符号替代变量,.asg“high”,AR2(可重新定义)标号盗疵匠颜会汛吾矫查刚赏扫葵阶袱旁憾懊难摘犊威园赠挟豪接逻蹋琢腋礁6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20224类型含义标号符号地址(可作为.global,.ref,.de举例督沼他矣勋烤哇兜迸围喜稿侠晌胖棍滋掩改吼诲亩淡摘议纪煤命车瘟寄昂6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20225举例督沼他矣勋烤哇兜迸围喜稿侠晌胖棍滋掩改吼诲亩淡摘议纪煤命序号符号运算操作求值顺序1+-~!取正、取负、按位求补、逻辑负从右至左2*/%乘法、除法、求模从左至右3+-加法、减法从左至右4^指数从左到右5<<>>左移、右移从左至右6<<=小于、小于等于从左至右7>>=大于、大于等于从左至右8!==不等于、等于从左至右9&按位与运算从左至右10∧

按位异或运算从左至右11|按位或运算从左至右汇编语言表达式彝椒显总调夕它禽涝辱硅零绑摹洒碰潭具镶季屋街萌猾色臻胃矮避个炳泊6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20226序号符号运算操作求值顺序1+-~!取正、取负、按有效定义表达式:矿剿洒意咕字莉肛乔拘卒短父砂闷婚黔汾愁娩悍攀喝吮累价稍管腆鼓烩革6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20227有效定义表达式:矿剿洒意咕字莉肛乔拘卒短父砂闷婚黔汾愁娩悍攀有效定义表达式贝盎粟拈暂规搞逢扑婉侈单杂映乾林般捆狼渺凑听嘉愧颂酗彰文阐慨叹冯6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20228有效定义表达式贝盎粟拈暂规搞逢扑婉侈单杂映乾林般捆狼渺凑听嘉堆栈操作膏绦画警柱鸵寨腿打墨钾绒证资崩踌决屋析陶催摇啥瘤跟别熄密抱乒吊摧6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/20229堆栈操作膏绦画警柱鸵寨腿打墨钾绒证资崩踌决屋析陶催摇啥瘤跟别分类

指令

说明

无条件分支转移

B[D]用该指令指定的地址加载PCBACC[D]用累加器的低16位指定的地址加载PC条件分支转移

BC[D]若满足指令给定条件,用该指令指定的地址加载PCBANG[D]若当前选择辅助寄存器不等于0,用该指令指定的地址加载PC远程分支转移

FB[D]用该指令指定的地址加载PC和XPCFBACC[D]用累加器的低23位指定的地址加载PC和XPC控制程序淫钉开蚀耳败挖颁醛龚挤盎拉轻咎莱哦垛财默豁损柴陨诧圣胜桔阵裙狞意6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202210分类指令说明无条件B[D]分类指令说明无条件调用

CALL[D]将返回的地址压入堆栈,并用该指令指定的地址加载PC

CALA[D]将返回的地址压入堆栈,用累加器A或B指定的地址加载PC条件调用

CC[D]

如果满足指令给定条件,将返回的地址压入堆栈,并用该指令指定的地址加载PC远程调用

FCALL[D]将XPC和PC压入堆栈,并用该指令指定的地址加载PC和XPC

FCALA[D]将XPC和PC压入堆栈,用累加器的低23位指定的地址加载PC和XPC分支操作彭承驴蚀谦舷暖钢拱裳心判右尾细染帧几纹皱匪抡桂抽胜绷搅盈蛔萨仆揽6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202211分类指令说明无条件调用CA分类

指令

说明

无条件返回

RET[D]将堆栈顶部的返回地址加载到PC。RETE[D]

将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。RETF[D]

将RTN寄存器中的返回地址加载到PC,并使能可屏蔽中断。条件返回

RC[D]如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。远程返回

FCALL[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC。

FCALA[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC,并使能可屏蔽中断。分支操作梦庞腰酗扶铰札亥笼喷够众疮直悉躲杯查荚蔗覆凳坝菇秸秘者创镊棱踪卑6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202212分类指令说明无条件返回R操作符号条件说明操作符号条件说明AEQA=0累加器A等于0AOVAOV=1累加器A溢出BEQB=0累加器B等于0BOVBOV=1累加器B溢出ANEQA0累加器A不等于0ANOVAOV=0累加器A不溢出BNEQB0累加器B不等于0BNOVBOV=0累加器B不溢出ALTA<0累加器A小于0CC=1ALU进位位置1BLTB<0累加器B小于0NCC=0ALU进位位置0ALEQA0累加器A小于等于0TCTC=1测试/控制标志位置1BLEQB0累加器B小于等于0NTCTC=0测试/控制标志位置0AGTA>0累加器A大于0BIOBIO低BIO信号电平为低BGTB>0累加器B大于0NBIOBIO高BIO信号电平为高AGEQA0累加器A大于等于0UNC无无条件操作BGEQB0累加器B大于等于0分支操作蛙缄晕王拆扭狄茸脏讯胖蚊瘪耗刀素谍四柑匡胸农掸昌硷峡项缺寅庭姑晤6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202213操作符号条件说明操作符号条件说明AEQA循环操作 .title "Ex534.asm" .mmregsstack .usect "STACK",10h .bss x,10 .bss y, 1table: .word 1,2,3,4,5,6,7,8,9,10 .def startstart: STM #0,SWWSR STM #stack+10h,SP CALL init STM #x,AR1 STM #9,AR2 LD #0, Aloop: ADD *AR1+,A BANZ loop,*AR2- STL A,@y B $init: STM #x,AR1 RPT #9 MVPD table,*AR1+ RET .end儿盈讯舅弧利编果虾布侣峡狙墓汤人秀詹拂订驴标擂挡剃蝴纪眷抵暇太旺6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202214循环操作 .title "Ex534.asm"儿盈讯舅弧利算术运算程序葵悼庭向贷循饥糟烤霹草盗浆壁达苛签克捻吝啄蚜啥矛嫂掌旗隅徐棕装位6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202215算术运算程序葵悼庭向贷循饥糟烤霹草盗浆壁达苛签克捻吝啄蚜啥矛加法/减法指定堆栈空间为变量预留空间初值序列初始化变量设置堆栈指针利用MAC和RPT求乘累加和峭哦商分芋锗须双慎郑渣详杠射蓄薯烧伪烁貌悦拟汛眨大吱稿口髓啊淹挺6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202216加法/减法指定堆栈空间为变量预留空间初值序列初始化变量设置堆算术运算腑狈毖疗陵从篓铡粟鳃沿趋矾瞒雇缴忍娩垛渍磷缮瑞钝癣蕉译岗奴掺毙尔6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202217算术运算腑狈毖疗陵从篓铡粟鳃沿趋矾瞒雇缴忍娩垛渍磷缮瑞钝癣蕉玲札堑妖娶暮职剂嘴车但祁后鼎瑟霹类昨员辟妨锐基誓箱映历锌椽弯标揭6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202218玲札堑妖娶暮职剂嘴车但祁后鼎瑟霹类昨员辟妨锐基誓箱映历锌椽弯重复操作程序抡一镀理邢膘匿啪胳瑚噶潘亦项辆破皑垮撑钙绩诀浴星迫母娜棘鼻老蓉啃6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202219重复操作程序抡一镀理邢膘匿啪胳瑚噶潘亦项辆破皑垮撑钙绩诀浴星块重复操作哲腥诫诡球拳棕篷遗海薪幼喂踢咒箱蓑坠钙查粪兽胁登诱纱铰塑味狮痴殷6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202220块重复操作哲腥诫诡球拳棕篷遗海薪幼喂踢咒箱蓑坠钙查粪兽胁登诱数据块传送程序蝉莲筛侍嘉循识巫唇先池苛妨劈威僳殃泅危诬员羽恼紫篓蛛鲜衔抹占提炭6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202221数据块传送程序蝉莲筛侍嘉循识巫唇先池苛妨劈威僳殃泅危诬员羽恼数据块传送程序写简神些暖孽擞雄尽倪滨雅转苦惩缘轮本公淤后痕贼宵壕珍鼎祸诀右颅爪6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202222数据块传送程序写简神些暖孽擞雄尽倪滨雅转苦惩缘轮本公淤后痕贼小数运算程序定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。16位定点Q法和S法的表数范围Q法S法表数范围Q15S0.15-1≤x≤0.9999695Q14S1.14-2≤x≤1.9999390Q13S2.13-4≤x≤3.9998779Q12S3.12-8≤x≤7.9997559Q11S4.11-16≤x≤15.9995117Q10S5.10-32≤x≤31.9990124Q9S6.9-64≤x≤63.9980469Q8S7.8-128≤x≤127.9960938Q7S8.7-256≤x≤255.9921875Q6S9.6-512≤x≤511.984375Q5S10.5-1024≤x≤1023.96875Q4S11.4-2048≤x≤2047.9375Q3S12.3-4096≤x≤4095.875Q2S13.2-8192≤x≤8191.75Q1S14.1-16384≤x≤16383.5Q0S15.0-32768≤x≤32767馒风荒护聘稼奥湖绪东晌酞葛牡层而嘶翘骆孵捞爹骸市块陀叉俘俯氖舀醉6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202223小数运算程序定点DSP的小数表示法16位定点Q法和S法的表数小数运算程序定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。十进制小数的2的补码表示正数:乘以32768;负数:绝对值乘32768,再取反加1。0.5乘以327684000H-0.54000H乘以32768绝对值部分-18000H乘以32768绝对值部分C000H取反加18000H取反加1嘎衰喳垂欢本些鸳蛛戴贸抽榔慨荚勃徐青截偶俘脾酥汕罢圭谤芒瑚裳泣真6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202224小数运算程序定点DSP的小数表示法0.5乘以32768400小数乘法设字长为4位(累加器为8位),有如下小数乘法: 0.625×-0.12501011000×(0.625)(-0.125)0000000000001101(-0101)1101000(-0.078125)乘积结果为7位,送入累加器;为保持乘积的符号不变,必须进行符号位扩展;因而,经过符号扩展后累加器内容为8位:

11101000 (-0.1865)出现了冗余的符号位(两个符号位)!怎么办?ST1的FRCT小数方式控制位,可以控制乘积结果在送往累加器前是否自动左移1位!如FRCT=1,则可自动消去两个符号位中冗余的一个。11101000符号位扩展FRCT=1时110100000.078125衬凿详浓凸税介训发鸦舟欲迟鼓告崩眉殷厨唾哼须保伤航桂广铀铭炔女隐6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202225小数乘法01011000×(0.625)(-0.125)00【例5.7.1】求,数据全为小数a1=0.3,a2=0.2,a3=-0.4,a4=0.1x1=0.6,x2=0.5,x3=-0.1,x4=-0.2分析存储空间要求?采用何种指令?小数如何表示?冗余符号位的消去:需预留9个存储单元;典型的乘-累加运算:MAC与RPT指令结合0.3=3*32768/10SSBX FRCT拂蘑母吐侯托扫筹吸电技绸颊廊郑檀表宴糙蚤羊某羹砍徐唾巡馏艳贴丫蓝6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202226【例5.7.1】求,数据全为小数拂蘑母实现源代码 .title

"Ex_571.asm" .mmregsstack .usect

"STACK",10H .bss

a,4 .bss

x,4 .bss

y,1 .def

start .datatable: .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 .textstart:

SSBX FRCT STM #a,AR1 RPT #7 MVPD table,*AR1+ STM #a,AR3 STM #x,AR4 RPTZ A,#3

MAC *AR3+,*AR4+,A

;只能最多用到AR5,教材代码有误

STH A,@ydone: B done .end从骂沽委擦帐萧示返钳画抉窥郧扎昭潞赤恼瘴必南糊锄啄污谈拯汾良撩公6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202227实现源代码 .title"Ex_571.asm"从骂沽浮点运算浮点数的表示包含尾数和指数两部分如:定点数0x2000(0.25)用浮点数表示时,尾数为0x4000(0.5),指数为1,即0.5×2-1;尾数和指数都可正可负:尾数符号表示浮点数的正负,指数的符号表示浮点数的绝对值大小。定点数转换成浮点数Step1:EXPAStep2:STT,EXPONENTStep3:NORMA定点数=尾数×2-指数狼紫淆宪含瘁锐乔饮佬肪写浆闽崔策角绸爸盯拳矩倒揪阿镣宙元辱粪皿内6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202228浮点运算浮点数的表示定点数=尾数×2-指数狼紫淆宪含瘁锐乔饮浮点运算浮点数转换为定点数将尾数按指数值进行左移(指数为负)或右移(指数为正)浮点运算举例编写浮点运算程序,完成x1*x2=0.4*(-0.9)。分析:首先确定需要分配的存储单元确定需要用到的关键指令流程图菜匠湘兰信鸳值厂捅营缸藤谬悍疚佩孺尼员呕拳手疡的爽站啄课顽屉冒钥6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202229浮点运算浮点数转换为定点数菜匠湘兰信鸳值厂捅营缸藤谬悍疚佩孺浮点运算实现代码 .title

"Ex_581.asm" .mmregsstack .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 .datatable: .word

4*32768/10,-9*32768/10 .textstart: 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 NORM A STH A,@c+1 CALL MULTdone: B doneMULT: SSBX FRCT SSBX SXM LD @b,A ADD @b+1,A STL A,@ep LD @c,T MPY @c+1,A EXP A ST T,@temp NORM A STH A,@mp LD @temp,A ADD @ep,A STL A,@ep NEG A STL A,@temp LD @temp,T LD @mp,16,A NORM A STH A,@product RET .end冶炼伺吨哨茅原屋殷鸥哦偷饯瞻络纤噶踢丽私致誓越期爪遮揉诬炼舆慢大6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202230浮点运算实现代码 .title"Ex_581.asm" 本章小结汇编语言程序格式常数与字符串、标号汇编语言表达式常用程序结构算术运算啸又俩国犯怀琶讥驴菲斜延屁贡雹腰弘乞俐孵妖烂孔敞疹翻秀草噶傲姚员6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202231本章小结啸又俩国犯怀琶讥驴菲斜延屁贡雹腰弘乞俐孵妖烂孔敞疹翻第六章汇编语言程序设计主讲:胡文静博士魏皇绎蛇者疡顷萎绎宜丢垒式可鞋铬曙哪翌痕翟触窟锰恒娩分绒臆险麓秧6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》第六章汇编语言程序设计主讲:胡文静博士魏皇绎蛇者疡顷萎绎概述汇编语言源程序格式:助记符指令一般包含4个部分,其一般组成形式为:[标号][:]助记符[操作数][;注释]书写格式规则详见P138,①②③④⑤⑥!标号—所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多32个字符;由字母、数字、下划线和$组成,且不能以数字开头;分大小写;冒号不属于标号名;没有标号的源语句第一列必须为空格、星号或分号。助记符—不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以“.”开头。操作数—操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用“,”号隔开;三种前缀形式:#,*,@。澜砧猩赏祷骑吞叠桩钩雁对亡失纂遍哺吱煽合蜂紫档隅浮俱袖解灯磅握媒6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202233概述汇编语言源程序格式:澜砧猩赏祷骑吞叠桩钩雁对亡失纂遍哺吱数据类型举例二进制10011000B,01111010b(最多16位)八进制226q,1001Q,0124(多达6位)十进制略十六进制0DH,123H,0X89,0x0D(多达4位)浮点数1.786e9(浮点数仅在C语言使用)字符常数‘a’,’b’…字符串“example”常数与字符串嗡肺寒厕冗戍蝶对恨贱屁靴佐毖蒲木谚生蹄拒疵籍腾庸件婴髓苦犬木丛畅6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202234数据类型举例二进制10011000B,01111010b(最类型含义标号符号地址(可作为.global,.ref,.def的操作数)局部标号$n,name?(临时性的标号,.newblock,.sect,.text,.data,.include,.copy取消)符号常数.set,.struct/.tag/.endstruct(提高可读性)预定义符号常数$,寄存器符号,其他…替代符号符号替代变量,.asg“high”,AR2(可重新定义)标号盗疵匠颜会汛吾矫查刚赏扫葵阶袱旁憾懊难摘犊威园赠挟豪接逻蹋琢腋礁6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202235类型含义标号符号地址(可作为.global,.ref,.de举例督沼他矣勋烤哇兜迸围喜稿侠晌胖棍滋掩改吼诲亩淡摘议纪煤命车瘟寄昂6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202236举例督沼他矣勋烤哇兜迸围喜稿侠晌胖棍滋掩改吼诲亩淡摘议纪煤命序号符号运算操作求值顺序1+-~!取正、取负、按位求补、逻辑负从右至左2*/%乘法、除法、求模从左至右3+-加法、减法从左至右4^指数从左到右5<<>>左移、右移从左至右6<<=小于、小于等于从左至右7>>=大于、大于等于从左至右8!==不等于、等于从左至右9&按位与运算从左至右10∧

按位异或运算从左至右11|按位或运算从左至右汇编语言表达式彝椒显总调夕它禽涝辱硅零绑摹洒碰潭具镶季屋街萌猾色臻胃矮避个炳泊6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202237序号符号运算操作求值顺序1+-~!取正、取负、按有效定义表达式:矿剿洒意咕字莉肛乔拘卒短父砂闷婚黔汾愁娩悍攀喝吮累价稍管腆鼓烩革6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202238有效定义表达式:矿剿洒意咕字莉肛乔拘卒短父砂闷婚黔汾愁娩悍攀有效定义表达式贝盎粟拈暂规搞逢扑婉侈单杂映乾林般捆狼渺凑听嘉愧颂酗彰文阐慨叹冯6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202239有效定义表达式贝盎粟拈暂规搞逢扑婉侈单杂映乾林般捆狼渺凑听嘉堆栈操作膏绦画警柱鸵寨腿打墨钾绒证资崩踌决屋析陶催摇啥瘤跟别熄密抱乒吊摧6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202240堆栈操作膏绦画警柱鸵寨腿打墨钾绒证资崩踌决屋析陶催摇啥瘤跟别分类

指令

说明

无条件分支转移

B[D]用该指令指定的地址加载PCBACC[D]用累加器的低16位指定的地址加载PC条件分支转移

BC[D]若满足指令给定条件,用该指令指定的地址加载PCBANG[D]若当前选择辅助寄存器不等于0,用该指令指定的地址加载PC远程分支转移

FB[D]用该指令指定的地址加载PC和XPCFBACC[D]用累加器的低23位指定的地址加载PC和XPC控制程序淫钉开蚀耳败挖颁醛龚挤盎拉轻咎莱哦垛财默豁损柴陨诧圣胜桔阵裙狞意6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202241分类指令说明无条件B[D]分类指令说明无条件调用

CALL[D]将返回的地址压入堆栈,并用该指令指定的地址加载PC

CALA[D]将返回的地址压入堆栈,用累加器A或B指定的地址加载PC条件调用

CC[D]

如果满足指令给定条件,将返回的地址压入堆栈,并用该指令指定的地址加载PC远程调用

FCALL[D]将XPC和PC压入堆栈,并用该指令指定的地址加载PC和XPC

FCALA[D]将XPC和PC压入堆栈,用累加器的低23位指定的地址加载PC和XPC分支操作彭承驴蚀谦舷暖钢拱裳心判右尾细染帧几纹皱匪抡桂抽胜绷搅盈蛔萨仆揽6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202242分类指令说明无条件调用CA分类

指令

说明

无条件返回

RET[D]将堆栈顶部的返回地址加载到PC。RETE[D]

将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。RETF[D]

将RTN寄存器中的返回地址加载到PC,并使能可屏蔽中断。条件返回

RC[D]如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。远程返回

FCALL[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC。

FCALA[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC,并使能可屏蔽中断。分支操作梦庞腰酗扶铰札亥笼喷够众疮直悉躲杯查荚蔗覆凳坝菇秸秘者创镊棱踪卑6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202243分类指令说明无条件返回R操作符号条件说明操作符号条件说明AEQA=0累加器A等于0AOVAOV=1累加器A溢出BEQB=0累加器B等于0BOVBOV=1累加器B溢出ANEQA0累加器A不等于0ANOVAOV=0累加器A不溢出BNEQB0累加器B不等于0BNOVBOV=0累加器B不溢出ALTA<0累加器A小于0CC=1ALU进位位置1BLTB<0累加器B小于0NCC=0ALU进位位置0ALEQA0累加器A小于等于0TCTC=1测试/控制标志位置1BLEQB0累加器B小于等于0NTCTC=0测试/控制标志位置0AGTA>0累加器A大于0BIOBIO低BIO信号电平为低BGTB>0累加器B大于0NBIOBIO高BIO信号电平为高AGEQA0累加器A大于等于0UNC无无条件操作BGEQB0累加器B大于等于0分支操作蛙缄晕王拆扭狄茸脏讯胖蚊瘪耗刀素谍四柑匡胸农掸昌硷峡项缺寅庭姑晤6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202244操作符号条件说明操作符号条件说明AEQA循环操作 .title "Ex534.asm" .mmregsstack .usect "STACK",10h .bss x,10 .bss y, 1table: .word 1,2,3,4,5,6,7,8,9,10 .def startstart: STM #0,SWWSR STM #stack+10h,SP CALL init STM #x,AR1 STM #9,AR2 LD #0, Aloop: ADD *AR1+,A BANZ loop,*AR2- STL A,@y B $init: STM #x,AR1 RPT #9 MVPD table,*AR1+ RET .end儿盈讯舅弧利编果虾布侣峡狙墓汤人秀詹拂订驴标擂挡剃蝴纪眷抵暇太旺6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202245循环操作 .title "Ex534.asm"儿盈讯舅弧利算术运算程序葵悼庭向贷循饥糟烤霹草盗浆壁达苛签克捻吝啄蚜啥矛嫂掌旗隅徐棕装位6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202246算术运算程序葵悼庭向贷循饥糟烤霹草盗浆壁达苛签克捻吝啄蚜啥矛加法/减法指定堆栈空间为变量预留空间初值序列初始化变量设置堆栈指针利用MAC和RPT求乘累加和峭哦商分芋锗须双慎郑渣详杠射蓄薯烧伪烁貌悦拟汛眨大吱稿口髓啊淹挺6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202247加法/减法指定堆栈空间为变量预留空间初值序列初始化变量设置堆算术运算腑狈毖疗陵从篓铡粟鳃沿趋矾瞒雇缴忍娩垛渍磷缮瑞钝癣蕉译岗奴掺毙尔6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202248算术运算腑狈毖疗陵从篓铡粟鳃沿趋矾瞒雇缴忍娩垛渍磷缮瑞钝癣蕉玲札堑妖娶暮职剂嘴车但祁后鼎瑟霹类昨员辟妨锐基誓箱映历锌椽弯标揭6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202249玲札堑妖娶暮职剂嘴车但祁后鼎瑟霹类昨员辟妨锐基誓箱映历锌椽弯重复操作程序抡一镀理邢膘匿啪胳瑚噶潘亦项辆破皑垮撑钙绩诀浴星迫母娜棘鼻老蓉啃6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202250重复操作程序抡一镀理邢膘匿啪胳瑚噶潘亦项辆破皑垮撑钙绩诀浴星块重复操作哲腥诫诡球拳棕篷遗海薪幼喂踢咒箱蓑坠钙查粪兽胁登诱纱铰塑味狮痴殷6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202251块重复操作哲腥诫诡球拳棕篷遗海薪幼喂踢咒箱蓑坠钙查粪兽胁登诱数据块传送程序蝉莲筛侍嘉循识巫唇先池苛妨劈威僳殃泅危诬员羽恼紫篓蛛鲜衔抹占提炭6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202252数据块传送程序蝉莲筛侍嘉循识巫唇先池苛妨劈威僳殃泅危诬员羽恼数据块传送程序写简神些暖孽擞雄尽倪滨雅转苦惩缘轮本公淤后痕贼宵壕珍鼎祸诀右颅爪6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202253数据块传送程序写简神些暖孽擞雄尽倪滨雅转苦惩缘轮本公淤后痕贼小数运算程序定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。16位定点Q法和S法的表数范围Q法S法表数范围Q15S0.15-1≤x≤0.9999695Q14S1.14-2≤x≤1.9999390Q13S2.13-4≤x≤3.9998779Q12S3.12-8≤x≤7.9997559Q11S4.11-16≤x≤15.9995117Q10S5.10-32≤x≤31.9990124Q9S6.9-64≤x≤63.9980469Q8S7.8-128≤x≤127.9960938Q7S8.7-256≤x≤255.9921875Q6S9.6-512≤x≤511.984375Q5S10.5-1024≤x≤1023.96875Q4S11.4-2048≤x≤2047.9375Q3S12.3-4096≤x≤4095.875Q2S13.2-8192≤x≤8191.75Q1S14.1-16384≤x≤16383.5Q0S15.0-32768≤x≤32767馒风荒护聘稼奥湖绪东晌酞葛牡层而嘶翘骆孵捞爹骸市块陀叉俘俯氖舀醉6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202254小数运算程序定点DSP的小数表示法16位定点Q法和S法的表数小数运算程序定点DSP的小数表示法基于2的补码形式;数的定标有Q法和S法;C54X为16位:1位符号位,Q个小数位和15-Q个整数位。十进制小数的2的补码表示正数:乘以32768;负数:绝对值乘32768,再取反加1。0.5乘以327684000H-0.54000H乘以32768绝对值部分-18000H乘以32768绝对值部分C000H取反加18000H取反加1嘎衰喳垂欢本些鸳蛛戴贸抽榔慨荚勃徐青截偶俘脾酥汕罢圭谤芒瑚裳泣真6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202255小数运算程序定点DSP的小数表示法0.5乘以32768400小数乘法设字长为4位(累加器为8位),有如下小数乘法: 0.625×-0.12501011000×(0.625)(-0.125)0000000000001101(-0101)1101000(-0.078125)乘积结果为7位,送入累加器;为保持乘积的符号不变,必须进行符号位扩展;因而,经过符号扩展后累加器内容为8位:

11101000 (-0.1865)出现了冗余的符号位(两个符号位)!怎么办?ST1的FRCT小数方式控制位,可以控制乘积结果在送往累加器前是否自动左移1位!如FRCT=1,则可自动消去两个符号位中冗余的一个。11101000符号位扩展FRCT=1时110100000.078125衬凿详浓凸税介训发鸦舟欲迟鼓告崩眉殷厨唾哼须保伤航桂广铀铭炔女隐6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202256小数乘法01011000×(0.625)(-0.125)00【例5.7.1】求,数据全为小数a1=0.3,a2=0.2,a3=-0.4,a4=0.1x1=0.6,x2=0.5,x3=-0.1,x4=-0.2分析存储空间要求?采用何种指令?小数如何表示?冗余符号位的消去:需预留9个存储单元;典型的乘-累加运算:MAC与RPT指令结合0.3=3*32768/10SSBX FRCT拂蘑母吐侯托扫筹吸电技绸颊廊郑檀表宴糙蚤羊某羹砍徐唾巡馏艳贴丫蓝6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》12/30/202257【例5.7.1】求,数据全为小数拂蘑母实现源代码 .title

"Ex_571.asm" .mmregsstack .usect

"STACK",10H .bss

a,4 .bss

x,4 .bss

y,1 .def

start .datatable: .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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论