TMS320C20X的指令系统及汇编语言课件.ppt

上传人:小飞机 文档编号:3726710 上传时间:2023-03-17 格式:PPT 页数:50 大小:585KB
返回 下载 相关 举报
TMS320C20X的指令系统及汇编语言课件.ppt_第1页
第1页 / 共50页
TMS320C20X的指令系统及汇编语言课件.ppt_第2页
第2页 / 共50页
TMS320C20X的指令系统及汇编语言课件.ppt_第3页
第3页 / 共50页
TMS320C20X的指令系统及汇编语言课件.ppt_第4页
第4页 / 共50页
TMS320C20X的指令系统及汇编语言课件.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《TMS320C20X的指令系统及汇编语言课件.ppt》由会员分享,可在线阅读,更多相关《TMS320C20X的指令系统及汇编语言课件.ppt(50页珍藏版)》请在三一办公上搜索。

1、第四章 TMS320C20X的指令系统及汇编语言,第一节 寻址方式,第二节 指令系统,第三节 汇编语言,第一节 TMS320C200的寻址方式,1.寻址方式:就是寻找参加指令运行的操作数的方法。2.操作数主要包括:寄存器地址、常数、I/O口、指针、偏移量、数据存 储器地址等,1立即数寻址2.直接寻址3间接寻址,寻址分类,1立即数寻址,在操作数前面需要加字号来说明该操作数为立即数。否则会把该操作数误认为是一个地址,从而把立即数寻址变成直接地址寻址。,特点,指令中包含有执行指令所需要的操作数。短立即寻址:立即数为8、9位或13位的短立即数;长立即寻址:16位的长立即数短立即数可包含在单字或双字指令

2、中,长立 即数在双字指令中。,注意,举例,ADD#55HADD#1111,1,可以在不改变DP的情况下,随机地寻址128个存储单元中的任何一个单元。,用一个符号或一个常数来确定7位偏移值,与DP共同形成16位的数据存储器实际地址。,2直接寻址,方法,LDP#14H ADD 5H,举例,特点,0000 0000,0000 0000,0000 0000,1111 1111,0000 0001,0000 0000,0000 0001,1111 1111,0000 0010,0000 0000,0000 0010,1111 1111,1111 1111,0000 0000,1111 1111,1111

3、 1111,DP值,偏移量,数据存储器,7位dma域与9位的DP相结合形成16位的数据存储器地址。,指令寄存器IR,状态寄存器ST0,16位数据存储器 地 址,DP值是从0511(29-1),以DP为基准的直接寻址把存储器分成512页,7位的dma范围从0127,每页有128个可访问的单元。,使用直接寻址方式,设置数据页,指明偏移量,LDP#32,ADD 1H,3间接寻址,方法,特点,(AR0AR7)ARAU16位无符号算术运算寻址范围为64K,灵活多变且功能强大,提供7种间接寻址方式,不增量或不减量,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容保持不变。,LT*,执行指

4、令前:ARP=0,(AR0)=100H执行操作:用AR0所指的数据存储器100H内容装载暂时寄存器;执行指令后:ARP=0,(AR0)=100H,增1,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容自动加1。,LT*+,执行指令前:ARP=0,(AR0)=100H执行操作:用AR0所指的数据存储器100H内容装载暂时寄存器;执行指令后:ARP=0,(AR0)=101H,减1,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容自动减1。,LT*-,执行指令前:ARP=0,(AR0)=100H执行操作:用AR0所指的数据存储器100H内容装载暂时寄存器;执行指令

5、后:ARP=0,(AR0)=FFH,加上索引量,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容加上AR0的内容。,LT*0+,执行指令前:ARP=1,(AR1)=100H,(AR0)=3执行操作:用AR1所指的数据存储器100H内容装载暂时寄存器;执行指令后:ARP=1,(AR1)=103H,减去索引量,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容自动减去ARO的内容。,LT*0-,执行指令前:ARP=1,(AR1)=100H,(AR0)=3执行操作:用AR0所指的数据存储器100H内容装载暂时寄存器;执行指令后:ARP=1,(AR1)=FEH,加上索

6、引量,反向进位,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容自动加上AR0的内容,该加法采用反向进位方法。注:主要用于FFT算法,LT*BR0+,把AR0加到辅助寄存器中时,地址以位倒序的方式产生,即进位是从左向右,而不是从右向左进位。例如:0110 1000+0000 1000 0110 0100,以8位辅助寄存器为例,AR1表示了在存储器中数据的基地址(0110 0000)2,AR0的值为(0000 1000)2。,位倒序对FFT变换结果的序号调整,减去上索引量,反向借位,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后AR内容自动加上AR0的内容,该加法采

7、用反向进位方法。,LT*BR0-,下一当前辅助寄存器的制定,方法,举例,指令使用AR内容作为数据存储器地址,执行指令后,下一辅助寄存器被指定为当前辅助寄存器,MAR*,AR1LT*+,AR2,第二节 TMS320C2000的汇编指令,C2000指令按照功能划分为6类:累加器、算术和逻辑指令辅助寄存器指令TREG、PREG和乘法指令转移指令控制指令输入/输出指令和存储器指令,2.1汇编指令集说明,1、指令的基本格式,指令助记符含义:dma:数据存储器地址的低7位偏移量Pma:16位程序存储器地址Shift:左移位数:015Shift2:左移位数:07n:指示下一位辅助寄存器的值:07k:8位短立

8、即数lk:16位长立即数ind:间接寻址方式中的一种,2、汇编指令,表2.1累加器、算术和逻辑指令,4,5,0302H,0303H,4,4,4,0CH,表2.2 辅助寄存器指令,举例:LAR AR4,#01H 指令执行前 指令执行后 AR4 LAR AR6,#3FFFHAR6,表2.3 TREG、PREG和乘法指令,例1:MAC 0FF00H,02H;DP=6,地址300H37FH,PM=0,CNF=1 指令执行前 指令执行后数据存储器 数据存储器302H 302H程序存储器 程序存储器FF00H FF00HTREG TREGPREG PREGACC ACC,例2:MACD 0FF00H,08

9、H;DP=6,地址300H37FH,PM=0,CNF=1 指令执行前 指令执行后数据存储器 数据存储器308H 308H数据存储器 数据存储器309H 309H程序存储器 程序存储器FF00H FF00HTREG TREGPREG PREGACC ACC,表2.3转移指令,例1:BCND GetMax,LEQ,C 如果ACC内容小于等于零且进位位被置1,则程序地址GetMax被装入程序计数器,程序从该地址继续执行;例2:CC GetMin,LEQ,C 如果ACC内容小于等于零且进位位被置1,则程序地址GetMin被装入程序计数器,程序从该地址继续执行;,条件转移和调用中的判断条件,Cond 条

10、件 EQ ACC=0NEQ ACC0LT ACC0GEQ ACC=0NC C=0C C=1NOV OV=0OV OV=1NTC TC=0TC TC=1,表2.4 控制指令,表2.6 输入/输出和存储器指令,例1:BLDD#300H,20H;DP=6 执行前 执行后数据存储器 数据存储器 300H 300H 320H 320H例2:BLDD*+,#321H,AR3 执行指令前 执行指令后 ARP ARP AR2 AR3 数据存储器 数据存储器 301H 301H 321H 321H,例3:BLPD#800H,00H;DP=6 指令执行前 指令执行后程序存储器 程序存储器 300H 300H数据存

11、储器 数据存储器 320H 320H例4:BLPD#800H,*,AR7 执行指令前 执行指令后 ARP ARP AR2 AR3 存储器 存储器 800H 800H 310H 310H,例5:TBLR DAT6;DP=6,地址200H27FH 指令执行前 指令执行后 ACC ACC 程序存储器 程序存储器 23H 23H 数据存储器 数据存储器 206H 206H 例6:BLPD*,AR7 执行指令前 执行指令后 ARP ARP AR0 AR0 ACC ACC 存储器 存储器 24H 24H 300H 300H,第3节 DSP的汇编语言及编程,TMS320系列DSP的目标文件采用公共目标文件C

12、OFF格式,将指令和数据按照段的概念进行组织和存储,增强程序的可读性,便于程序的移植和模块化设计段的定义:段是目标文件中的最小单位,所谓段就是通过汇编和连接最终在dsp的存储映像中占据连续空间的一块代码或数据,并且每个段都是独立的,COFF目标文件的段分为两大类:已初始化段和未初始化段。,COFF的段的定义,COFF目标文件的段:.text段,该段内含可执行代码;定义.data段,该段内容已初始化数据;.bss段,该段是为初始化的数据保 留空间;.sect,建立一个自定义的并 自定义 初始化的段;.usect,建立一个自定义但没有初 始化的段;,1.text段,特点,建立一个独立的段,其段名为

13、.text,该段通常包含可执行的代码;,举例,.text LDP#06H clrc SXM,.text,语法,2Data段,特点,.data段,建立一个独立的段,其段名为.data,它包含初始化了的数据或常数。,举例,.dataCoeff.word 11H,22H,33H,.data,语法,3bss段,特点,.bss段,建立一个独立的段,其段名为.bss,它包含未初始化了的数据或常数。,举例,.bss var1,1.bss buffer,10,.bss 符号,字数,块标记其中,符号指由.bss指令保留的第一个字,他对应为变量保留空间的变量名,字数表示空间的大小。,语法,4sect段,特点,.s

14、ect段,建立一个自定义并且初始化的段,它包含代码或数据。,举例,.sect“var-def”.word 17H,18H,.sect“段名”,语法,5usect段,特点,.usect段,建立一个自定义段但是没有被初始化的段;,举例,Usysm.usect“xy”,20,标号.usect“段名”,字数标号指由.bss指令保留的第一个字,他对应为变量保留空间的变量名,字数表示空间的大小。,语法,汇编程序和连接程序对段的处理,汇编程序对段的处理 在汇编时,汇编程序确定源程序中的各部分属于哪个特定的段;当遇到已初始化段定义指令.text,.data,.sect时,立即停止把随后的代码和数据汇编到当前段

15、中,而是将他们汇编到指令所指定的新的段中;但当汇编程序遇到未初始化的段.bss,.usect时,只是暂时离开当前的段去未初始化段保留空间,而不结束当前段去开始一个新的段,随后的汇编仍然在当前段中进行,直至遇到另一个已初始化段定义指令。,.dataCoeff.word 11H,22h,33H.bss var1,1.bss buffer,10.word 0123H.text.word 1,2,3.dataval2.Word 0AAHVar3.Usect“newvars”,7.text.word 4,5,11H22H33H,01H23H,AAh,没有数据保留11个字,01H02H03H,04H05H

16、,没有数据保留7个字,.data段,.bss段,.text段,newvar段,汇编程序对段处理示列,连接程序对段的处理,连接程序对段的处理主要完成两个功能:把1个或多个目标文件连接起来产生可执行的COFF输出文件(文件名.out);定位输出文件的存储器地址;,存储器映像定位,存储器映像定位:就是把.text,.data,.bss等段定位到编程者想要定位的地方,即和硬件设计的RAM、ROM和I/O口一致;存储器映像包括:(1)目标系统的存储器的定义;(2)分配段在存储器中的位置,目标存储器的定义,MEMORY PAGE0:名字1:orgin=常数,length=常数;PAGEn:名字n:orgi

17、n=常数,length=常数;在memory命令中,PAGE定义一个存储器空间0255,通常PAGE0指向程序存储器;PAGE1指向数据存储器;,段在存储器中的定位,SECTIONS 段名:存储器名 PAGEn,存储器的映像定位例.cmd,MEMORY PAGE0:EX1-PM:ORGIN=0H,LENGTH=0FEFFH B0-PM:ORGIN=0FF00H,LENGTH=100H PAGE1:REGS:ORGIN=0H,LENGTH=60H BLK-B2:ORGIN=60H,LENGTH=20H BLK-B0:ORGIN=200H,LENGTH=100H BLK-B1:ORGIN=300H,LENGTH=100H EX1-DM:ORGIN=800H,LENGTH=7800H GM-DM:ORGIN=8000H,LENGTH=800H,SECTIONS vectors:EX1-PM PAGE0.text:EX1-PM PAGE0.bss:EX1-DM PAGE1 sum:BLK-B2 PAGE1.data:0 x0370 PAGE1,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号