DSP寻址方式及指令系统.pptx

上传人:莉*** 文档编号:87184325 上传时间:2023-04-16 格式:PPTX 页数:27 大小:169.77KB
返回 下载 相关 举报
DSP寻址方式及指令系统.pptx_第1页
第1页 / 共27页
DSP寻址方式及指令系统.pptx_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《DSP寻址方式及指令系统.pptx》由会员分享,可在线阅读,更多相关《DSP寻址方式及指令系统.pptx(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、汇编语言书写格式 标号:助记符 操作数1,操作数2,;注释 标号域 助记符域 操作数域 注释域 标号域不能放助记符,即指令符,否则编辑出错!注释域以分号;开头,注释行可以单独占用一行或多行。#数据前缀表示立即数数据后缀B或b表示二进制常数;后缀Q或q表示八进制常数;后缀H或h表示十六进制常数 汇编程序扩展名为.asm第1页/共27页TI DSP汇编语言书写规范标号与变量必须从编辑窗口的第1列写,指令(包括伪指令)决不能从第1列开始,包括宏指令。例如某汇编源程序:_c_int0:SETC INTM CLRC SXM CLRC OVM CLRC CNF第2页/共27页 DSP DSP源程序源程序编

2、程工具编程工具 在任何文本编辑工具下都可以编写源程序,例如,记事本、UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII 码,可以取代记事本,内建英文单字检查、C+及 VB 指令突显,可同时编辑多个文件,可开多窗口,搜寻替换以及无限制的还原功能。DSP集成开发环境CCS包含文本编辑器。第3页/共27页C2C2的伪指令的伪指令 C2XX伪指令包括:段定义伪指令、初始化常数伪指令、设置段程序计数器伪指令、引用文件伪指令、符号定义伪指令、存储器分配伪指令、段分配伪指令。第4页/共27页DSP编程要特别说明的几点DSP 汇编程序(.asm)使用段定义伪指令分段书写,指令序列

3、用代码段伪指令.text引导,数据变量用未初始化数据段伪指令.bss引导,数据常量用初始化数据段伪指令.data引导。各种段在存储空间的定位由命令链接文件规定。命令链接文件后缀为.cmd。还可以使用包含文件(.h)。包含文件伪指令使用形式.include“file.h”第5页/共27页常用的段定义伪指令常用的段定义伪指令.text text 默认的初始化程序段,通常包含有可执行程序代码,存放于程序存储器区域.data data 默认的初始化数据段(程序或数据区).bss bss 默认的未初始化数据段,通常是为未初始化的变量预留空间(于数据区)。格式为:.bss bss 变量符号,保留的字数 .

4、sect定义初始化后命名的段,常用于定义中断向量表。.sect sect “段名”第6页/共27页常用常用初始化常数初始化常数伪指令伪指令定义字伪指令(定义整型数伪指令)格式:.int/.word value1,valuen 功能:在当前段连续存入1个或多个16位整数定义字节伪指令格式:.byte value1,valuen功能:在当前段连续初始化1个或n个字节第7页/共27页常用常用引用文件引用文件伪指令伪指令包含伪指令格式:.include filename 功能:将另一个文件包含到.include伪指令处的文件中。定义全局符号伪指令 格式:.def/.global symbol1,sym

5、boln 功能:在当前模块定义一个或n个符号,供模块或其它模块使用。.def定义的符号是全局(外部)符号。第8页/共27页常用常用引用文件引用文件伪指令伪指令(续)(续)引用全局符号伪指令格式:.ref symbol1,symboln功能:引用一个或n个全局符号供本模块使用。第9页/共27页常用常用符号定义符号定义伪指令伪指令等值伪指令(符号与数值等价伪指令)格式:符号.equ 数值符号.set 数值 注:.equ与.set等价可互换,常用.set 第10页/共27页链接器链接器命令文件命令文件(*.cmd)用.MEMORY伪指令详细定义DSP器件内部及扩展存储器存储器起始地址和长度。用.SE

6、CTIONS伪指令告诉链接器如何组合输入段以及在存储器何处存放。第11页/共27页MEMORY伪指令的表达式 MEMORY PAGE0:NAME属性:origin(起始地址)=J0(绝对地址),length=L0(长度)PAGE1:NAME属性:origin(起始地址)=Jn(绝对地址),length=Ln(长度)PAGE 0一般存程序;PAGE1存数据第12页/共27页SECTIONS伪指令的表达式 SECTIONS:段名:特性,特性,段名:特性,特性,特性表达式常用形式:NAME其中,NAME是用户命名的“存储器块名”第13页/共27页2407_t1.cmd(1)MEMORY说明说明MEM

7、ORYPAGE 0:VECS:origin=0000H,length=0040H /*PROGRAM PVECS:origin=0044H,length=0100H/*Peripheral Interrupt Vectors*/PROG:origin=01000H,length=2500H/*FLASH on Chip*/PAGE 1:MMRS:origin=0000H,length=005FH/*MMRS*/B2:origin=0060H,length=0020H/*DARAM B2 BLOCK*/B01:origin=0200H,length=0080H/*DARAM B0 BLOCK*/

8、B02:origin=0280H,length=0080HB11:origin=0300H,length=0080H/*DARAM B1 BLOCK*/第14页/共27页2407_t1.cmd(2)SECTIONS说明SECTIONS .vectors:VECS PAGE 0/*Interrupt Vector Table*/._c_int0:VECSPAGE 0 .pvecs:PVECS PAGE 0 /*Peripheral INTERRUPT VECTOR TABLE*/*.const:LOAD=PROG PAGE 0,RUN=B01 PAGE 1*/.text:PROG PAGE 0/

9、*CODE*/.bss:B2 PAGE 1/*存放液晶显示定义的寄存器及一些常用寄存器*/.data:B02 PAGE 1/*FFT Working Space-第15页/共27页COFFCOFF(Common Object File FormatCommon Object File Format)公共目标公共目标文件格式文件格式DSP编译器产生的目标文件为COFF文件结构提倡编程(C或汇编)时采用代码段(Section或块)和数据段的概念,有利于模块化编程编程时不必考虑硬件,程序员也不需要指定或修改程序代码或变量目标地址为程序编写和程序移植提供了极大的方便 第16页/共27页汇编(汇编(ds

10、pa.exe)dspa.exe)与链接与链接(dsplnk.exe)(dsplnk.exe)编辑编辑汇编汇编链接链接如果程序未用任何段定义指令,汇编器自动将所有程序代码与数据汇编到.text段,并产生*.obj文件COFF文件链接器根据命令文件*.cmd确定各段存放地址。生成*.OUT文件,*.OUT不是纯二进制代码文件,而是包含代码、符号表、代码定位信息的复合文件。生成的MAP文件可以获得变量、子程序等符号的具体地址。注意:MAP文件只列出全局变量的地址。在DSP的开发软件CCS环境下可以完成编辑、汇编、链接和调试第17页/共27页头文件头文件*.h*.hDSP的结构比较复杂,寄存器数量较多

11、,映射地址难记IMR .set 0004h ;Interrupt Mask RegisterGREG .set 0005h ;Global memory allocation Register将具有特定功能的宏定义放在头文件包含以上内容的头文件,可以被开发同一DSP 的任何汇编程序使用。例如TMS320LF2407A头文件名为 F2407regs.h,见教材DSP控制器原理及应用P132。第18页/共27页思思 考考 题题.bss 300H 或在60HLDP#X;LAR AR2,X;X为变量时语句结果不影响LDP 0;LAR AR2,#60H;如果直接送数值有无命令文件则会出错因此,程序中尽量

12、不用具体数值表示地址或数量第19页/共27页宏指令宏指令/子程序宏汇编属于高级汇编语言技术,可以简化和缩短源程序但并没有节省程序空间 1.宏定义格式为:宏名字 .macro (形式参数)(宏定义体,即一段汇编程序).endm第20页/共27页宏指令定义举例宏指令定义举例KICK_DOG .macro ;Watchdog reset macroLDP#00E0h ;DP-7000h-707FhSPLK#05555h,WDKEY ;WDCNTR is enabled to be reset by next AAhSPLK#0AAAAh,WDKEY ;WDCNTR is resetLDP#0h ;D

13、P-0000h-007Fh.endm第21页/共27页2.宏调用定义之后的宏名,可以象任何汇编指令一样在程序中使用CALLmS_DELAY;Generate a 50ms delayKICK_DOG ;Reset WD if not disabledPHANTOM KICK_DOG ;Resets WD counter B PHANTOM3.宏展开编译程序在目标文件中,将调用宏的地方插入宏体的整个指令代码第22页/共27页子程序结构第23页/共27页子程序调用第24页/共27页思考题1、定义全局符号伪指令.def/.global 和引用全局符号伪指令.ref是在一个模块中使用的?还是在两个以上不同模块中使用的?其中哪个伪指令可以重复使用?2、宏定义与子程序设计有什么相似之处与不同之处?3、.text与.sect都是代码段伪指令,有什么区别?各有什么用途?第25页/共27页第8次课课外作业:用SBUC实现32位/16位二进制除法,例程如下:LACC#8000H ADD#0010,16 ;32位Q16 LDP#0 SPLK#0280H,0060H ;16位Q8 LAR AR1,#0060H MAR *,AR1 RPT#15;(ACC)/(0060H)-商ACCL SUBC *+;余数在ACCH第26页/共27页感谢您的欣赏!第27页/共27页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com