




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
会计学1DSP寻址方式及指令系统汇编语言书写格式
[标号][:]助记符
[操作数1,操作数2,…]
[;注释]
标号域助记符域
操作数域
注释域
标号域不能放助记符,即指令符,否则编辑出错!注释域以分号;开头,注释行可以单独占用一行或多行。#数据前缀表示立即数数据后缀B或b表示二进制常数;后缀Q或q表示八进制常数;后缀H或h表示十六进制常数汇编程序扩展名为.asm第1页/共27页TIDSP汇编语言书写规范标号与变量必须从编辑窗口的第1列写,指令(包括伪指令)决不能从第1列开始,包括宏指令。例如某汇编源程序:_c_int0: SETC INTM CLRC SXM CLRC OVM CLRC CNF第2页/共27页DSP源程序编程工具在任何文本编辑工具下都可以编写源程序,例如,记事本、UltraEdit是一套功能强大的文本编辑器,可以编辑文本、十六进制、ASCII码,可以取代记事本,内建英文单字检查、C++及VB指令突显,可同时编辑多个文件,可开多窗口,搜寻替换以及无限制的还原功能。
DSP集成开发环境CCS包含文本编辑器。第3页/共27页'C2的伪指令
C2XX伪指令包括:段定义伪指令、初始化常数伪指令、设置段程序计数器伪指令、引用文件伪指令、符号定义伪指令、存储器分配伪指令、段分配伪指令。第4页/共27页DSP编程要特别说明的几点DSP
汇编程序(.asm)使用段定义伪指令分段书写,指令序列用代码段伪指令.text引导,数据变量用未初始化数据段伪指令.bss引导,数据常量用初始化数据段伪指令.data引导。各种段在存储空间的定位由命令链接文件规定。命令链接文件后缀为.cmd。还可以使用包含文件(.h)。包含文件伪指令使用形式.include“file.h”第5页/共27页常用的段定义伪指令.text默认的初始化程序段,通常包含有可执行程序代码,存放于程序存储器区域.data默认的初始化数据段(程序或数据区).bss默认的未初始化数据段,通常是为未初始化的变量预留空间(于数据区)。格式为:
.bss变量符号,保留的字数.sect——定义初始化后命名的段,常用于定义中断向量表。.sect“段名”
第6页/共27页常用初始化常数伪指令定义字伪指令(定义整型数伪指令)格式:.int/.wordvalue1[,…,valuen]功能:在当前段连续存入1个或多个16位整数定义字节伪指令 格式:.bytevalue1,[,…,valuen] 功能:在当前段连续初始化1个或n个字节第7页/共27页常用引用文件伪指令包含伪指令 格式:.include[″]filename[″]功能:将另一个文件包含到.include伪指令处的文件中。定义全局符号伪指令格式:.def
/.globalsymbol1[,…,symboln]功能:在当前模块定义一个或n个符号,供模块或其它模块使用。.def定义的符号是全局(外部)符号。第8页/共27页常用引用文件伪指令(续)引用全局符号伪指令 格式:.refsymbol1[,…,symboln] 功能:引用一个或n个全局符号供本模块使用。第9页/共27页常用符号定义伪指令等值伪指令(符号与数值等价伪指令) 格式:符号.equ
数值 符号.set
数值
注:.equ与.set等价可互换,常用.set
第10页/共27页链接器命令文件(*.cmd)用.MEMORY伪指令详细定义DSP器件内部及扩展存储器存储器起始地址和长度。用.SECTIONS伪指令告诉链接器如何组合输入段以及在存储器何处存放。
第11页/共27页MEMORY伪指令的表达式MEMORY {PAGE0:NAME[属性]:origin(起始地址)=J0(绝对地址),length=L0(长度)
PAGE1:NAME[属性]:origin(起始地址)=Jn(绝对地址),length=Ln(长度)
}PAGE0一般存程序;PAGE1存数据第12页/共27页SECTIONS伪指令的表达式SECTIONS:{段名:[特性,特性,…]
……段名:[特性,特性,…]}特性表达式常用形式:{}>NAME其中,NAME是用户命名的“存储器块名”第13页/共27页2407_t1.cmd
(1)MEMORY说明MEMORY{PAGE0:VECS :origin=0000H,length=0040H/*PROGRAMPVECS :origin=0044H,length=0100H /*PeripheralInterruptVectors*/ PROG :origin=01000H,length=2500H /*FLASHonChip*/PAGE1: MMRS :origin=0000H,length=005FH/*MMRS*/ B2 :origin=0060H,length=0020H/*DARAMB2BLOCK*/ B01 :origin=0200H,length=0080H/*DARAMB0BLOCK*/B02 :origin=0280H,length=0080H B11 :origin=0300H,length=0080H/*DARAMB1BLOCK*/
第14页/共27页2407_t1.cmd
(2)SECTIONS说明SECTIONS{.vectors :{}>VECSPAGE0 /*InterruptVectorTable*/._c_int0 :{}>VECS PAGE0.pvecs :{}>PVECSPAGE0/*PeripheralINTERRUPTVECTORTABLE*//*.const :LOAD=PROGPAGE0,RUN=B01PAGE1*/.text :{}>PROGPAGE0 /*CODE */.bss :{}>B2PAGE1 /*存放液晶显示定义的寄存器及一些常用寄存器*/.data :{}>B02PAGE1 /*FFTWorkingSpace--第15页/共27页COFF(CommonObjectFileFormat)公共目标文件格式DSP编译器产生的目标文件为COFF文件结构提倡编程(C或汇编)时采用代码段(Section或块)和数据段的概念,有利于模块化编程编程时不必考虑硬件,程序员也不需要指定或修改程序代码或变量目标地址为程序编写和程序移植提供了极大的方便第16页/共27页汇编(dspa.exe)与链接(dsplnk.exe)
编辑→汇编→链接如果程序未用任何段定义指令,汇编器自动将所有程序代码与数据汇编到.text段,并产生*.obj文件——COFF文件链接器根据命令文件*.cmd确定各段存放地址。生成*.OUT文件,*.OUT不是纯二进制代码文件,而是包含代码、符号表、代码定位信息的复合文件。生成的MAP文件可以获得变量、子程序等符号的具体地址。注意:MAP文件只列出全局变量的地址。在DSP的开发软件CCS环境下可以完成编辑、汇编、链接和调试第17页/共27页头文件*.hDSP的结构比较复杂,寄存器数量较多,映射地址难记IMR.set0004h;InterruptMaskRegisterGREG.set0005h;GlobalmemoryallocationRegister将具有特定功能的宏定义放在头文件包含以上内容的头文件,可以被开发同一DSP的任何汇编程序使用。例如TMS320LF2407A头文件名为F2407regs.h,见教材《DSP控制器原理及应用》P132。第18页/共27页思考题.bss300H或在60HLDP#X;LARAR2,#X;
X为变量时语句结果不影响LDP#0;LARAR2,#60H;如果直接送数值有无命令文件则会出错因此,程序中尽量不用具体数值表示地址或数量第19页/共27页宏指令/子程序宏汇编属于高级汇编语言技术,可以简化和缩短源程序但并没有节省程序空间1.宏定义格式为:宏名字.macro
(形式参数)┅(宏定义体,即一段汇编程序).endm第20页/共27页宏指令定义举例KICK_DOG .macro
;Watchdogresetmacro LDP #00E0h;DP-->7000h-707Fh SPLK #05555h,WDKEY
;WDCNTRisenabledtoberesetbynextAAh SPLK #0AAAAh,WDKEY
;WDCNTRisreset LDP #0h ;DP-->0000h-007Fh .endm第21页/共27页2.宏调用定义之后的宏名,可以象任何汇编指令一样在程序中使用
CALL mS_DELAY ;Generatea50msdelay KICK_DOG ;ResetWDifnotdisabled
PHANTOMKICK_DOG;ResetsWDcounter B PHANTOM3.宏展开编译程序在目标文件中,将调用宏的地方插入宏体的整个指令代码第22页/共27页子程序结构第23页/共27页子程序调用第24页/共27页思考题1、定义全局符号伪指令.def
/.global
和引用全局符号伪指令.ref是在一个模块中使用的?还是在两个以上不同模块中使用的?其中哪个伪指令可以重复使用?2、宏定义与子程序设计有什么相似之处与不同之处?3、.text与.sect都是代码段伪指令,有什么区别?各有什么用途?第25页/共27页第8次课课外作业:用SBUC实现32
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国真丝绒毯行业投资前景及策略咨询报告
- 2025至2030年中国捕烟气阀市场分析及竞争策略研究报告
- 2025至2030年中国前缓冲块市场分析及竞争策略研究报告
- 2024至2030年中国高强度铝合金型材行业投资前景及策略咨询研究报告
- 2024至2030年中国弹性体改性沥青防水卷材市场调查研究报告-市场调查研究报告-市场调研
- 2024年中国白酒增香剂数据监测报告
- 行政批复协议书范本
- 船坞甲板加工合同协议
- 装修施工合同安全协议
- 苏州种菜承包合同协议
- 国家开放大学一网一平台电大《可编程控制器应用实训》形考任务1-7终结性考试题库及答案
- 农村户口分户协议书(6篇)
- (部编版一年级下册)语文第七单元复习课件
- 新闻采访与写作(马工程笔记)
- DB32∕T 1703-2011 科技成果转化服务规范总则
- SQ-02-绿色食品种植产品调查表0308
- 视频结构化大数据平台解决方案
- 丽声北极星分级绘本第二级上Dinner for a Dragon 教学设计
- 活跃气氛的开场小游戏「培训破冰前必备」
- 光伏发电项目安全专项投资估算方案
- 上海证券交易所(课堂PPT)
评论
0/150
提交评论