嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
汇编代码 -- 在vc6.0中生成相应语句的汇编代码 DEBUG模式
//死循环
for (;;)
{
x = 1;
}
while (true)
{
x = 1;
}
对应的汇编语句为:
$L270:
; 对于for的真循环,没有判断语句,直接执行for循环体内数据
; x = 1
mov DWORD PTR _x$[ebp], 1
; for循环执行
jmp SHORT $L270
$L271:
; 对于while(true)循环,有3条汇编语句来判断
mov eax, 1
test eax, eax
je SHORT $L274
; x = 1
mov DWORD PTR _x$[ebp], 1
; 无条件跳转到判断语句开始位置
jmp SHORT $L271
理解:for比while要快一些。for(;;)是直接跳转,while多了两条指令而已。
Loop: -------
goto Loop;
运用了汇编思想,直接使用goto语句。