谁能给出一个复杂一点的代码并且在其他编译器上试一下?<br /><br />// a.c<br /><br />int main(void)<br />{<br /> for(volatile int i=0xff; i; i--);<br /> return 0;<br />}<br /><br />命令:<br /><br />arm-elf-gcc -std=gnu99 -g -c -o a.o a.c<br />arm-elf-objdump -S a.o >a.lst<br /><br />a.lst 的内容:<br /><br />a.o: file format elf32-littlearm<br /><br />Disassembly of section .text:<br /><br />00000000 <main>:<br /><br /><br />int main(void)<br />{<br /> 0: e1a0c00d mov ip, sp<br /> 4: e92dd800 stmdb sp!, {fp, ip, lr, pc}<br /> 8: e24cb004 sub fp, ip, #4 ; 0x4<br /> c: e24dd004 sub sp, sp, #4 ; 0x4<br /> for(volatile int i=0xff; i; i--)<br /> 10: e3a030ff mov r3, #255 ; 0xff<br /> 14: e50b3010 str r3, [fp, #-16]<br /> 18: ea000002 b 28 <main+0x28><br /> 1c: e51b3010 ldr r3, [fp, #-16]<br /> 20: e2433001 sub r3, r3, #1 ; 0x1<br /> 24: e50b3010 str r3, [fp, #-16]<br /> 28: e51b3010 ldr r3, [fp, #-16]<br /> 2c: e3530000 cmp r3, #0 ; 0x0<br /> 30: 1afffff9 bne 1c <main+0x1c><br /> ;<br /> return 0;<br /> 34: e3a03000 mov r3, #0 ; 0x0<br />}<br /> 38: e1a00003 mov r0, r3<br /> 3c: e89da808 ldmia sp, {r3, fp, sp, pc}<br /> |
|