第5章 'C54x汇编语言程序设计

第5章 TMS320C54x汇编语言程序设计

内容提要

汇编语言程序设计是应用软件设计的基础,主要任务是利用汇编指令和伪指令编写源程序以完成指定的功能。

本章将结合例子介绍TMS320C54x汇编语言源程序设计的基本方法,涉及的内容包括:

汇编语言源程序的格式

常数、字符串、符号和表达式的规定

堆栈的使用方法

分支、调用、返回控制程序

加法、乘法、除法、长字和并行运算程序

单指令、块重复、循环嵌套等重复操作程序

数据块传送程序

小数运算程序和浮点运算程序

5.1 概述

TMS320C54x汇编语言源程序由源语句组成。这些语句可以包含汇编语言指令、汇编伪指令和注释。程序的编写必须符合一定的格式,以便汇编器将源文件转换成机器语言的目标文件。

本节将介绍汇编语言源程序的格式、各种常数、符号、字符串和表达式的规定。

汇编语言程序以.asm为扩展名,可以用任意的编辑器编写源文件。一条语句占源程序的一行,长度可以是源文件编辑器格式允许的长度,但汇编器每行最多读200个字符。因此,语句的执行部分必须限制在200个字符以内。

5.1.1 汇编语言源程序格式

1. 源文件格式

助记符指令源语句的每一行通常包含4个部分:标号区、助记符区、操作数区和注释区。

助记符指令语法格式:

[标号][:] 助记符 [操作数] [; 注释]

【例5.1.1】 助记符指令源语句举例。

语句的书写规则:

① 所有语句必须以标号、空格、星号或分号(*或;)开始;

② 标号是可选项,若使用标号,则标号必须从第一列开始;

③ 所有包含有汇编伪指令的语句必须在一行完成指定;

④ 各部分之间必须用空格分开,Tab字符与空格等效;

⑤ 程序中注释是可选项。如果注释在第一列开始时,前面必须标上星号或分号,在其他列开始的注释前面必须以分号开头;

⑥ 如果源程序很长,需要书写若干行,可以在前一行用反斜杠字符(\)结束,余下部分接着在下一行继续书写。

2.标号

所有汇编指令和大多数汇编伪指令都可以选用标号,供本程序或其它程序调用。

① 标号必须从语句的第1列写起,其后的冒号“:”可任选;

② 标号为任选项,若不使用标号,则语句的第一列必须是空格、星号或分号;

③ 标号是由字母、数字以及下划线和美元符号等组成,最多可达32个字符;

④ 标号分大小写,且第一个字符不能是数字。

在使用标号时,标号的值是段程序计数器SPC的当前值。

例如,若使用.word伪指令初始化几个字,则标号将指到第一个字。

【例5.1.2】 标号格式举例。

… …

9 000000 ;假设汇编了某个其他代码

10 000040 000A Start: .word 0Ah,3,7

000041 0003 └──标号,值为40h

000042 0007

3.助记符

助记符用来表示指令所完成的操作,可以是汇编语言指令、汇编伪指令、宏伪指令。

助记符指令:一般用大写,不能从第一列开始 ;

汇编伪指令:用来为程序提供数据和控制汇编进程。以句号“.”开始,且用小写;

宏伪指令:用来定义一段程序,以便宏调用来调用这段程序。以句号“.”开始,且用小写;

宏调用:用来调用由宏伪指令定义的程序段。

4.操作数

操作数是指指令中参与操作的数值或汇编伪指令定义的内容,紧跟在助记符的后面,由一个或多个空格分开。

? 操作数之间必须用逗号“,”分隔;

操作数可以是常数、符号或表达式;

操作数中的常数、符号或表达式可用来作为地址、立即数或间接地址;

(1) 指令的操作数前缀

? 汇编器允许指定的常数、符号或表达式作为地址、立即数或间接地址。

作为操作数的前缀有三种情况:

使用“#”符号作为操作数的前缀;

使用“*”符号作为操作数的前缀;

使用“@” 符号作为操作数的前缀。

① 用“#” 作前缀

使用“#”号作为前缀,汇编器将操作数作为立即数处理。即使操作数是寄存器或地址,也将作为立即数。

如果操作数是地址,汇编器将把地址处理为一个数值,而不使用地址的内容。

例如: Label: ADD # 99, B

操作数# 99是一个立即数。

② 用“*”作前缀

使用“*”符号作为前缀,汇编器将操作数作为间接地址,即把操作数的内容作为地址。

例如:Label: LD * AR3, B

操作数*AR3指定一个间接地址。该指令将引导汇编器找到寄存器AR3的内容作为地址,然后将该地址中的内容装入指定的累加器B中。

③ 用“@”作前缀

使用“@

c54x汇编语言程序设计,第5章 apos;C54x汇编语言程序设计.doc相关推荐

  1. java语言程序设计第六章答案_Java语言程序设计(邵丽萍编著)第六章.doc

    Java语言程序设计(邵丽萍编著)第六章 第6章 (一)判断题 (1)抽象类不能实例化. ( ) (2)一个类中,只能拥有一个构造方法. ( ) (3)内部类都是非静态的. ( ) (4)接口中的所有 ...

  2. java语言程序设计第六章答案_Java语言程序设计(一)课后习题第六章(附答案)

    六.重载与多态 1.判断:接口中的所有方法都没有被实现.() 2.方法重载是指 ( ) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同 B.两个以上的方法取相同的名字和具有相同的参数个 ...

  3. c语言程序设计教程第二版张磊,C语言程序设计实验与实训指导及题解(第2版)-张磊...

    ?本书是普通高等教育"十一五"规划教材<C语言程序设计>(第2版)的配套辅导教材,全书主要包括实验指导.综合程序设计指导和习题解答三部分内容. 实验指导部分对应主教材各 ...

  4. 伪指令endp告诉汇编程序_第2章 指令系统及汇编语言程序设计 题库和答案

    第 2 章 指令系统及汇编语言程序设计 ________________________________________ 一.选择题 1 .指令 ADD CX , 55H 的源操作数的寻址方式是 (  ...

  5. 计算机组成原理中EMAR是什么,计算机组成原理与汇编语言程序设计第3章2

    1.1,2,第3节 CPU模型机的组成及其数据通路,3.3.1 基本组成,模型机数据通路结构图,3,3.3.1 基本组成,1寄存器,(1)可编程寄存器,通用寄存器有4个:R0.R1.R2.R3:堆栈指 ...

  6. 80c51汇编语言程序案例指导,新第4章80C51的汇编语言程序设计

    <新第4章80C51的汇编语言程序设计>由会员分享,可在线阅读,更多相关<新第4章80C51的汇编语言程序设计(36页珍藏版)>请在人人文库网上搜索. 1.2020/6/30, ...

  7. 计算机组成原理 俸远桢,计算机组成原理与汇编语言程序设计第5章.ppt

    计算机组成原理与汇编语言程序设计第5章.ppt (86页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 23.9 积分 计算机组成原理与汇编语言程序设计(第 ...

  8. 计算机专业需要汇编语言,重点大学计算机专业系列教材·汇编语言程序设计

    重点大学计算机专业系列教材·汇编语言程序设计 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! <重点大学计算机专业系列教材·汇编语言程 ...

  9. c语言程序的引言,C语言程序设计-第1章-引言

    <C语言程序设计-第1章-引言>由会员分享,可在线阅读,更多相关<C语言程序设计-第1章-引言(80页珍藏版)>请在人人文库网上搜索. 1.c语言编程,2,1 .你为什么学这门 ...

  10. c语言中二维数组中维数的计算,数组指针字符串C语言程序设计-第4章.ppt

    <数组指针字符串C语言程序设计-第4章.ppt>由会员分享,可在线阅读,更多相关<数组指针字符串C语言程序设计-第4章.ppt(132页珍藏版)>请在人人文库网上搜索. 1.程 ...

最新文章

  1. oracle 生成目录树,jQuery zTree插件快速实现目录树
  2. python怎么调用方法_python中怎么调用自己的方法
  3. java 拼sql最大长度,java.sql.SQLNonTransientConnectionException: 用户 ID 长度 (0) 超出 1 到 255 的范围...
  4. C++自定义改进alph均值滤波
  5. 树莓派外设开发之控制继电器(组)
  6. Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)
  7. 联想超融合平台oracle,联想AIO超融合云一体机解决方案.pdf
  8. ios kvo 要引入_iOS多线程之超实用理论+demo演示(可下载)
  9. C语言按位运算符 按位逻辑运算 移位运算 及其用法
  10. 实现算法2.11、2.12的程序
  11. 对check list理解
  12. access 文本转换数字_ACCESS的短文本和长文本分类
  13. Python 如何从字符串中提取 URL 链接
  14. 论文阅读-主干网络(2022)-ConvNext:下一代卷积网络
  15. 不定积分/定积分——三角函数n次方不定积分公式(包含sec^nx与csc^nx不定积分公式)
  16. android-sdk环境变量配置
  17. 《杂记》- 之- 使用windows终端命令查看文件的MD5
  18. CAD绘图软件使用技巧总结及CAD快捷键大全
  19. 关闭windows端口的批处理命令
  20. 大数据概论 (理论基础)

热门文章

  1. 网站程序 Bin目录下 dll无法删除,删除并编译后自动重新引用的解决方法
  2. Android自动打包、签名、优化、上传ANT脚本
  3. 迁移 Linux 系统,第 1 部分——如何迁移备份和裸机恢复 Linux 系统
  4. linux设置系统环境变量的天坑
  5. GlusterFS 部署和应用
  6. android84 广播接受者
  7. 【翻译】MobileWeb开发的性能调优技巧
  8. Intel 45 纳米处理器加速VMware虚拟架构普及
  9. linux内核IO模块plug/unplug机制
  10. 编程基础(一)——计算机中的数