4.4.3 循环结构和汇编指令表示
图4.23总结了C语言中的所有程序控制语句,其中循环结构有三种:for语句、while语句和do~while语句。大多数编译程序将这三种循环结构都转换为do~while形式来产生机器级代码,下面仅介绍do~while语句的机器级表示。
C语言中的do~while语句形式如下:

该循环结构的执行过程可以用以下机器级语言的低级行为描述结构来描述。

在上述结构对应的机器级代码中,loop_body_statement用一个指令序列来完成,然后用一个指令序列实现对expr的计算,并将计算或比较的结果记录在标志寄存器中,然后用一个条件转移指令来实现“if(c) goto loop;”的功能。
下面是一个求1~n的累加和的C语言函数:

根据上述对应的C语言代码,经gcc编译后,得到的汇编代码如下:

