SP第4章语言和伪指令_第1页
SP第4章语言和伪指令_第2页
SP第4章语言和伪指令_第3页
SP第4章语言和伪指令_第4页
SP第4章语言和伪指令_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4 4章章 汇编语言和汇编语言和伪指令伪指令DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院1第第4 4章章 汇编语言和汇编语言和伪指令伪指令DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令2 采用汇编语言,用户可以直接操作到处理器内部的采用汇编语言,用户可以直接操作到处理器内部的工作寄存器和片内工作寄存器和片内RAM单元,能把数据的处理过程表述单元,能把数据的处理过程表述得非常具体和详实。得非常具体和详实。 汇编语言并不独立于具体机器,是一种非常通用的汇编语言并不独立于具体

2、机器,是一种非常通用的低级程序设计语言。低级程序设计语言。4.1 汇编语言程序设计汇编语言程序设计DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令34.1.1 汇编语言源程序格式汇编语言源程序格式 典型的汇编语言格式是四段式格式:典型的汇编语言格式是四段式格式: 标号段:标号段: 操作码段操作码段 操作数段操作数段 ; 注释段注释段 LABLE : OPCODE OPRAND ;COMMENT 其中操作码段是必选项,任何语句都必须有操作码其中操作码段是必选项,任何语句都必须有操作码段。如果是多个操作数,中间用逗号

3、隔开。段。如果是多个操作数,中间用逗号隔开。 P1:ADD #1 ;ACC加加1,结果保存在,结果保存在ACC中中 BCND P1,LEQ ;如果如果ACC0则转到则转到P1DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令44.1.2 常用伪指令介绍常用伪指令介绍指令语句指令语句 每一条指令语句在源程序汇编时都要产生可供计算每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基可执

4、行语句。每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(成的,是依赖于汁算机内的中央处理器(CPU)、存储)、存储器、器、IO接口等硬件设备来实现的。接口等硬件设备来实现的。 DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令5伪指令语句伪指令语句 伪指令语句是用于指示汇编程序如何汇编源程序,所伪指令语

5、句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。例如源程序中的伪指令语句告以这种语句又叫命令语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源代码。伪指令

6、语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。程序时实现的。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令6DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令7条件汇编伪指令条件汇编伪指令 以下分两种情况介绍条件汇编伪指令。以下分两种情况介绍条件汇编伪指令。 (1) 第一种情况:第一种情况: .if well-defined e

7、xpression .elseif well-defined expression .else .endif (2) 第二种情况:第二种情况: .loopwell-defined expression .break well-defined expression .endloopDSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令84.2 C语言程序设计语言程序设计 用汇编语言编写程序是一件繁杂的事情,开发周期用汇编语言编写程序是一件繁杂的事情,开发周期相对较长。因此各个相对较长。因此各个DSP公司都推出了相应的高级

8、语言公司都推出了相应的高级语言(如(如C语言),使得语言),使得DSP芯片的软件可以直接使用高级语芯片的软件可以直接使用高级语言写成。,从而大大提高言写成。,从而大大提高DSP芯片的开发速度,也使程芯片的开发速度,也使程序的修改和移植变得十分方便。序的修改和移植变得十分方便。 C C语言程序文件的后缀名为语言程序文件的后缀名为.c .c。在该程序中实现。在该程序中实现DSPDSP要完成的功能,由开发人员编写。要完成的功能,由开发人员编写。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令9C编译器概述编译器概述 T

9、MS320C2xx C编译器是一个功能齐全的优化编译编译器是一个功能齐全的优化编译器。它的主要功能是把标准的器。它的主要功能是把标准的ANSI C语言程序转换成语言程序转换成TMS320 DSP芯片能够识别执行的汇编语言代码。芯片能够识别执行的汇编语言代码。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令104.3 调试时需要的五种文件调试时需要的五种文件 调试时需要以下五种文件:调试时需要以下五种文件:(1)C语言程序(语言程序(.c)或者汇编语言文件()或者汇编语言文件(.asm)(2)头文件()头文件(.h

10、)(3)库文件()库文件(rts2xx.lib)(4)命令文件()命令文件(.cmd)(5)复位和中断向量文件)复位和中断向量文件vectors.asmDSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令114.3.1 C语言文件文件或汇编语言文件语言文件文件或汇编语言文件该文件的扩展名为:该文件的扩展名为:*.c 或或*.asm;该文件内容为该文件内容为DSP所要完成功能的源程序代码。所要完成功能的源程序代码。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言

11、汇编语言和伪指令和伪指令124.3.2 头文件头文件头文件的扩展名为:头文件的扩展名为:*.h ;汇编语言头文件:包含了各种寄存器的名称和地址,此汇编语言头文件:包含了各种寄存器的名称和地址,此外,用户还可以定义各种常量和宏;外,用户还可以定义各种常量和宏;C语言头文件:包含了语言头文件:包含了C语言定义下的各种语言定义下语言定义下的各种语言定义下的各种寄存器和地址,还包含支持的各种寄存器和地址,还包含支持C语言的的各种库函数;语言的的各种库函数;头文件必须放在头文件必须放在C源程序的开始,并使用源程序的开始,并使用“include”语句声明和添加。或者在汇编主程序的开始使用汇编伪语句声明和添

12、加。或者在汇编主程序的开始使用汇编伪指令指令.include、.copy对头文件进行调用。对头文件进行调用。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令13头文件部分寄存器和宏定义举例:头文件部分寄存器和宏定义举例:;-IMR .set 0004h ;中断屏蔽寄存器中断屏蔽寄存器IFR .set 0006h ;中断标志寄存器中断标志寄存器;-DELAY_S .macro delay_value ;延时延时= 0.05s 延延 时计数时计数RPT #delay_valueNOP.endm调用宏:调用宏:DELA

13、Y_S 0AC5HDSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令14头文件头文件F2407.h,在该文件中寄存器都以指针方式进行寻址。,在该文件中寄存器都以指针方式进行寻址。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令154.3.3 命令文件命令文件 扩展名为扩展名为*.cmd ,实现对程序存储空间和数据存储器,实现对程序存储空间和数据存储器空间的分配;它由三部分组成:一是输入输出文件和选空间的分配;它由三部分组成:一是输入输

14、出文件和选项等(该部分可以省略),二是目标存储器定义,使用项等(该部分可以省略),二是目标存储器定义,使用伪指令伪指令MEMORY定义,三是各段的定位,由定义,三是各段的定位,由SECTIONS命令定义命令定义 。 MEMORY伪指令用来标示实际存在目标系统中并且伪指令用来标示实际存在目标系统中并且可被使用的存储器范围。每个存储器范围有名字、起始可被使用的存储器范围。每个存储器范围有名字、起始地址和长度。地址和长度。 SECTIONS伪指令的作用是:描述输入段怎样被组伪指令的作用是:描述输入段怎样被组合到输出段;在可执行程序内定义输出段;规定在存储合到输出段;在可执行程序内定义输出段;规定在存

15、储器内何处放置输出段;允许重命名输出段。器内何处放置输出段;允许重命名输出段。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令16MEMORYPAGE0:/*程序存储器程序存储器*/name1(attr): origin=constant,length=constant;namen(attr): origin=constant,length=constant;PAGE1:/*数据存储器数据存储器*/name1(attr): origin=constant,length=constant;namen(attr):

16、origin=constant,length=constant;PAGE2:/*I/O空间空间*/name1(attr): origin=constant,length=constant;namen(attr): origin=constant,length=constant;DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令17 SECTIONSname:property,property,property,name:property,property,property,name:property,propert

17、y,property,DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令18 每一个以每一个以name开始的段的规格说明定义了一个输出开始的段的规格说明定义了一个输出段。在段名之后是特性列表,定义段的内容以及它们是段。在段名之后是特性列表,定义段的内容以及它们是怎样被分配的。怎样被分配的。(1) 装载位置,规定段将被装载在存储器内何处。装载位置,规定段将被装载在存储器内何处。(2) 运行位置,定义段将在存储器内何处运行。运行位置,定义段将在存储器内何处运行。(3) 输入段,定义组成输出段的输入段。输入段,定义组成输

18、出段的输入段。(4) 段类型,定义特定段类型的标志。段类型,定义特定段类型的标志。(5) 填充值,定义用于填充未初始化空位的数值。填充值,定义用于填充未初始化空位的数值。 DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令19命令文件举例命令文件举例MEMORY伪指令和伪指令和SECTION伪指令:伪指令:MEMORYPAGE0:VECS:origin=0000h,length=0040h/* 程序程序复位复位*/PVECS:origin=0040h,length=0F00h/* 外设中断向量外设中断向量*/PM:

19、origin=1000h,length=6000hPM1:origin=7000h,length=1000hPM2:origin=8000h,length=800h/* 如果如果PON=1,则为,则为SARAM*/B0_PM:origin=0FF00h,length=100h/* 如果如果CNF=1,则为,则为DARAM B0块块*/PAGE1:MMRS:origin=0000h,length=0060hB2:origin=0060h,length=0020h/*DARAM B2 块块*/ B0:origin=0200h,length=0100h/*如果如果CNF=0则为则为DARAM B0

20、块块*/B1:origin=0300h,length=0100h/* DARAM B1块块*/SARAM:origin=0800h,length=0800h/* 如果如果DON=1则为则为SARAM*/ PERIPH:origin=7000h,length=1000h/* 外设帧外设帧*/EXTRAM:origin=8000h,length=8000h/* 外部扩展外部扩展RAM*/PAGE2:IO_EX:origin=0000h,length=0FFF0hIO_IN:origin=0FFF0h,length=0FhDSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息

21、学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令20SECTIONS.reset:VECSPAGE0/* 复位中断向量复位中断向量*/.vectors:VECSPAGE0/* 中断向量表中断向量表*/.pvecs:PVECSPAGE0/* 外设中断向量表外设中断向量表*/.text:PMPAGE0/* 代码代码*/.table:PMPAGE0.bss:B1PAGE1.data0:B0PAGE1.data2:B2PAGE1.stack:SARAMPAGE1DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令214.

22、3.4 中断向量文件中断向量文件中断向量文件中断向量文件vectors.asm定义了系统中各种中断服务程序定义了系统中各种中断服务程序的的入口地址入口地址。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令224.3.5 库文件库文件rts2xx.librts2xx.lib库文件可在库文件可在C:CCStudio_v3.1C2400cgtoolslib下找到,不得修改,完全复制到需要的地方。下找到,不得修改,完全复制到需要的地方。rts2xx.lib包含以下内容:包含以下内容:ANSIC标准库;标准库;系统启动程序

23、系统启动程序_c_int0;允许允许C访问特殊指令的函数和宏。访问特殊指令的函数和宏。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令234.4 C语言和汇编语言混合编程方法语言和汇编语言混合编程方法4.4.1 在在C语言中嵌入汇编语言程序语言中嵌入汇编语言程序1. 在在C语言中嵌入单条汇编语句语言中嵌入单条汇编语句/系统初始化程序系统初始化程序void inital( )asm(setc SXM) ;/SXM位置位置1,抑制符号扩展位,抑制符号扩展位asm(clrc OVM) ;/OVM位清位清0,累加器中结果

24、正常溢出,累加器中结果正常溢出asm(clrc CNF);/CNF位清位清0,B0被映射到数据存储器空间被映射到数据存储器空间DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令242. 在在C语言中嵌入实现某一完整功能的多条汇编语句语言中嵌入实现某一完整功能的多条汇编语句 在在C语言中调用汇编语言编写的子程序,语言中调用汇编语言编写的子程序,用户必须遵用户必须遵循相关规则自行维护模块的入口和出口代码,循相关规则自行维护模块的入口和出口代码,主要应弄主要应弄清楚堆栈的使用情况。清楚堆栈的使用情况。DSP原理及应用原理

25、及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令254.5 分开编写分开编写C语言和汇编语言程序语言和汇编语言程序1. 分离的分离的C语言程序和汇编语言程序接口语言程序和汇编语言程序接口 须注意:在编写汇编语言程序时,必须遵守有关调须注意:在编写汇编语言程序时,必须遵守有关调用规则和寄存器规则,这样不会影响用规则和寄存器规则,这样不会影响C语言程序的运行环语言程序的运行环境。境。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令262. 在在C语言程序中

26、访问汇编语言程序的变量语言程序中访问汇编语言程序的变量 2种操作方法:种操作方法:(1)汇编变量在汇编变量在.bss段中定义段中定义采用采用.bss命令定义变量命令定义变量采用采用.global命令定义变量命令定义变量在变量名前加一下划线在变量名前加一下划线“_”在在C语言程序中将变量说明为外部变量语言程序中将变量说明为外部变量DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令27(2)用用.set和和.global命令定义的常数。命令定义的常数。在汇编语言中将常数符号定义成全局常数;在汇编语言中将常数符号定义成全

27、局常数;在在C语言程序中访问汇编语言程序中的常数时,应语言程序中访问汇编语言程序中的常数时,应在常数前加一个地址符号在常数前加一个地址符号“&”DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令283. 在汇编语言程序中访问在汇编语言程序中访问C语言程序变量语言程序变量在在C语言程序中定义变量语言程序中定义变量(如如x);在汇编语言程序中使用前面加下划线在汇编语言程序中使用前面加下划线“_”(如如_x)。DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令294.6 用用C语言处理语言处理 DSP中断中断1. 通过软件识别中断标志的方法实现可屏蔽的中断通过软件识别中断标志的方法实现可屏蔽的中断 例如,要实现捕捉单元例如,要实现捕捉单元4的中断的中断(CAP4INT),则先建立则先建立一个复位和中断向量文件一个复位和中断向量文件vectors.asm.title vectors.asm.ref _c_int0,_nothing,_capint ;定义每个需要用到的符号定义每个需要用到的符号.sect .vectorsreset: b _c_int0 ;复位向量复位向量INT1: b _

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论