将条件表达式和语句从 C 语言翻译成机器代码,最常用的方式是结合有条件和无条件跳转。(有些条件可以用数据的条件转换实现,而不是控制的条件转移来实现。)
C 语言中的 if-else 语句的通用形式模板是这样的:
if (test-expr)
then-statement
else
else-statement
对于这种通用形式,汇编实现通常会使用下面这种形式,这里,用 C 语法来描述控制流:
t = test-expr;
if (!t)
goto false;
then-statement
goto done;
false:
else-statement
done:
也就是,汇编器为 then-statement 和 else-statement 产生各自的代码块。它会插入条件和无条件分支,以保证能执行正确的代码块。