2407DSP第4章汇编语言和伪指令范例.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 汇编语言和伪指令 4.1 汇编语言程序设计 采用汇编语言,用户可以直接操作到处理器内部的工作寄存器和片内RAM单元,能把数据的处理过程表述得非常具体和详实。 汇编语言并不独立于具体机器,是一种非常通用的低级程序设计语言。 4.1.1 汇编语言源程序格式 典型的汇编语言格式是四段式格式: 标号段: 操作码段 操作数段 ; 注释段 LABLE : OPCODE OPRAND ;COMMENT 其中操作码段是必选项,任何语句都必须有操作码段。如果是多个操作数,中间用逗号隔开。 P1:ADD #1 ;ACC加1,结果保存在ACC中 BCND P1,LEQ ;如果ACC≤0则转到P1 4.1.2 常用伪指令介绍 [指令语句] 每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(CPU)、存储器、I/O接口等硬件设备来实现的。 条件汇编伪指令 以下分两种情况介绍条件汇编伪指令。 (1) 第一种情况: .if well-defined expression .elseif well-defined expression .else .endif (2) 第二种情况: .loop [well-defined expression] .break [well-defined expression] .endloop 4.2 C语言程序设计 用汇编语言编写程序是一件繁杂的事情,开发周期相对较长。因此各个DSP公司都推出了相应的高级语言(如C语言),使得DSP芯片的软件可以直接使用高级语言写成。,从而大大提高DSP芯片的开发速度,也使程序的修改和移植变得十分方便。 C语言程序文件的后缀名为.c。在该程序中实现DSP要完成的功能,由开发人员编写。 C编译器概述 TMS320C2xx C编译器是一个功能齐全的优化编译器。它的主要功能是把标准的ANSI C语言程序转换成TMS320 DSP芯片能够识别执行的汇编语言代码。 4.3 调试时需要的五种文件 调试时需要以下五种文件: (1)C语言程序(.c)或者汇编语言文件(.asm) (2)头文件(.h) (3)库文件(rts2xx.lib) (4)命令文件(.cmd) (5)复位和中断向量文件vectors.asm 4.3.1 C语言文件文件或汇编语言文件 该文件的扩展名为:*.c 或*.asm; 该文件内容为DSP所要完成功能的源程序代码。 4.3.2 头文件 头文件的扩展名为:*.h ; 汇编语言头文件:包含了各种寄存器的名称和地址,此外,用户还可以定义各种常量和宏; C语言头文件:包含了C语言定义下的各种语言定义下的各种寄存器和地址,还包含支持C语言的的各种库函数; 头文件必须放在C源程序的开始,并使用“#include”语句声明和添加。或者在汇编主程序的开始使用汇编伪指令.include、.copy对头文件进行调用。 头文件部分寄存器和宏定义举例: ; IMR .set 0004h ;中断屏蔽寄存器 IFR .set 0006h ;中断标志寄存器 ; DELAY_S .macro delay_value ;延时= 0.05μs ×延 时计数 RPT #delay_value NOP .endm 调用宏: DELAY_S 0AC5H 4.3.3 命令文件 扩展名为*.cmd ,实现对程序存储空间和数据存储器空间的分配;它由三部分组成:一是输入输出文件和选项等(该部分可以省略),二是目标存储器定义,使用伪指令MEMORY定义,三是各段的定位,由SECTIONS命令定义 。 MEMORY伪指令用来标示实际存在目标系统中并且可被使用的存储器范围。每个存储器范围有名字、起始地址和长度。 SECTIONS伪指令的作用是:描述输入段怎样被组合到输出段;在可执行程序内定义输出段;规定在存储器内何处放置输出段;允许重命名输出段。 MEMORY { PAG

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档