TMS320C54x汇编语言控制程序_第1页
TMS320C54x汇编语言控制程序_第2页
TMS320C54x汇编语言控制程序_第3页
TMS320C54x汇编语言控制程序_第4页
TMS320C54x汇编语言控制程序_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

TMS320C54x汇编语言控制程序2026/7/517:072

’C54x具有丰富的程序控制指令,利用这些指令可以执行分支转移、子程序调用、子程序返回,条件执行以及循环等控制操作。1

分支操作程序

程序控制中的分支操作包括:

分支转移程序子程序调用子程序返回条件操作程序

2026/7/517:0731

分支操作程序

通过传送控制到程序存储器的其他位置,分支转移会中断连续的指令流。

分支转移指令可以改写PC值,使程序改变流向。其指令分为无条件分支转移和条件分支转移两类。两者都可以带延时操作和不带延时操作。

1.

分支转移程序分支转移指令

分类

指令

说明

无条件分支转移

B[D]

用该指令指定的地址加载PC

BACC[D]

用累加器的低16位指定的地址加载PC条件分支转移

BC[D]

若满足指令给定条件,用该指令指定的地址加载PC

BANG[D]

若当前选择辅助寄存器不等于0,用该指令指定的地址加载PC远程分支转移

FB[D]

用该指令指定的地址加载PC和XPC

FBACC[D]

用累加器的低23位指定的地址加载PC和XPC2026/7/517:074

无条件分支转移:无条件执行分支转移;

条件分支转移:要在满足用户一个或多个条件时才执行分支转移;

远程分支转移:允许分支转移到扩展存储器。

1.

分支转移程序【例1】分支转移举例。

STM#88H,AR0

LD#1000H,Azhong:SUBAR0,A

BCzhong,AGT,AOV

;将操作数#88H装入AR0

;将操作数#1000H装入ACC

;将A中的内容减去AR0中的

;内容结果装入A

;若累加器A>0且溢出,

;则转至zhong,否则往下执行

2026/7/517:0751

分支操作程序

与分支转移一样,通过传送控制到程序存储器的其他位置,子程序调用会中断连续的指令流。但是与分支转移不同的是,这种传送是临时的。

当函数的子程序被调用时,紧跟在调用后的下一条指令的地址保存在堆栈中。这个地址用于返回到调用程序并继续执行调用前的程序。

子程序调用操作分成两种形式:无条件调用和条件调用,两者都可以带延时操作和不带延时操作。

2.

子程序调用程序2026/7/517:0762.

子程序调用程序子程序调用指令分类

指令

说明

无条件调用

CALL[D]将返回的地址压入堆栈,并用该指令指定的地址加载PC

CALA[D]将返回的地址压入堆栈,用累加器A或B指定的地址加载PC条件调用

CC[D]

如果满足指令给定条件,将返回的地址压入堆栈,并用该指令指定的地址加载PC远程调用

FCALL[D]将XPC和PC压入堆栈,并用该指令指定的地址加载PC和XPC

FCALA[D]将XPC和PC压入堆栈,用累加器的低23位指定的地址加载PC和XPC2026/7/517:0772.

子程序调用程序

无条件调用是指无条件执行调用。

条件调用和无条件调用操作相同,但是条件调用要在满足一个或多个条件时才执行调用。

远程调用允许对扩展存储器的子程序或函数进行调用。

2026/7/517:0782.

子程序调用程序【例2】

子程序调用举例。

STM#123H,AR0LD#456H,AR1CALLnewLDAR1,16,Anew:MPYAR0,AR1,A

RET

;将操作数#123H装入AR0

;将操作数#456H装入AR1

;调子程序new

;将AR1的内容左移16位后装入A

;AR0与AR1的内容相乘,结果放入A中

;子程序返回

2026/7/517:0791

分支操作程序

子程序返回程序可以使程序重新在被中断的连续指令处继续执行。

返回指令通过将弹出堆栈的值(包含将要执行的下一条指令的地址),送到程序计数器PC来实现返回功能。

’C54x可以执行无条件返回和条件返回,并且它们都可以带延时或不带延时操作。

3.

子程序返回程序2026/7/517:07103.

子程序返回程序子程序返回指令分类

指令

说明

无条件返回

RET[D]将堆栈顶部的返回地址加载到PC。

RETE[D]

将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。

RETF[D]

将RTN寄存器中的返回地址加载到PC,并使能可屏蔽中断。条件返回

RC[D]如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。远程返回

FCALL[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC。

FCALA[D]将堆栈顶部的值弹出加载到XPC,将堆栈中下一个值弹出加载到PC,并使能可屏蔽中断。2026/7/517:07113.

子程序程序

无条件返回是无条件执行返回操作。

条件返回可以给予被调用函数或中断服务程序(ISR)更多的返回方式,以便根据被处理的数据选择返回路径,通过使用条件返回指令来实现返回。

远程返回允许从扩展存储器的子程序或函数返回。

2026/7/517:07121

分支操作程序

’C54x的一些指令只有在满足一个或是多个条件后才被执行,如条件分支转移、条件调用和条件返回等指令。

这些指令都用条件来限制分支转移、调用和返回操作。这些条件可用条件算符来表示。

4.

条件操作程序2026/7/517:07134.

条件操作程序条件算符操作符号条件说

明操作符号条件说

明AEQA=0累加器A等于0

AOVAOV=1累加器A溢出BEQB=0累加器B等于0

BOVBOV=1累加器B溢出ANEQA0累加器A不等于0

ANOVAOV=0累加器A不溢出BNEQB0累加器B不等于0

BNOVBOV=0累加器B不溢出ALTA<0累加器A小于0

CC=1ALU进位位置1

BLTB<0累加器B小于0

NCC=0ALU进位位置0

ALEQA0累加器A小于等于0

TCTC=1测试/控制标志位置1

BLEQB0累加器B小于等于0

NTCTC=0测试/控制标志位置0

AGTA>0累加器A大于0

BIOBIO低BIO信号电平为低BGTB>0累加器B大于0

NBIOBIO高BIO信号电平为高AGEQA0累加器A大于等于0

UNC无无条件操作BGEQB0累加器B大于等于0

2026/7/517:07144.

条件操作程序

在条件操作时也可以要求有多个条件,只有所有条件满足时才被认为是满足条件。这种多个条件的组合就构成了指令的多重条件。多重条件算符第1组第2组A类B类A类B类C类EQ

NEQLEQGEQLT

GTOVNOVTCNTCCNCBIONBIO2026/7/517:07154.

条件操作程序

选用多重条件时应当注意以下几点:

第1组:分为两类,最多可选择两个条件,

组内两类条件可以与/或构成多重条件,但不能用组内同类条件构成与/或多重条件。

③组与组之间可用或构成多重条件。

当选择两个条件时,累加器必须是同一个。例如,可以同时选择AGT和AOV,但不能同时选择AGT和BOV。

②第2组:分为三类,最多可选三个条件,可以在每类中各选一个条件进行与/或构成多重条件,但不能在同类选两个以上条件。

例如,可以同时测试TC、C和BIO,但不能同时测试NTC、C和NC。2026/7/517:07164.

条件操作程序【例3】

条件操作程序。

BCsub,BLEQ

;条件分支转移

若累加器B≤0,则转至sub,

否则,往下执行

CCstart,AGEQ,AOV

;条件调用

若累加器A≥0且溢出,

则调用start,否则往下执行

RCNTC

;条件返回

若TC=0,则返回,否则往下执行

2026/7/517:07174.

条件操作程序注意:

若需要多个条件相与时,用单条指令表示。

如:BCnew,AGT,AOV

转移条件:AGT和AOV的与逻辑

若需要两个条件相或时,需用两条指令分别表示。

如:若累加器A大于0或溢出,则转移至sub

转移条件:AGT和AOV的或逻辑

BCsub,AGT

BCsub,AOV2026/7/517:07181

分支操作程序5.

比较转移程序

利用比较指令CMPR可实现比较转移操作。比较操作指令:

CMPR测试条件,辅助寄存器ARx

指令功能:辅助寄存器ARx与AR0进行比较,若比较结果使所给定的测试条件成立,则TC位置1。实现方法:①通过CMPR的比较结果得TC值;

②根据TC值,由条件转移指令实现分支转移。

2026/7/517:07195.

比较转移程序例如:比较操作后条件分支转移

STM#5,AR1

;AR1=5

STM

#10,AR0

;AR0=10loop:

…*AR1+

;AR1=AR1+1

CMPRLT,AR1

;若AR1-AR0<0,则TC=1,否则为0

BCloop,TC

;若AR1-AR0<0,则循环

若AR1=AR0,则顺序执行2026/7/517:0720

控制程序2

循环操作程序

在程序设计时,经常需要重复执行某一

温馨提示

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

评论

0/150

提交评论