请看下面的例子
图片左边为C语言代码,右边为对应的汇编代码,汇编代码有点多,我们着重关注用红色矩形框住的区域:
movl $0, %ecx; 将0赋值给%ecx寄存器,相当于源码中的第6行的i=0表达式,注意汇编采用%ecx作为循环
;计数寄存器,相当于c源码中的变量i的作用
.L2; 汇编中称为标记,和c语言goto语句的参数意义相同,用于语句跳转时的位置标记
addl $1, %ecx; 将%ecx加1,相当于源码中的i++
cmpl $1000, %ecx;比较加1后%ecx寄存器的值与1000的大小,相当于源码中的 i < 1000表达式
jne .L2; 意思是上面一条语句判断出%ecx的值不等于1000,则跳转到.L2位置继续执行,即下一轮循环