版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科学下册试题及答案
- 大数据全息感知资源调度
- 量子计算探索
- 计算机二级MS Office高级应用通关宝典及全真模拟题
- 2026年孝感安陆市“政聘企培”人才引进30人备考题库附参考答案详解【能力提升】
- 人工智能大模型应用-第6篇
- 2026浙江宁波市鄞城商贸发展有限公司招聘市场管理1人模拟试卷(考点梳理)附答案详解
- 2026新疆阿克苏地区招聘高中教师39人笔试题库AB卷附答案详解
- 21.庄子二则北冥有鱼(教学课件)(共35张)初中语文统编版(2024)八年级下册
- 量子通信大数据风险预测模型
- 新能源汽车电池回收拆解项目在2025年的技术突破可行性研究报告
- 对外投资合作国别(地区)指南-越南(2025年版)
- 潜水泵安装施工方案及工艺方法
- (2025年)宜昌市夷陵区社区网格员招录考试真题及答案
- 2026年生成式AI驱动的智慧短视频创作应用与案例分析
- 招标采购代理规范
- 反家暴反歧视培训课件
- 牙再植知情同意书
- 《JYT 0584-2020扫描电子显微镜分析方法通则》(2026年)实施指南
- 中学自主招生数学模拟试卷合集
- 消化道早癌筛查与早诊早治方案
评论
0/150
提交评论