收藏 分销(赏)

汇编语言程序设计TMSCXDSP结构原理及应用.pptx

上传人:a199****6536 文档编号:4169063 上传时间:2024-08-09 格式:PPTX 页数:30 大小:1.39MB 下载积分:12 金币
下载 相关 举报
汇编语言程序设计TMSCXDSP结构原理及应用.pptx_第1页
第1页 / 共30页
汇编语言程序设计TMSCXDSP结构原理及应用.pptx_第2页
第2页 / 共30页


点击查看更多>>
资源描述
湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:141概述p汇编语言源程序格式:汇编语言源程序格式:u助记符指令一般包含助记符指令一般包含4个部分,其一般组成形式为:个部分,其一般组成形式为:标号标号:助记符助记符 操作数操作数 ;注释;注释 u书写格式规则详见书写格式规则详见P138,!u标号标号所有汇编指令和大多数汇编伪指令前面都可以带有标所有汇编指令和大多数汇编伪指令前面都可以带有标号;必须从第一列开始书写;最多号;必须从第一列开始书写;最多32个字符;由字母、数字、个字符;由字母、数字、下划线和下划线和$组成,且不能以数字开头;分大小写;冒号不属组成,且不能以数字开头;分大小写;冒号不属于标号名;没有标号的源语句第一列必须为空格、星号或分于标号名;没有标号的源语句第一列必须为空格、星号或分号。号。u助记符助记符不能从第一列开始,否则被认为是标号;指令助记不能从第一列开始,否则被认为是标号;指令助记符一般用大写;汇编伪指令一般为小写,且以符一般用大写;汇编伪指令一般为小写,且以“.”开头。开头。u操作数操作数操作数列表,可以是常数、符号或常数与符号构成操作数列表,可以是常数、符号或常数与符号构成的表达式。操作数间需用的表达式。操作数间需用“,”号隔开;三种前缀形式:号隔开;三种前缀形式:#,*,。湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:162数据类型数据类型举例举例二进制二进制10011000B,01111010b(最多(最多16位)位)八进制八进制226q,1001Q,0124(多达(多达6位)位)十进制十进制略略十六进制十六进制0DH,123H,0X89,0 x0D(多达(多达4位)位)浮点数浮点数1.786e9(浮点数仅在(浮点数仅在C语言使用)语言使用)字符常数字符常数a,b字符串字符串“example”常数与字符串湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:183类型类型含义含义标号标号符号地址符号地址(可作为可作为.globalglobal,.,.refref,.,.defdef的操作数的操作数)局部标号局部标号$n,name?$n,name?(临时性的标号(临时性的标号,.newblock,.sect,.text,.data,.include,.copy,.newblock,.sect,.text,.data,.include,.copy取消)取消)符号常数符号常数.set,.struct/.tag/.endstruct.set,.struct/.tag/.endstruct(提高可读性)(提高可读性)预定义符号常数预定义符号常数$,$,寄存器符号寄存器符号,其他其他替代符号替代符号符号替代变量符号替代变量,.asg“high”,AR2,.asg“high”,AR2(可重新定义)(可重新定义)标号湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:194举例湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:215序号序号符符 号号运算操作运算操作求值顺序求值顺序1 1+-+-!取正、取负、按位求补、逻辑负取正、取负、按位求补、逻辑负 从右至左从右至左2 2*/%*/%乘法、除法、求模乘法、除法、求模从左至右从左至右3 3+-+-加法、减法加法、减法从左至右从左至右4 4 指数指数 从左到右从左到右 5 5左移、右移左移、右移从左至右从左至右6 6 =大于、大于等于大于、大于等于从左至右从左至右8 8!=!=不等于、等于不等于、等于 从左至右从左至右9 9&按位与运算按位与运算从左至右从左至右1010 按位异或运算按位异或运算从左至右从左至右1111|按位或运算按位或运算从左至右从左至右汇编语言表达式湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:236有效定义表达式:湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:257有效定义表达式湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:268堆栈操作湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:289分分 类类 指指 令令 说说 明明 无条件无条件分支转移分支转移 BD 用该指令指定的地址加载用该指令指定的地址加载PC PC BACCD 用累加器的低用累加器的低1616位指定的地址加载位指定的地址加载PC PC 条件条件分支转移分支转移 BCD 若满足指令给定条件,用该指令指定的地址加载若满足指令给定条件,用该指令指定的地址加载PC PC BANGD 若当前选择辅助寄存器不等于若当前选择辅助寄存器不等于0 0,用该指令指定的地址加载,用该指令指定的地址加载PC PC 远程远程分支转移分支转移 FBD 用该指令指定的地址加载用该指令指定的地址加载PCPC和和XPC XPC FBACCD 用累加器的低用累加器的低2323位指定的地址加载位指定的地址加载PCPC和和XPC XPC 控制程序湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:2910分分 类类 指指 令令 说说 明明 无条件无条件调用调用 CALLD 将返回的地址压入堆栈,并用该指令指定的地址加载将返回的地址压入堆栈,并用该指令指定的地址加载PC CALAD 将返回的地址压入堆栈,用累加器将返回的地址压入堆栈,用累加器A或或B指定的地址加载指定的地址加载PC 条件条件调用调用 CCD 如果满足指令给定条件,将返回的地址压入堆栈,并用该如果满足指令给定条件,将返回的地址压入堆栈,并用该 指令指定的地址加载指令指定的地址加载PC远程远程调用调用 FCALL D 将将XPC和和PC压入堆栈,并用该指令指定的地址加载压入堆栈,并用该指令指定的地址加载PC和和XPC FCALA D 将将XPC和和PC压入堆栈,用累加器的低压入堆栈,用累加器的低23位指定的地址加载位指定的地址加载 PC和和XPC 分支操作湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:3011分分 类类 指指 令令 说说 明明 无条件无条件返回返回 RETD 将堆栈顶部的返回地址加载到将堆栈顶部的返回地址加载到PC。RETED 将堆栈顶部的返回地址加载到将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。RETFD 将将RTN寄存器中的返回地址加载到寄存器中的返回地址加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。条件条件返回返回 RCD 如果满足指令给定条件,将堆栈顶部的返回地址加载到如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。远程远程返回返回 FCALL D 将堆栈顶部的值弹出加载到将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到将堆栈中下一个值弹出加载到PC。FCALA D 将堆栈顶部的值弹出加载到将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到将堆栈中下一个值弹出加载到PC,并使能可屏蔽中断。,并使能可屏蔽中断。分支操作湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:3112操作符号操作符号条条 件件说说 明明操作符号操作符号条条 件件说说 明明AEQA=0累加器累加器A等于等于0 AOVAOV=1 累加器累加器A溢出溢出 BEQB=0累加器累加器B等于等于0 BOVBOV=1累加器累加器B溢出溢出 ANEQA 0累加器累加器A不等于不等于0 ANOVAOV=0 累加器累加器A不溢出不溢出 BNEQB 0累加器累加器B不等于不等于0 BNOVBOV=0累加器累加器B不溢出不溢出 ALTA0累加器累加器A小于小于0 CC=1ALU进位位置进位位置1 BLTB0累加器累加器A大于大于0 BIOBIO低低BIO信号电平为低信号电平为低 BGTB0累加器累加器B大于大于0 NBIOBIO高高BIO信号电平为高信号电平为高 AGEQA 0累加器累加器A大于等于大于等于0 UNC无无无条件操作无条件操作 BGEQB 0累加器累加器B大于等于大于等于0 分支操作湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:3313循环操作.title Ex534.asm.mmregsstack.usectSTACK,10h.bssx,10.bssy,1table:.word1,2,3,4,5,6,7,8,9,10.defstartstart:STM#0,SWWSRSTM#stack+10h,SPCALLinitSTM#x,AR1STM#9,AR2LD#0,Aloop:ADD*AR1+,ABANZloop,*AR2-STLA,yB$init:STM#x,AR1RPT#9MVPDtable,*AR1+RET.end湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:3614算术运算程序湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:3815加法/减法指定堆栈空间指定堆栈空间为变量预留空间为变量预留空间初值序列初值序列初始化变量初始化变量设置堆栈指针设置堆栈指针利用利用MAC和和RPT求乘累加和求乘累加和湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4016算术运算湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4217湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4318重复操作程序湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4519块重复操作湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4720数据块传送程序湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:4921数据块传送程序湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5022小数运算程序p定点定点定点定点DSPDSP的小数表示法的小数表示法的小数表示法的小数表示法uu基于基于基于基于2 2的的的的补码补码补码补码形式;形式;形式;形式;uu数的数的数的数的定标定标定标定标有有有有QQ法和法和法和法和S S法;法;法;法;uuC54XC54X为为为为1616位:位:位:位:1 1位符号位,位符号位,位符号位,位符号位,QQ个小数位和个小数位和个小数位和个小数位和15-Q15-Q个整数位。个整数位。个整数位。个整数位。1616位定点位定点位定点位定点QQ法和法和法和法和S S法的表数范围法的表数范围法的表数范围法的表数范围QQ法法法法S S法法法法表数范围表数范围表数范围表数范围Q15Q15S0.15S0.15-1x0.9999695-1x0.9999695Q14Q14S1.14S1.14-2 x 1.9999390-2 x 1.9999390Q13Q13S2.13S2.13-4 x 3.9998779-4 x 3.9998779Q12Q12S3.12S3.12-8 x 7.9997559-8 x 7.9997559Q11Q11S4.11S4.11-16 x 15.9995117-16 x 15.9995117Q10Q10S5.10S5.10-32 x 31.9990124-32 x 31.9990124Q9Q9S6.9S6.9-64 x 63.9980469-64 x 63.9980469Q8Q8S7.8S7.8-128 x 127.9960938-128 x 127.9960938Q7Q7S8.7S8.7-256 x 255.9921875-256 x 255.9921875Q6Q6S9.6S9.6-512 x 511.984375-512 x 511.984375Q5Q5S10.5S10.5-1024 x 1023.96875-1024 x 1023.96875Q4Q4S11.4S11.4-2048 x 2047.9375-2048 x 2047.9375Q3Q3S12.3S12.3-4096 x 4095.875-4096 x 4095.875Q2Q2S13.2S13.2-8192 x 8191.75-8192 x 8191.75Q1Q1S14.1S14.1-16384 x 16383.5-16384 x 16383.5Q0Q0S15.0S15.0-32768 x 32767-32768 x 32767湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5123小数运算程序p定点定点定点定点DSPDSP的小数表示法的小数表示法的小数表示法的小数表示法uu基于基于基于基于2 2的的的的补码补码补码补码形式;形式;形式;形式;uu数的数的数的数的定标定标定标定标有有有有QQ法和法和法和法和S S法;法;法;法;uuC54XC54X为为为为1616位:位:位:位:1 1位符号位,位符号位,位符号位,位符号位,QQ个小数位和个小数位和个小数位和个小数位和15-Q15-Q个整数位。个整数位。个整数位。个整数位。p十进制小数的十进制小数的十进制小数的十进制小数的2 2的补码表示的补码表示的补码表示的补码表示uu正数:乘以正数:乘以正数:乘以正数:乘以3276832768;uu负数:绝对值乘负数:绝对值乘负数:绝对值乘负数:绝对值乘3276832768,再取反加,再取反加,再取反加,再取反加1 1。0.5乘以327684000H-0.54000H乘以32768绝对值部分-18000H乘以32768绝对值部分C000H取反加18000H取反加1湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5224p小数乘法小数乘法u设字长为设字长为设字长为设字长为4 4位位位位(累加器为累加器为累加器为累加器为8 8位位位位),有如下小数乘法:,有如下小数乘法:,有如下小数乘法:,有如下小数乘法:0.625-0.1250.625-0.12501011000(0.625)(-0.125)0000000000001101(-0101)1101000(-0.078125)乘积结果为乘积结果为7 7位,送入累加器;为保持乘积的位,送入累加器;为保持乘积的符号不变,必须进行符号位扩展;因而,经过符号不变,必须进行符号位扩展;因而,经过符号扩展后累加器内容为符号扩展后累加器内容为8 8位:位:1 111010001101000(-0.1865)(-0.1865)出现了冗余的符号位出现了冗余的符号位(两个符号位两个符号位)!怎么办?!怎么办?ST1ST1的的FRCTFRCT小数方式控制位,可以控制乘积小数方式控制位,可以控制乘积结果在送往累加器前是否自动左移结果在送往累加器前是否自动左移1 1位!如位!如FRCT=1FRCT=1,则可自动消去两个符号位中冗余的,则可自动消去两个符号位中冗余的一个。一个。11101000符号位扩展符号位扩展FRCT=1时时110100000.078125湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5325p【例例例例5.7.15.7.1】求求求求 ,数据全为小数,数据全为小数,数据全为小数,数据全为小数uua a1 1=0.3,a=0.3,a2 2=0.2,a=0.2,a3 3=-0.4,a=-0.4,a4 4=0.1=0.1uux x1 1=0.6,x=0.6,x2 2=0.5,x=0.5,x3 3=-0.1,x=-0.1,x4 4=-0.2=-0.2uu分析分析分析分析存储空间要求?存储空间要求?存储空间要求?存储空间要求?采用何种指令?采用何种指令?采用何种指令?采用何种指令?小数如何表示?小数如何表示?小数如何表示?小数如何表示?冗余符号位的消去:冗余符号位的消去:冗余符号位的消去:冗余符号位的消去:需预留需预留需预留需预留9 9个存储单元;个存储单元;个存储单元;个存储单元;典型的乘典型的乘典型的乘典型的乘-累加运算:累加运算:累加运算:累加运算:MACMAC与与与与RPTRPT指令结合指令结合指令结合指令结合0.3=0.3=3*32768/103*32768/10SSBXSSBXFRCTFRCT湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5426实现源代码.titletitle Ex_571.asmEx_571.asm.mmregsmmregsstackstack.usectusectSTACK,10HSTACK,10H.bssbssa,4a,4.bssbssx,4x,4.bssbssy,1y,1.defdefstartstart.datadatatable:table:.wordword3*32768/10,2*32768/10,-4*32768/10,1*32768/103*32768/10,2*32768/10,-4*32768/10,1*32768/10.wordword6*32768/10,5*32768/10,-1*32768/10,-2*32768/106*32768/10,5*32768/10,-1*32768/10,-2*32768/10.texttextstart:start:SSBXSSBXFRCTFRCTSTMSTM#a,AR1#a,AR1RPTRPT#7#7MVPDMVPDtable,*AR1+table,*AR1+STMSTM#a,AR3#a,AR3STMSTM#x,AR4#x,AR4RPTZRPTZA,#3A,#3MACMAC*AR3+,*AR4+,A*AR3+,*AR4+,A ;只能最多用到只能最多用到只能最多用到只能最多用到AR5AR5,教材代码有误,教材代码有误,教材代码有误,教材代码有误STHSTHA,yA,ydone:done:B Bdonedone.endend湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5527浮点运算p浮点数的表示浮点数的表示u包含包含包含包含尾数尾数尾数尾数和和和和指数指数指数指数两部分两部分两部分两部分u如如如如:定点数定点数定点数定点数0 x2000(0.25)0 x2000(0.25)用浮点数表示时,尾数为用浮点数表示时,尾数为用浮点数表示时,尾数为用浮点数表示时,尾数为0 x4000(0.5)0 x4000(0.5),指数为,指数为,指数为,指数为1 1,即,即,即,即0.520.52-1-1;u尾数和指数都可正可负:尾数符号表示浮点数的正尾数和指数都可正可负:尾数符号表示浮点数的正尾数和指数都可正可负:尾数符号表示浮点数的正尾数和指数都可正可负:尾数符号表示浮点数的正负,指数的符号表示浮点数的绝对值大小。负,指数的符号表示浮点数的绝对值大小。负,指数的符号表示浮点数的绝对值大小。负,指数的符号表示浮点数的绝对值大小。p定点数转换成浮点数定点数转换成浮点数uStep1:EXP AStep1:EXP AuStep2:ST T,EXPONENTStep2:ST T,EXPONENTuStep3:NORM AStep3:NORM A定点数=尾数2-指数湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5628浮点运算p浮点数转换为定点数浮点数转换为定点数浮点数转换为定点数浮点数转换为定点数uu将尾数按指数值进行左移将尾数按指数值进行左移将尾数按指数值进行左移将尾数按指数值进行左移(指数为负)或右移(指(指数为负)或右移(指(指数为负)或右移(指(指数为负)或右移(指数为正)数为正)数为正)数为正)p浮点运算举例浮点运算举例浮点运算举例浮点运算举例uu编写浮点运算程序,完成编写浮点运算程序,完成编写浮点运算程序,完成编写浮点运算程序,完成x1*x2=0.4*x1*x2=0.4*(-0.9)(-0.9)。分析:分析:分析:分析:首先确定需要分配的存储首先确定需要分配的存储首先确定需要分配的存储首先确定需要分配的存储单元单元单元单元确定需要用到的关键指令确定需要用到的关键指令确定需要用到的关键指令确定需要用到的关键指令流程图流程图流程图流程图湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5829浮点运算实现代码.titletitle Ex_581.asmEx_581.asm.mmregsmmregsstackstack.usectusectSTACK,100HSTACK,100H.bssbssa,2a,2.bssbssb,2b,2.bssbssc,2c,2.bssbssep,1ep,1.bssbssmp,1mp,1.bssbssproduct,1product,1.bssbsstemp,1temp,1.defdefstartstart.datadatatabletable:.wordword4*32768/10,-9*32768/104*32768/10,-9*32768/10.texttextstartstart:STMSTM#stack+100,SP#stack+100,SPMVPDMVPDtable,atable,aMVPDMVPDtable+1,a+1table+1,a+1LDLDa,16,Aa,16,AEXPEXPA ASTSTT,bT,bNORMNORMA ASTHSTHA,cA,cLDLDa+1,16,Aa+1,16,AEXPEXPA ASTSTT,b+1T,b+1NORMNORMA ASTHSTHA,c+1A,c+1CALLCALLMULTMULTdone:done:B BdonedoneMULT:MULT:SSBXSSBXFRCTFRCTSSBXSSBXSXMSXMLDLDb,Ab,AADDADDb+1,Ab+1,ASTLSTLA,epA,epLDLDc,Tc,TMPYMPYc+1,Ac+1,AEXPEXPA ASTSTT,tempT,tempNORMNORMA ASTHSTHA,mpA,mpLDLDtemp,Atemp,AADDADDep,Aep,ASTLSTLA,epA,epNEGNEGA ASTLSTLA,tempA,tempLDLDtemp,Ttemp,TLDLDmp,16,Amp,16,ANORMNORMA ASTHSTHA,productA,productRETRET.end.end湖南理工学院湖南理工学院 胡文静胡文静 博士博士13:33:5930本章小结u汇编语言程序格式汇编语言程序格式汇编语言程序格式汇编语言程序格式u常数与字符串、标号常数与字符串、标号常数与字符串、标号常数与字符串、标号u汇编语言表达式汇编语言表达式汇编语言表达式汇编语言表达式u常用程序结构常用程序结构常用程序结构常用程序结构u算术运算算术运算算术运算算术运算
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服