(1)程序寄存器MPC
当接收到一个中断且任务开始执行时,CLA程序寄存器由合适的MVECTx寄存器初始化。MPC指示CLA流水线译码2(D2)阶段的当前指令。在MSTOP运行后,如果没有任务悬挂,MPC将保持指示MSTOP指令。
程序计数器(Program Counter,MPC)的格式如下。
位15~12,保留位。
位11~0,MPC:数值范围0000~0FFFh,它指示CLA流水线译码2阶段的当前指令。数值为从CLA程序空间第一个地址的偏移量。
该寄存器受代码安全模块保护。主CPU可以为调试目的读该寄存器但不能写入它。
(2)状态寄存器MSTF
CLA状态寄存器(MSTF)反映不同操作的结果。标志的基本规则如下:
●零标志与负标志的清零与置1依据是:向寄存器浮点传送;比较、最小、最大、求负和绝对值运算的结果;运算如MMOV16、MAND32、MOR32、MXOR32、MCMP32、MASR32及MLSR32的整数结果。
●上溢与下溢标志由浮点数学指令如乘法、加法、减法和1/x设置。这些标志也可能与器件的外设中断扩展(PIE)模块相连接。这对于调试应用程序中的上溢与下溢条件是有用的。
状态寄存器(MSTF)的格式如下。
位31~24、位10、位8~7、位5~4,保留位。
位23~12,RPC:返回程序计数器。RPC用于由MCCNDD和MRCNDD操作保存与恢复MPC地址。
位11,MEALLOW:该位使能与禁止CLA写访问EALLOW保护的寄存器。它独立于主CPU状态寄存器中EALLOW位的状态。该状态位能由MMOV32STF指令保存与恢复。
0:CLA不能写入EALLOW保护的寄存器。该位由MEDISCLA指令清零。
1:CLA允许写入EALLOW保护的寄存器。该位由MEALLOWCLA指令置1。
位9,RND32:圆整32位浮点模式。使用MSETFLG和MMOV32MSTF指令改变圆整模式。
0:若该位为0,MMPYF32,MADDF32和MSUBF32指令将圆整到0(截取)。
1:若该位为1,MMPYF32,MADDF32和MSUBF32指令将圆整到最近的偶数值。
位6,TF:测试标志。TESTTF指令能按测试条件修改此标志。MSETFLG和MMOV32MSTF,mem32指令也可以用于修改此标志。
0:TESTTF指令测试的条件为假。
1:TESTTF指令测试的条件为真。
位3,ZF:零标志。
●基于目的寄存器浮点值存储的修改此标志的指令:MMOV32、MMOVD32、MOVDD32、ABSF32、MNEGF32。(www.daowen.com)
●基于浮点运算结果的修改此标志的指令:MCMPF32、MMAXF32、MMINF32。
●基于整数运算结果的修改此标志的指令:MMOV16、MAND32、MOR32、MXOR32、MCMP32、MASR32、MLSR32、MLSL32。
MSETFLG和MMOV32 MSTF、mem32指令也可以用于修改此标志。
0:值不为0。
1:值为0。
位2,NF:负标志。
●基于目的寄存器浮点值存储的修改此标志的指令:MMOV32、MMOVD32、MOVDD32、ABSF32、MNEGF32。
●基于浮点运算结果的修改此标志的指令:MCMPF32、MMAXF32、MMINF32。
●基于整数运算结果的修改此标志的指令:MMOV16、MAND32、MOR32、MXOR32、MCMP32、MASR32、MLSR32、MLSL32。
MSETFLG和MMOV32 MSTF、mem32指令也可以用于修改此标志。
0:值不为负。
1:值为负。
位1,LUF:锁存下溢标志。
如果发生下溢,下述指令将设置该标志为1:MMPYF32、MADDF32、MSUBF32、MMACF32、MEINVF32、MEISQRTF32。
MSETFLG和MMOV32 MSTF、mem32指令也可以用于修改此标志。
0:没有锁存下溢条件。
1:已锁存一个下溢条件。
位0,LVF:锁存上溢标志。
如果发生上溢下述指令将设置该标志为1:MMPYF32、MADDF32、MSUBF32、MMACF32、MEINVF32、MEISQRTF32。
MSETFLG和MMOV32 MSTF、mem32指令也可以用于修改此标志。
0:没有锁存上溢条件。
1:已锁存一个上溢条件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。