在c54x的汇编语言中,第4章__TMS320C54x汇编语言程序设计.ppt

第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 ; 若A>0,则转至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 tabl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值