f2c4dc81
Salvador Abreu
added most of the...
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
.DATA
x: .WORD 123
xpto: .SPACE 20
.TEXT
program:
DUP ; espaço r.v.
PUSH 2 ; arg 1: 2
PUSH -8 ; arg 2: a+3
LOCAL ; endereço de a
LOAD ; valor de a
PUSH 3 ; +3
ADD ; (fim arg 2)
PUSH foobar ; end. função
CALL ; chama
POP ; salta arg 2
POP ; salta arg 1
PUSH x ; endereço de x
STORE ; guarda valor
.TEXT
foobar:
PUSH 0 ; zero variáveis locais
LINK ; ...
PUSH 12 ; deslocamento de a
LOCAL ; endereço de a
LOAD ; valor de a
PUSH 8 ; deslocamento de b
LOCAL ; endereço de b
LOAD ; valor de b
ADD ; a+b
PUSH 16 ; deslocamento de r.v.
LOCAL ; endereço de r.v.
STORE ; (r.v.) = a+b
UNLINK ; desfaz stack frame
JUMP ; retorna
|