* CC12 - GMV Cross C compiler (V 2.2.4a) * Standard integer promotion * optimization: -Osi -Op -Ordc * Default Code generation: HCS12 * Compiler Default segment names SEGMENT text SEGMENT bss SEGMENT data SEGMENT rodata FILE "C:/Users/kampe/Documents/MOP/documentation2014/lec4/myadd/main.c" ; 1 | #include ; 2 | ; 3 | int g_var; //global synlighet SEGMENT bss _g_var: RMB $2 EXPORT _g_var [r,2] ; 4 | ; 5 | int myAdd(int x, int y) SEGMENT rodata SEGMENT text EXPORT _myAdd [r,2] _myAdd: ; 6 | { LEAS -2,SP ; 7 | // lokal variabel ; 8 | int sum; ; 9 | sum = x+y; LDD 4,SP ADDD 6,SP STD 0,SP ; 10 | return sum; ; 11 | } LEAS 2,SP RTS ; 12 | ; 13 | int main() SEGMENT rodata SEGMENT text EXPORT _main [r,2] _main: ; 14 | { LEAS -4,SP ; 15 | // lokala variabler ; 16 | int var1, var2; ; 17 | ; 18 | var1 = 4; LDD #4 STD 2,SP ; 19 | g_var = 1; LDD #1 STD _g_var ; 20 | ; 21 | ; 22 | var2 = myAdd(g_var, var1); LDD 2,SP PSHD LDD _g_var PSHD JSR _myAdd LEAS 4,SP STD 0,SP ; 23 | ; 24 | return 0; CLRA CLRB ; 25 | } LEAS 4,SP RTS