DSP原理及应用PPT教程-第四章 程序流程控制汇.ppt

DSP原理及应用PPT教程-第四章 程序流程控制汇.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP原理及应用PPT教程-第四章 程序流程控制汇

第四章 程序流程控制 程序流程:指的是指令的执行顺序。 C55x中影响指令执行顺序的主要有: 程序跳转(分支) 指令重复执行 条件执行 中断 程序调用 程序的流程控制主要与指令缓冲单元(I单元)和程序流程单元(P单元)有关。 第四章 程序流程控制 P单元产生24位的程序地址,并放到PAB总线上。 I单元的IBQ从32位的程序总线读取32比特的指令代码。 译码器从IBQ中读取48比特的指令进行译码,将指令和立即数分派到相应的单元执行。 第四章 程序流程控制 一、跳转(分支) 跳转:通过跳转指令改变PC的值,使程序跳到指令指定的分支地址执行。跳转指令可以是有条件的,也可以是无条件的。 1、条件跳转 判断条件cond,如果条件成立则将目标地址装入PC,完成跳转。 (1) BCC 14, cond ;4比特长相对PC的无符号偏移 (2) BCC L8, cond ;8比特长相对PC的有符号偏移 (3) BCC L16, cond ;16比特长相对PC的有符号偏移 (4) BCC P24, cond ;24比特的绝对地址。 第四章 程序流程控制 在指令流水线的读(R)环节判断条件cond; cond条件可以是寄存器ACx,ARx,Tx与0值的比较,也可以是测试位TCx以及进位标志CARRY的值。 若条件为真,就把l4、L8、L16、P24指定的程序地址装入PC中,完成分支跳转。 跳转指令不能重复执行。 举例: 第四章 程序流程控制 2、无条件跳转 不需要满足任何条件,直接将目标地址装入PC。 (1) B ACx ;把ACx的低24位的值装入到PC中 (2) B L7 ;7比特长相对PC的有符号偏移 (3) B L16 ;16比特长相对PC的有符号偏移 (4) B P24 ;24比特的绝对地址 第四章 程序流程控制 二、指令重复 指令重复:指重复执行一定次数的一条或者一段指令。包括无条件单指令重复,有条件单指令重复,块重复三种形式。 1、无条件单指令重复: (1) RPT #n; 将下一条指令重复执行n+1次 (2) RPT CSR; CSR单重复寄存器,下一条指令重复CSR+1次 (3) RPTADD CSR, TAx;下一条指令重复CSR+1次后,TAx +CSR-CSR (4) RPTADD CSR, k4;下一条指令重复CSR+1次后,CSR+k4-CSR (5) RPTSUB CSR, k4;下一条指令重复CSR+1次后,CSR-k4-CSR 第四章 程序流程控制 举例:RPTADD CSR, T1 MOV *AR0+, T0 ;重复 CSR + 1次后,T1的值加到CSR中。 2、有条件单重复指令 RPTCC k8,cond;当条件为真时,下一条指令重复K8+1次 每次重复在流水线的执行(X)阶段检查cond定义的条件,当条件不满足时,停止单指令重复。最大重复执行次数为2^8-1=255 举例: RPTCC #7, AC1 #0 ADD #1,AC0 ;AC0=AC0+1 第四章 程序流程控制 以下指令不能用做单指令循环体: B ;跳转 IDLE ;空闲指令 RPTBLOCAL ;块重复 RESET ;软件复位 MOV RPTC, TAx ;RPTC单指令重复计数器 TRAP ;软件陷阱 MOV dbl(Lmem), RETA RPTB ;块重复 CALL ;子程序调用 RPT ;单指令重复 INTR ;中断陷阱 XCC ;条件执行 RET ;从子程序返回 第四章 程序流程控制 3、块重复:同时重复多条指令。 块重复(块循环)的语法形式为: (1) RPTBLOCAL label (2) RPTB label 执行步骤: (1) 重复执行次数由块重复计数器(BRC0或BRC1)定义。 (2) 由RPTB或RPTBLOCAL定义块的开始地址,并放入到块重 复起始地址寄存

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档