
Go backward to Directives
Go up to Top
A Sample Program
GLOBAL dataspace(20)
2 MOVE 1,A5
4 JSR main0
6 HALT
STAB FILE,"prog.c"
SOURCE 8 ;int silly(param)
STAB FUNCTION,"silly"
; locals and parameters:
STAB LOCVAR,"param",offset=2,type ="I"
STAB LOCVAR,"localarray",offset=-5,type ="[5,1]I"
silly0
7 LINK A6,#LOCALSIZE3
9 PSHREG #SAVEMASK2
SOURCE 10 ;{
SOURCE 13 ; return localarray[param];
11 LEA -5(A6),A0
13 ADD 2(A6),A0
15 MOVE 0(A0),3(A6)
18 JMP FUNCRTN1
FUNCRTN1
20 POPREG #SAVEMASK2
22 UNLK A6
23 RTD #1
LOCALSIZE3 EQU -5
SAVEMASK2 EQU 128
SOURCE 17 ;main()
STAB FUNCTION,"main"
; locals and parameters:
STAB LOCVAR,"localvar",offset=-2,type ="{1}"
STAB STRUCT,1
STAB COMPONENT,"comp2",offset=1,type="I"
STAB COMPONENT,"comp1",offset=0,type="I"
main0
25 LINK A6,#LOCALSIZE6
27 PSHREG #SAVEMASK5
SOURCE 18 ;{
SOURCE 21 ; localvar.comp1 = silly(3);
29 SUB #1,A7
31 MOVE #3,-(SP)
33 LEA silly0,A0
35 JSR 0(A0)
37 MOVE (SP)+,D0
38 MOVE D0,-2(A6)
40 POPREG #SAVEMASK5
42 UNLK A6
43 RTD #0
LOCALSIZE6 EQU -2
SAVEMASK5 EQU 32896
; Globally defined identifiers:
STAB GLOBVAR,"globalarray",offset=0,type ="[20,2]{1}"