信息工程学通信工程系要领.pptVIP

  • 3
  • 0
  • 约9.57千字
  • 约 69页
  • 2017-07-08 发布于湖北
  • 举报
第1组 例如 可以从A类中选一个条件,同时可以从B类中选择一个条件。但是不能从同一类中选择两个条件。 另外,两种条件测试的累加器必须是同一个。 可以同时测试AGT和AOV,但不能同时测试AGT和BGT。 第2组 例如 可以在A、B、C三类中各选择一个条件,但不能从同一类中选择两个条件 可以在A、B、C三类中各选择一个条件,但不能从同一类中选择两个条件 特 例 如果条件分支转移出去的地方只有1~2字的程序段,则可以用一条单周期条件执行指令(XC)来代替分支转移指令: XC n,cond[,cond[,cond]] 当n=1,且条件得到满足,就执行紧随此     条件指令后的1个字指令。 当n=2,且条件得到满足,就执行紧随此     指令后的1个双字指令或者2条单     字指令。   当条件不满足,就依n的值执行1     条或2条NOP指令。 例3-3 编写计算    的主要程序部分。   .bss x,4 ;为X建立4个单元, ;放置X1、X2、X3、X4   .bss y,1 ;为Y建立1个单元,放置Y    STM #x,AR1 ;将X1的地址传给AR1    STM #3,AR2 ;将循环次数3传给AR2    LD #0,A ;对A清零 loop:ADD *AR1+,A ;对X1、X2、X3、X4循环累 ;加,结果放A中   BANZ loop,*AR2- ;检查循环是否应结束   STL A,y ;将累加结果存入Y中 特点2 特点1 4.单条指令的重复操作 重复执行(RC)+1次。RC内容不能编程设置,只能由重复指令(RPT和RPTZ)中的操作数加载。操作数n的最大值为65 535,最大重复执行次数为65 535+1。 一旦重复指令被取指、译码,直到重复循环完成以前,对所有的中断(包括 ,但不包括 )均不响应。 功能 重复执行下一条指令 重复过程 当RPT指令执行时: ①首先把循环的次数装入循环计数器(RC), ②其循环次数n由一个16位单数据存储器操作数 Smem或一个8位或16位常数k或lk给定。这样, 紧接着的下一条指令会循环执行n+1次。 ③循环,RC在执行减1操作时不能被访问。 注意:该循环内不能套用循环。 当RPTZ指令执行时:对目的累加器dst清0, 循环执行下一条指令n+1次。 例3-5 利用单条指令的重复操作对数组x[5]={0,0,0,0,0}进行初始化。 .bss x,5 ;为数组x分配5个存储单元 STM #x,AR1 ;将x的首地址赋给AR1 LD #0,A ;对A清零 RPT #4 ;设置重复执行下条指令5次 STL A,*AR1+;对x[5]各单元清零 或者 .bss x,5 STM #x,AR1 RPTZ A,#4;对A清零并设置重复执行下条指令5次 STL A,*AR1+ 特点 5.块重复操作 利用C54x内部的块重复计数器(BRC,加载值可为0~65 535)、块重复起始地址寄存器(RSA)、块重复结束地址寄存器(REA)与程序块重复指令RPTB,可对紧随RPTB、由若干条指令构成的程序块进行重复操作。 功能 将重复操作的范围扩大到任意长度的循环回路 注意 1.RPT指令一旦执行,不会停止操作,即使有中断请求也不响应; 2.RPTB指令可以响应中断; 例3-6 对数据组x[5]中的每个元素加1。    .bss x,5   ;为数组x分配5个存储单元 begin: LD #1,16,B ;将1左移16位放入B的           ;高端字的最低位    STM #4,BRC ; 4→BRC,(PC)+2 →RSA    STM #x,AR4 ;将x的首地址赋给AR4    RPTB next-1 ;将NEXT-1 →REA    ADD *AR4,16,B,A ;x地址的内容左移16位加 ; B的高端字,结果放A    STH A,*AR4+ ;将A的高端字存入x单元, ;完成加1操作 next: LD #0,B ;对B清零    …      ;必需next-1作为结束地址 对寄存器的占用 6.循环的嵌套 执行RPT指令时占用RPTC寄存器(重复计数器); 执行RPTB指令时要用到BRC、RSA和RSE寄存器。只有一套块重复寄存器,故块重复操作不能嵌套。 由于RPT与RPTB两者用了不同

文档评论(0)

1亿VIP精品文档

相关文档