; CC12 - GMV Cross C compiler (V 4.0) ; optimization: -Op -Osp -Ordc -Ocm -Ora ; Default Code generation: HCS12 * Compiler Default segment names SEGMENT text SEGMENT bss SEGMENT data SEGMENT rodata FILE "E:/mop/PIS_2014-15_SP4/exc6/D/myAdd/myAdd.c" ; 1 | ; 2 | int g_var; //global synlighet SEGMENT bss _g_var: RMB $2 EXPORT _g_var [r,2] ; 3 | ; 4 | int myAdd(int x, int y) SEGMENT rodata ; parameters: ; 'x' at 4,SP (Value: 2,SP) ; 'y' at 6,SP (Value: 4,SP) ; locals: ; 'sum' at 0,SP (Value: -2,SP) ; No registers allocated SEGMENT text EXPORT _myAdd [r,2] _myAdd: ; 5 | { LEAS -2,SP ; 6 | // lokal variabel ; 7 | int sum; ; 8 | sum = x+y; LDD 4,SP ADDD 6,SP STD 0,SP ; 9 | return sum; LDD 0,SP ; 10 | } LEAS 2,SP RTS ; 11 | ; 12 | int main() SEGMENT rodata ; locals: ; 'var1' at 2,SP (Value: -2,SP) ; 'var2' at 0,SP (Value: -4,SP) ; No registers allocated SEGMENT text EXPORT _main [r,2] _main: ; 13 | { LEAS -4,SP ; 14 | // lokala variabler ; 15 | int var1, var2; ; 16 | ; 17 | var1 = 4; LDD #4 STD 2,SP ; 18 | g_var = 1; LDD #1 STD _g_var ; 19 | ; 20 | ; 21 | var2 = myAdd(g_var, var1); LDD 2,SP PSHD LDD _g_var PSHD JSR _myAdd LEAS 4,SP STD 0,SP ; 22 | ; 23 | return 0; CLRA CLRB ; 24 | } LEAS 4,SP RTS