- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章__TMS320C54x汇编语言程序设计
4.2.3 分支结构程序 程序的分支主要是靠条件转移指令来实现的。TMS320C54x具有丰富的程序控制与转移指令,利用这些指令可以执行分支转移、循环控制以及子程序操作。分支转移指令(如B、BACC、BC等)通过改写PC,以改变程序的流向。分支结构也称条件结构。 【例2】 试编制程序,求一个数的绝对值,并送回原处。 源程序编制如下: ************************************************ * ex42.asm ABS of positive or negative * ************************************************ .title ex42.asm .mmregs STACK .usect STACK,10H ; 开辟堆栈空间 .bss x,1 ; 为变量分配一个字的空间 .def start .data table: .word -7 .text start: STM #0,SWWSR ; 零等待状态 STM #STACK+10H,SP ; 设置堆栈指针 STM #x,AR1 MVPD table,*AR1 LD *AR1,A BC end,AGET ; 若A0,则转至end,否则往下执行 ABS A STL A,@x end: B end .end 4.2.4 循环结构程序 循环结构程序设计主要用于某些需要重复进行的操作,它简化程序,节约内存。 循环结构程序的设计可分为设置循环初始状态、循环体和循环控制条件三部分。 循环初始状态主要是指设置循环次数的计数初值,以及其他为能使循环体正常工作而设置的初始状态等(比如缓冲区首地址)。 循环体是循环操作(重复执行)部分,包括循环的工作部分及修改部分。循环的工作部分是实现程序功能的主要程序段;循环的修改部分是指当程序循环执行时,对一些参数(如地址、变量)的有规律的修正。 循环控制部分是循环程序设计的关键。每个循环程序必须选择一个控制循环程序运行和结束的条件。 使用循环指令BANZ(当辅助寄存器不为0时转移)执行循环计数和操作是十分方便的。 【例3】 试编制程序,在4项乘积aixi(i=1,2,3,4)中找出最大值,并存放在累加器A中。 源程序编制如下: .title ex43.asm .mmregs STACK .usect STACK,10H .bss a,4 .bss x,4 .def start .data table: .word 1,2,3,4 .word 8,6,9,7 .text start: STM #0,SWWSR STM #STACK+10H,SP STM #a,AR1 RPT #7 MVPD table,*AR1+
文档评论(0)