while(i--)对应的汇编指令
void delay(int t){
while(t--);
}
在main.c的:
int main()
{
while(1)
{
delay(0x10000);
}
}
采用O0级别优化之后:
000001a4 <__semihosting_library_function>: //void delay(int tim) {while(tim--);} main中:r0=0x100000
1a4: e1a00000 nop ; (mov r0, r0)
1a8: e2501000 subs r1, r0, #0//r0-0再传给r1 也就是说判断r0是否等于或小于0 但r1没有地方用到,有什么意义呢?
1ac: e2400001 sub r0, r0, #1 //tim--
1b0: 1afffffc bne 1a8 <__semihosting_library_function+0x4>
1b4: e12fff1e bx lr
如果采用O1级别优化之后:
000001a4 <__semihosting_library_function>:
1a4: e2500001 subs r0, r0, #1
1a8: 2afffffd bcs 1a4 <__semihosting_library_function>
1ac: e12fff1e bx lr
页:
[1]