控制流故障是航天软件系统必须面对的一个重要故障类型。提出一个基于程序基本块模型的算法CFCVR(Control Flow Checking Based on Virtual Register,基于虚拟寄存器的控制流检测)对程序控制流进行检测。它首先通过虚拟寄存器分配算法获得虚拟寄存器,然后基于这些虚拟寄存器添加特定的控制流检测指令。这些指令可以检测模块间的控制流错误,所有工作都是在汇编源程序上完成的。实验表明CFCVR会引入平均28.7%的性能代价和平均31.3%的存储代价,而对于控制流错误检测率平均为97.1%,优于目前已存在的各种方法,能够提高航天软件容错能力和可靠性。