第四章 程序流程控制
程序流程:指的是指令的执行顺序。 C55x中影响指令执行顺序的主要有: 程序跳转(分支) 指令重复执行 条件执行 中断
程序调用
程序的流程控制主要与指令缓冲单元(I单元)和程序流程单元(P 单元)有关。
第四章 程序流程控制
P单元产生24位的程序地址,并放到PAB总线上。
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
RPTBLOCAL和RPTB区别
RPTBLOCAL被定义为指令缓冲队列(IBQ)的本地循环,即直接 从IBQ中获取循环体指令,这样可以减少功率消耗,但是循环 体指令的字数不能超过56个字节。 当循环体指令超过56个字节时,使用RPTB块循环。
第四章 程序流程控制 支持两层块循环 一层循环(外循环):BRC0, RSA0, REA0; 二层循环(内循环): BRC1, RSA1, REA1,BRS1;
第四章 程序流程控制
vector: (4) 执行中断服务程序 rs b _c_int00 nop ISR包含中断返回指令,当中断返回时,自动恢复以前保存 nop nmi b __ret 在寄存器中的内容。 nop nop 3、中断矢量及其优先级 int0 b __ret CPU接受和响应中断请求后,产生一个中断矢量地址,地址 nop nop 指向相关中断服务程序的中断矢量。书中表4-2。 . 多个中断同时发生时,CPU按照事先定义的优先级进行处理。 . . 优先级为0的优先权最高,随着优先级数的逐步增加,优先 dmac5 b __ret 权逐步减小。 nop nop