6.C语言控制结构的汇编表示
在C语言中有提供这样的结构:条件语句、循环语句和分支语句。那么在机器级指令中提供怎样的机制来实现C语言控制结构的行为。它的主要思路是借助条件码寄存器和跳转指令来实现有条件的行为。
现代计算机中实现条件操作有两种方法:利用控制的条件转移和数据的条件转移。数据的条件转移更好地匹配了现代处理器的性能特性,但这里主要讲述控制的条件转移这种传统方法。
条件码和跳转指令
CPU除了提供上面的几个整数寄存器外,还维护着一组单个比特位的条件码,描述最近的算术或逻辑操作特性,用于执行条件分支指令。
l CF: 进位标志,表示最近的操作使最高位产生了进位。用于检查无符号操作数的溢出
l ZF: 零标志,表示最近的操作得出的结果为0
l SF: 符号标志,表示最近的操作得出的结果为负数
OF:溢出标志,表示最近的操作使补码溢出-正溢出或负溢出