版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 第第4章章 TMS320C54x汇编语言程序设计汇编语言程序设计 4.1 TMS320C54x汇编语言的基本概念汇编语言的基本概念 4.2 TMS320C54x汇编语言程序设计的基本方法汇编语言程序设计的基本方法 4.3 TMS320C54x汇编语言程序的编辑、汇编与链接过程汇编语言程序的编辑、汇编与链接过程 4.4 汇编器汇编器 4.5 链接器链接器 4.6 Simulator的使用方法的使用方法 4.7 汇编程序举例汇编程序举例 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计
2、汇编语言程序设计 4.1 TMS320C54x汇编语言的基本概念汇编语言的基本概念 4.1.1 TMS320C54x汇编语句的组成汇编语句的组成 汇编语言源程序中的每一行语句都可以由四部分组汇编语言源程序中的每一行语句都可以由四部分组成,句法格式如下:成,句法格式如下: 标号标号: 助记符助记符 操作数操作数 ;注释;注释 其中,其中, 为选项为选项 书写规则如下:书写规则如下:第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 (1) 所有语句必须以标号、空格、星号所有语句必须以标号、空格、星号(*)或分号开始。或分号开始。 (2) 所有包含伪指令的语句
3、必须在一行内完全指定。所有包含伪指令的语句必须在一行内完全指定。 (3) 若使用标号,则标号必须从第一列开始。若使用标号,则标号必须从第一列开始。 (4) 语句的每部分必须用一个或多个空格分开,语句的每部分必须用一个或多个空格分开,Tab键与空格等效。键与空格等效。 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 1标号标号 所有指令或大多数伪指令前面都可带有语句标号,所有指令或大多数伪指令前面都可带有语句标号,供本程序的其他部分或其他程序调用。标号是任选项,供本程序的其他部分或其他程序调用。标号是任选项,标号后可以加也可以不加冒号标号后可以加也可以不
4、加冒号(:)。标号必须从第一列。标号必须从第一列开始,其最多可长达开始,其最多可长达32个字符个字符(AZ,az,09,_和和$),但第一个字符不能是数字。引用标号时,标号,但第一个字符不能是数字。引用标号时,标号的大小写必须一致,标号的值就是段程序计数器的大小写必须一致,标号的值就是段程序计数器(SPC)的当前值。若不用标号,则第一个字母必须为空格、的当前值。若不用标号,则第一个字母必须为空格、分号或星号分号或星号(*)。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 2助记符助记符 助记符跟在标号的后面。助记符不能从第一列开助记符跟在标号的后面。助
5、记符不能从第一列开始。助记符包含指令、伪指令、宏命令和宏调用。作始。助记符包含指令、伪指令、宏命令和宏调用。作为指令,一般用大写;伪指令和宏命令则以句号为指令,一般用大写;伪指令和宏命令则以句号(.)开开始,且为小写。伪指令可以形成常数和变量,当用它始,且为小写。伪指令可以形成常数和变量,当用它控制汇编和链接过程时,可以不占存储空间。控制汇编和链接过程时,可以不占存储空间。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 3操作数操作数 操作数是指指令中的操作数或伪指令中定义的内操作数是指指令中的操作数或伪指令中定义的内容。操作数之间必须用逗号容。操作数
6、之间必须用逗号(,)分开。有的指令无操作分开。有的指令无操作数,如指令数,如指令NOP。指令中的操作数可以是寄存器、地。指令中的操作数可以是寄存器、地址、常数、算术或逻辑表达式。址、常数、算术或逻辑表达式。 4注释注释 注释从分号注释从分号(;)开始,可以放在指令或伪指令的后开始,可以放在指令或伪指令的后面,也可以单独占一行或数行。注释是任选项。如果面,也可以单独占一行或数行。注释是任选项。如果注释从第注释从第1列开始,也可以用星号列开始,也可以用星号(*)。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.1.2 TMS320C54x汇编语言中的常
7、数、字符串、符号汇编语言中的常数、字符串、符号与表达式与表达式 1常数和字符串常数和字符串 常数就是指令中出现的那些固定值。汇编器支持常数就是指令中出现的那些固定值。汇编器支持7种类型的常数:二进制数、十进制数、八进制数、十种类型的常数:二进制数、十进制数、八进制数、十六进制数、字符常数、字符串和浮点常数。六进制数、字符常数、字符串和浮点常数。 二进制数:二进制数字二进制数:二进制数字(0或或1),其后缀为,其后缀为B(或或b)。 十进制数:用数字十进制数:用数字09表示,无后缀。表示,无后缀。 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 八进制数
8、:用数字八进制数:用数字07表示,其后缀为表示,其后缀为Q或或q。 十六进制数:用数字十六进制数:用数字09及字母及字母AF表示,其表示,其后缀为后缀为h或或H。 字符常数:是由单引号字符常数:是由单引号()括起来的括起来的1或或2个字个字符组成的字符串,每个字符在内部表示为符组成的字符串,每个字符在内部表示为8位位ASCII码。码。 字符串:是由双引号字符串:是由双引号(“”)括起来的一串字符。括起来的一串字符。 浮点常数:是一串十进制数,可带小数点、分浮点常数:是一串十进制数,可带小数点、分数和指数部分。数和指数部分。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计
9、汇编语言程序设计 2符号符号 符号用作标号、常数和替代符号。符号名可以是符号用作标号、常数和替代符号。符号名可以是长达长达200个字符的字母个字符的字母(AZ,az)、数字、数字(09)加上加上$或下划线或下划线(_)。第一个字符不能是数字,符号中间不能。第一个字符不能是数字,符号中间不能有空格。符号分大小写,例如:有空格。符号分大小写,例如:Abc。 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 3表达式表达式 1) 运算顺序运算顺序 影响表达式运算顺序的三个主要因素是:圆括号、影响表达式运算顺序的三个主要因素是:圆括号、优先级和同级运算顺序。优先
10、级和同级运算顺序。 圆括号内的表达式最先运算,不能用圆括号内的表达式最先运算,不能用 或或 来代来代替替( )。 TMS320C54x汇编器的优先级使用与汇编器的优先级使用与C语言类似,语言类似,优先级高的运算先执行。优先级高的运算先执行。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 2) 表达式溢出表达式溢出 在汇编的过程中执行算术运算后,汇编器将检查溢在汇编的过程中执行算术运算后,汇编器将检查溢出状态。一旦出现上溢和下溢,它都发出值被截断了出状态。一旦出现上溢和下溢,它都发出值被截断了的警告信息,但在做乘法时,汇编器不检查溢出状态。的警告信息,但
11、在做乘法时,汇编器不检查溢出状态。 3) 条件表达式条件表达式 汇编器在任何表达式中都支持关系操作,这对条件汇编器在任何表达式中都支持关系操作,这对条件汇编特别有用。关系运算符如下:汇编特别有用。关系运算符如下: = (等于等于) = (等于等于)!= (不等于不等于) = (大于等于大于等于) (大于大于) (小于小于)第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.1.3 TMS320C54x伪指令伪指令 TMS320C54x伪指令给程序提供数据、控制汇编伪指令给程序提供数据、控制汇编过程。具体实现以下任务:过程。具体实现以下任务: (1) 将
12、数据和代码汇编到特定的段。将数据和代码汇编到特定的段。 (2) 为未初始化的变量保留存储空间。为未初始化的变量保留存储空间。 (3) 控制展开列表的形式。控制展开列表的形式。 (4) 存储器初始化。存储器初始化。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 (5) 汇编条件块。汇编条件块。(6) 定义全局变量。定义全局变量。(7) 指定汇编器可以获得宏的特定库。指定汇编器可以获得宏的特定库。(8) 检查符号调试信息。检查符号调试信息。 常用的伪指令如表常用的伪指令如表4-3所示。所示。第第4 4章章 TMS320C54xTMS320C54x汇编语言程
13、序设计汇编语言程序设计 表表4-3 常常 用用 伪伪 指指 令令 伪指令伪指令句句 法法作作 用用title.title “string”标题名。例如:标题名。例如:.title “example.asm”end.end结束伪指令,放在汇编语言源程序的最后结束伪指令,放在汇编语言源程序的最后text.text段起点段起点包含可执行程序代码包含可执行程序代码data.data段起点段起点包含初始化数据包含初始化数据 value1,valuen设置设置16位无符号整型量位无符号整型量word.word value1,valuen设置设置16位带符号整型量位带符号整型量第第4 4章章
14、TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 伪指令伪指令句句 法法作作 用用bss.bss 符号,字数符号,字数为未初始化的变量保留存储空间为未初始化的变量保留存储空间sect.sect “段名段名”,段起点段起点建立包含代码和数据的自定义段建立包含代码和数据的自定义段usect符号符号 .usect “段段名名” ,字数,字数为未初始化的变量保留存储空间的自定义段为未初始化的变量保留存储空间的自定义段def.def 变量变量1,变量变量n在当前模块中定义,并可在别的模块中使用在当前模块中定义,并可在别的模块中使用ref.ref 变量变量1,变量变量n在当前模块中
15、使用,但在别的模块中定义在当前模块中使用,但在别的模块中定义第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 伪指令伪指令句句 法法作作 用用global.global变量变量1,变量变量n可替代可替代.def和和.ref伪指令伪指令mmregs.mmregs定义存储器映像寄存器的替代符号定义存储器映像寄存器的替代符号第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 1段定义伪指令段定义伪指令段定义伪指令有以下五个:段定义伪指令有以下五个: .bss(未初始化段未初始化段) .data(已初始化段已初始化段) .s
16、ect(已初始化段已初始化段) .text(已初始化段已初始化段) .usect(未初始化段未初始化段)第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 1) 未初始化段未初始化段 .bss和和 .usect命令建立未初始化段。未初始化段就是命令建立未初始化段。未初始化段就是TMS320C54x存储器中的保留空间,它通常被定位在存储器中的保留空间,它通常被定位在RAM区。在目标文件中,这些段中没有确切内容,在区。在目标文件中,这些段中没有确切内容,在程序运行时,可以利用这些存储空间存放变量,变量一程序运行时,可以利用这些存储空间存放变量,变量一般存放于数
17、据存储器区域中。这两条命令的句法如下:般存放于数据存储器区域中。这两条命令的句法如下: .bss 符号,字数符号,字数 符号符号 .usect “段名段名”,字数,字数第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 2) 已初始化段已初始化段 .text、.data和和 .sect命令建立已初始化段。已初始命令建立已初始化段。已初始化段包括可执行代码或已初始化的数据。在目标文件化段包括可执行代码或已初始化的数据。在目标文件中,这些段中都有确切内容,当加载程序时再将这些中,这些段中都有确切内容,当加载程序时再将这些内容放到内容放到TMS320C54x的存
18、储器中。每个初始化段都的存储器中。每个初始化段都可以重新定位,也可以引用在其他段中定义的符号,可以重新定位,也可以引用在其他段中定义的符号,链接器会自动处理段间的相互引用。这三条命令的句链接器会自动处理段间的相互引用。这三条命令的句法如下:法如下: .text 段起点段起点 .data 段起点段起点 .sect 段名段名”,段起点,段起点第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 .text后是汇编语言程序的正文。经汇编后,后是汇编语言程序的正文。经汇编后,.text后的是可执行程序代码,一般存放于程序存储器区域后的是可执行程序代码,一般存放于程序
19、存储器区域中。中。 .data后是已初始化数据,有后是已初始化数据,有int和和word两种数据两种数据形式。由命令文件可以将定义的数据存放于程序或数形式。由命令文件可以将定义的数据存放于程序或数据存储器中。据存储器中。 .sect建立包含代码和数据的自定义段,常用于定建立包含代码和数据的自定义段,常用于定义中断向量表。义中断向量表。 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 2常数初始化伪指令常数初始化伪指令 常数初始化伪指令如表常数初始化伪指令如表4.3.3所示。所示。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇
20、编语言程序设计 4.1.4 TMS320C54x宏命令宏命令 TMS320C54x汇编器支持宏语言。宏命令是源程汇编器支持宏语言。宏命令是源程序中具有独立功能的一段程序代码,它可以根据用户序中具有独立功能的一段程序代码,它可以根据用户的需要,由用户创建自己的指令。宏命令一经定义,的需要,由用户创建自己的指令。宏命令一经定义,便可在以后的程序中多次调用,从而可以简化和缩短便可在以后的程序中多次调用,从而可以简化和缩短源程序。源程序。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 1宏定义宏定义 宏命令可以在源程序的任何位置定义,但必须在宏命令可以在源程序
21、的任何位置定义,但必须在宏调用之前先定义好。宏定义也可以嵌套。定义如下:宏调用之前先定义好。宏定义也可以嵌套。定义如下: 宏命令名宏命令名 .macro ; 宏体宏体 ;.endm第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 2调用调用 宏命令定义好之后,就可以在源程序中将宏命令宏命令定义好之后,就可以在源程序中将宏命令名作为指令来调用这个宏了。格式如下:名作为指令来调用这个宏了。格式如下: 宏命令名宏命令名第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 3宏展开宏展开 当源程序中调用宏命令时,汇编时就将宏命
22、令展当源程序中调用宏命令时,汇编时就将宏命令展开。在宏展开时,汇编器将实际参数传递给形式参数,开。在宏展开时,汇编器将实际参数传递给形式参数,再用宏定义替代宏调用语句,并对其进行汇编。上例再用宏定义替代宏调用语句,并对其进行汇编。上例的宏展开如下:的宏展开如下: 1 100000 1000!LDabc,A 100001 0000!ADD def,A 100002 0000!ADD ghi,A 100003 8000!STL A,adr第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.2 TMS320C54x汇编语言程序设计的汇编语言程序设计的基本方法
23、基本方法 DSP的软件开发一般有以下几种方式:的软件开发一般有以下几种方式:(1) 直接编写汇编语言源程序;直接编写汇编语言源程序;(2) 编写编写C语言程序;语言程序;(3) 混合编程混合编程(既有既有C代码,又含汇编代码代码,又含汇编代码)。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.2.1 TMS320C54x汇编语言源程序的完整结构汇编语言源程序的完整结构 汇编语言源程序中,以汇编语言源程序中,以 .asm为程序的扩展名,程为程序的扩展名,程序员用序员用“段段”伪指令来组织程序的结构。程序一般由伪指令来组织程序的结构。程序一般由数据段、
24、堆栈段和代码段组成。在前面我们介绍了五数据段、堆栈段和代码段组成。在前面我们介绍了五个段定义伪指令,个段定义伪指令,.data用于存放有初值的数据用于存放有初值的数据块;块;.usect用于为堆栈保留一块存储空间;用于为堆栈保留一块存储空间;.text用于设用于设置代码段。另外,置代码段。另外,.bss用于为变量保留一块存储空用于为变量保留一块存储空间;间;.sect常用于定义中断向量表。常用于定义中断向量表。 程序的基本结构有四种:顺序结构、分支结构、程序的基本结构有四种:顺序结构、分支结构、循环结构和子程序结构。循环结构和子程序结构。第第4 4章章 TMS320C54xTMS320C54x
25、汇编语言程序设计汇编语言程序设计 4.2.2 顺序结构程序顺序结构程序 顺序结构是最基本、最简单的程序结构形式,程序顺序结构是最基本、最简单的程序结构形式,程序中的语句或结构被连续执行。中的语句或结构被连续执行。 【例例1】 试编制程序,求出下列公式中试编制程序,求出下列公式中z的值。的值。 z=(x+y)8-w 源程序编制如下:源程序编制如下:* ex41.asm z=(x+y)*8-w *第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 .title ex41.asm .mmregsSTACK .usect“STACK”,10H ; 开辟堆栈空开辟堆
26、栈空 间间 .bss x ,1 ; 为变量分配为变量分配4个字的空间个字的空间 .bss y ,1 .bss w ,1 .bss z ,1 .def start .data 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 table: .word 6,7,9 .text start: STM #0 ,SWWSR ; 零等待状态零等待状态 STM #STACK+10H,SP ; 设置堆栈指针设置堆栈指针 STM #x,AR1 ; AR1指向指向x RPT # 2 ; 从程序存储器传送从程序存储器传送3个值至数据存储器个值至数据存储器 MVPD table
27、,*AR1+ LD x,A 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 ADD y,A ; A=x+y LD A,3 ; A=(x+y)*8 SUB w,A ; A=(x+y)*8-w STL A,zend: B end .end第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.2.3 分支结构程序分支结构程序 程序的分支主要是靠条件转移指令来实现的。程序的分支主要是靠条件转移指令来实现的。TMS320C54x具有丰富的程序控制与转移指令,利用具有丰富的程序控制与转移指令,利用这些指令可以执行分支转移、循
28、环控制以及子程序操这些指令可以执行分支转移、循环控制以及子程序操作。分支转移指令作。分支转移指令(如如B、BACC、BC等等)通过改写通过改写PC,以改变程序的流向。分支结构也称条件结构。以改变程序的流向。分支结构也称条件结构。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 【例例2】 试编制程序,求一个数的绝对值,并送回原处。试编制程序,求一个数的绝对值,并送回原处。源程序编制如下:源程序编制如下:* ex42.asm ABS of positive or negative * .title ex42.asm .mmregs第第4 4章章 TMS32
29、0C54xTMS320C54x汇编语言程序设计汇编语言程序设计 STACK .usect STACK,10H ; 开辟堆栈空间开辟堆栈空间 .bss x,1 ; 为变量分配一个字的空间为变量分配一个字的空间 .def start .data table: .word -7 .text 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 start: STM #0,SWWSR ; 零等待状态零等待状态 STM #STACK+10H,SP ; 设置堆栈指针设置堆栈指针 STM #x,AR1 MVPD table,*AR1 LD *AR1,A BC end,AG
30、ET ; 若若A0,则转至,则转至end,否则,否则往下执行往下执行 ABS A STL A,xend: B end .end 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.2.4 循环结构程序循环结构程序 循环结构程序设计主要用于某些需要重复进行的循环结构程序设计主要用于某些需要重复进行的操作,它简化程序,节约内存。操作,它简化程序,节约内存。 循环结构程序的设计可分为设置循环初始状态、循环结构程序的设计可分为设置循环初始状态、循环体和循环控制条件三部分。循环体和循环控制条件三部分。 循环初始状态主要是指设置循环次数的计数初值,循环初始状态主要
31、是指设置循环次数的计数初值,以及其他为能使循环体正常工作而设置的初始状态等以及其他为能使循环体正常工作而设置的初始状态等(比如缓冲区首地址比如缓冲区首地址)。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 循环体是循环操作循环体是循环操作(重复执行重复执行)部分,包括循环的工部分,包括循环的工作部分及修改部分。循环的工作部分是实现程序功能作部分及修改部分。循环的工作部分是实现程序功能的主要程序段;循环的修改部分是指当程序循环执行的主要程序段;循环的修改部分是指当程序循环执行时,对一些参数时,对一些参数(如地址、变量如地址、变量)的有规律的修正。的有规律
32、的修正。 循环控制部分是循环程序设计的关键。每个循环循环控制部分是循环程序设计的关键。每个循环程序必须选择一个控制循环程序运行和结束的条件。程序必须选择一个控制循环程序运行和结束的条件。 使用循环指令使用循环指令BANZ(当辅助寄存器不为当辅助寄存器不为0时转移时转移)执行循环计数和操作是十分方便的。执行循环计数和操作是十分方便的。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 【例例3】 试编制程序,在试编制程序,在4项乘积项乘积aixi(i=1,2,3,4)中找出最大值,并存放在累加器中找出最大值,并存放在累加器A中。中。 源程序编制如下:源程序编
33、制如下: .title ex43.asm .mmregs STACK .usect STACK,10H .bss a,4 .bss x,4 .def start .data 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 table: .word 1,2,3,4 .word 8,6,9,7 .text start: STM #0,SWWSR STM #STACK+10H,SP STM #a,AR1 RPT #7 MVPD table,*AR1+ STM #a,AR1 STM #x,AR2 STM #2,AR3 LD *AR1+,T MPY *AR2+,
34、A;第一个乘积在累加器;第一个乘积在累加器A中中第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 loop1: LD *AR1+,T MPY *AR2+,B;其他乘积在累加器;其他乘积在累加器B中中 MAX A ;累加器;累加器A和和B比较,选大的存在比较,选大的存在A中中 BANZ loop1,*AR3- ;此循环中共进行;此循环中共进行3次乘法和比较次乘法和比较end: B end .end第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 4.2.5 子程序结构子程序结构 子程序是一个独立的程序段,具有确定的功
35、能,子程序是一个独立的程序段,具有确定的功能,可被其他程序调用,调用它的程序一般为主程序。子可被其他程序调用,调用它的程序一般为主程序。子程序调用指令程序调用指令(如:如:CALL、CALA、CC等等)将一个返将一个返回地址压入堆栈,执行返回指令回地址压入堆栈,执行返回指令(如如RET、RC等等)时复时复原。子程序的定义和调用的格式为原。子程序的定义和调用的格式为 子程序名:子程序名: RET 子程序名 第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 【例例5】 编写浮点乘法程序,完成编写浮点乘法程序,完成x1x2=0.3(-0.8)运算。运算。 虽然
36、虽然TMS320C54x是定点是定点DSP,但它可通过以下,但它可通过以下3条指令支持浮点运算:条指令支持浮点运算: EXPA STT,EXPONENT NORMA第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 假设定点数放在假设定点数放在A中,这样就可以将定点数转换为中,这样就可以将定点数转换为浮点数了。反之,若将浮点数转换为定点数,只要将浮点数了。反之,若将浮点数转换为定点数,只要将指数取反即可。指数取反即可。 浮点数由尾数与指数两部分组成,其与定点数的浮点数由尾数与指数两部分组成,其与定点数的关系如下:关系如下: 定点数定点数=尾数尾数2(指数指
37、数) 指数与尾数均用补码表示。例如,本例中指数与尾数均用补码表示。例如,本例中x1的定的定点数点数0 x3333(0.4)用浮点数表示时,尾数为用浮点数表示时,尾数为0 x6666(0.8),指数为指数为1,即,即0.82-1=0.4;x2的定点数的定点数0 xb334(-0.6)用用浮点数表示为浮点数表示为-0.6=-0.62-0。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 程序中所用的数据变量如下:程序中所用的数据变量如下:x1:定点被乘数;:定点被乘数;e1:被乘数的指数;:被乘数的指数;m1:被乘数的尾数:被乘数的尾数;x2:定点乘数;:定
38、点乘数;e2:乘数的指数:乘数的指数;m2:乘数的尾数:乘数的尾数 ;ep:乘积的指数:乘积的指数;mp:乘积的尾数:乘积的尾数 ;product:定点乘积:定点乘积 ;temp:暂存单元。:暂存单元。第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 首先将定点数首先将定点数x1、x2转换为浮点数,浮点数相乘转换为浮点数,浮点数相乘即指数相加,尾数相乘,最后再将乘积即指数相加,尾数相乘,最后再将乘积(浮点数浮点数)转换为转换为定点数。定点数。* ex45.asm x1*x2=0.4* (-0.6) * .title EX45.asm .mmregs第第4 4章章 TMS320C54xTMS320C54x汇编语言程序设计汇编语言程序设计 STACK .usect STACK,10H .bss x1,1 .bss x2,1 .bss
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 气候变暖对输传播性疾病检测技术需求
- Java 后端开发高级工程师考试试卷及答案
- 检验前标本采集患者隐私保护措施
- 心力衰竭生物标志物临床应用中国专家共识(完整版解读)
- 第三章 第4讲 牛顿运动定律的综合应用(学生版)
- 第二章 第6讲 专题强化:共点力的动态平衡问题(学生版)
- T∕AOPA 0100-2025 动力提升航空器结构模态耦合试验规范
- 干细胞治疗在神经退行性疾病中的作用机制研究
- 四川省宜宾县第二中学2026届全国高三统一第一次网上联考化学试题测试题含解析
- 云南省曲靖市宜良县第八中学2026年高三毕业班联考(二)化学试题含解析
- 2026重庆联合产权交易所集团股份有限公司招聘13人考试备考试题及答案解析
- 2026中国文创产品市场消费趋势与商业模式创新研究报告
- 2026中考语文试题分类汇编《作文》练习题
- 2026年辽宁省二级建造师继续教育复习真题AB卷附答案详解
- 2025年冀人版三年级科学下册全套测试卷新版
- 带状疱疹临床路径完整版
- 智慧工地方案施工方案(3篇)
- 北京2025年国家艺术基金管理中心招聘应届毕业生笔试历年参考题库附带答案详解(5卷)
- 《安全预评价提供基础资料清单》
- 15.球的运动(课件)2025-2026学年人教鄂教版三年级科学下册
- 2026年教案合集2026年春人教版八年级下册英语Unit 1~Unit 8全册教案新版
评论
0/150
提交评论