Gast
#438453
Was macht der Compiler
... wenn ich eine "leere" Funktion comp., also int main(){}, dann gibt
es so einen großen Vorspann - warum ? ( zweite Frage: wo kann ich denn
die Version des Compilers nachschauen? )
+0000003E: 940C0063 JMP 0x00000063 Jump
+00000040: 940C0063 JMP 0x00000063 Jump
+00000042: 940C0063 JMP 0x00000063 Jump
+00000044: 940C0063 JMP 0x00000063 Jump
+00000046: 2411 CLR R1 Clear Register
+00000047: BE1F OUT 0x3F,R1 Out to I/O location
+00000048: EFCF SER R28 Set Register
+00000049: E1D0 LDI R29,0x10 Load immediate
+0000004A: BFDE OUT 0x3E,R29 Out to I/O location
+0000004B: BFCD OUT 0x3D,R28 Out to I/O location
+0000004C: E011 LDI R17,0x01 Load immediate
+0000004D: E0A0 LDI R26,0x00 Load immediate
+0000004E: E0B1 LDI R27,0x01 Load immediate
+0000004F: EEE4 LDI R30,0xE4 Load immediate
+00000050: E0F0 LDI R31,0x00 Load immediate
+00000051: E000 LDI R16,0x00 Load immediate
+00000052: BF0B OUT 0x3B,R16 Out to I/O location
+00000053: C002 RJMP PC+0x0003 Relative jump
+00000054: 9007 ELPM R0,Z+ Extended load program
memory and postincrement
+00000055: 920D ST X+,R0 Store indirect and
postincrement
+00000056: 30A0 CPI R26,0x00 Compare with immediate
+00000057: 07B1 CPC R27,R17 Compare with carry
+00000058: F7D9 BRNE PC-0x04 Branch if not equal
+00000059: E011 LDI R17,0x01 Load immediate
+0000005A: E0A0 LDI R26,0x00 Load immediate
+0000005B: E0B1 LDI R27,0x01 Load immediate
+0000005C: C001 RJMP PC+0x0002 Relative jump
+0000005D: 921D ST X+,R1 Store indirect and
postincrement
+0000005E: 30A0 CPI R26,0x00 Compare with immediate
+0000005F: 07B1 CPC R27,R17 Compare with carry
+00000060: F7E1 BRNE PC-0x03 Branch if not equal
+00000061: 940C0065 JMP 0x00000065 Jump
+00000063: 940C0000 JMP 0x00000000 Jump
@00000065: main
---- 5.c
------------------------------------------------------------------------
------------------
6: {