DSP-9DSP汇编语言编程的基本方法1.pptVIP

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP-9DSP汇编语言编程的基本方法1

第9讲 汇编语言编程的 基本方法Ⅰ 9.1 汇编语言源程序格式 TMS320C54x汇编语言源程序由源语句组成。这些语句可以包含汇编语言指令、汇编伪指令和注释。程序的编写必须符合一定的格式,以便汇编器将源文件转换成机器语言的目标文件。 本节将介绍汇编语言源程序的格式、各种常数、符号、字符串和表达式的规定。 9.1.1 汇编语言句法格式 汇编语言程序以.asm为扩展名,可以用任意的编辑器编写源文件。 (1)语句的书写规则 ①所有语句必须以标号、空格、星号或分号(*或;)开始; ②标号是可选项,若使用标号,则标号必须从第一列开始; ③所有包含有汇编伪指令的语句必须在一行完成指定; ④各部分之间必须用空格分开,Tab字符与空格等效; ⑤程序中注释是可选项。如果注释在第一列开始时,前面必须标上星号或分号,在其他列开始的注释前面必须以分号开头; ⑥如果源程序很长,需要书写若干行,可以在前一行用反斜杠字符(\)结束,余下部分接着在下一行继续书写。 (2)标号 标号必须从语句的第1列写起,其后的冒号“:”可任选; 标号为任选项,若不使用标号,则语句的第一列必须是空格、星号或分号; 标号是由字母、数字以及下划线和美元符号等组成,最多可达32个字符; 标号分大小写,且第一个字符不能是数字。 在使用标号时,标号的值是段程序计数器SPC的当前值。 (3)注释 用来说明指令功能的文字,便于用户阅读。 注释可位于句首或句尾,位于句首时,以“*”或“;”开始,位于句尾时,以分号“;”开始。 注释可单独一行或数行; 注释是任选项。 例如: .bss sym, 19 ; 保留空间于.bss ************************************** * 改变段,允许第五个‘mylab’定义 * ************************************** 9.1.2 汇编语言中的常数与字符串 汇编器可支持7种类型的常数(常量)。 汇编时间常数 在程序中使用.set伪指令给一个符号赋值,该符号就成为一个汇编时间常数,等效于一个常数。 为了使用表达式中的常数,赋给符号的必须是绝对值。 例如:将常数值18赋给符号bei_hua。 bei_hua .set 18 LD # bei_hua,A 9.1.3 汇编源程序中的符号 汇编程序中的符号用于标号、常数和替代字符。 由字母、数字以及下划线和美元符号(A~Z,a~z,0~9,_和$)等组成; 符号名最多可长达200个字符; 在符号中,第1位不能是数字,并且符号中不能含空格。 作为标号的符号代表在程序中对应位置的符号地址。 符号也可被设置成常数值。为了提高程序的可读性,可以用有意义的名称来代表一些重要的常数值。 9.1.4 汇编源程序中的表达式 有效定义的表达式 某些汇编器要求有效定义的表达式作为操作数。操作数是汇编时间常数或链接时可重定位的符号。 有效定义的表达式是指表达式中的符号或汇编时间常数在表达式之前就已经被定义。 有效定义的表达式的计算必须是绝对的。 9.2 堆栈的使用 堆栈的使用 例: 设计一存储空间为100个单元的堆栈。 size  .set 100 ;设置堆栈空间的 ;大小为100 stack .usect “STK”, size ;设置堆栈段的首地址 ;和堆栈空间    STM #stack+size, SP ;将栈底地址指针送SP, ; 对其初始化 设置好堆栈后,就可以使用堆栈了,如: CALL pmad ;(SP)-1→SP,(PC)+2→TOS, ;pmad→PC RET ;(TOS)→PC,(SP)+1→SP 堆栈的使用 9.3 算术运算程序 乘累加运算 例:计算 ******************************************** * example.asm * *********

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档