理论教育 执行寄存器:MPC、CLA和MSTFCLA详解

执行寄存器:MPC、CLA和MSTFCLA详解

时间:2023-06-15 理论教育 版权反馈
【摘要】:程序寄存器MPC当接收到一个中断且任务开始执行时,CLA程序寄存器由合适的MVECTx寄存器初始化。该寄存器受代码安全模块保护。主CPU可以为调试目的读该寄存器但不能写入它。状态寄存器MSTFCLA状态寄存器反映不同操作的结果。状态寄存器的格式如下。位11,MEALLOW:该位使能与禁止CLA写访问EALLOW保护的寄存器。它独立于主CPU状态寄存器中EALLOW位的状态。该状态位能由MMOV32STF指令保存与恢复。

执行寄存器:MPC、CLA和MSTFCLA详解

(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:已锁存一个上溢条件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈