5.1.1.1 条件码与标志位 5.1.1.1 条件码与标志位:当 没报错,但分支却跳错了——一次在 ARM64 上因 NZCV 误读导致的实时控制失效事故复盘 凌晨两点十七分,某工业边缘控制器突然停止响应伺服电机的位置闭环指令。日志里没有 panic,没有 segfault,甚至没有 WARN 级别消息——只有连续三帧的 (应为 ≤ 5000),紧接着是 ,然后是 。 这不是软件崩溃,而是逻辑静默死亡:代码在跑,寄存器在更新,条件跳转在执行——可它偏偏跳到了不该去的地方。 我们花了六小时才定位到根源:一行 指令,在 明明为 的情况下,依然跳转了。 你没看错。零值,触发了非零跳转。 这不是 CPU 故障,不是编译器 bug,也不是内存翻转。