ejemplo arrays

Anuncio
Tema 6: Generación de código (ejemplo arrays)
Procesamiento de Lenguajes
Dept. de Lenguajes y Sistemas Informáticos
Universidad de Alicante
Procesamiento de Lenguajes
Tema 6: Generación de código (ejemplo
arrays)
1/3
Tablas de símbolos y tipos
int main() {
int i,j,a[4][3];
int c;
float ff;
...
}
Procesamiento de Lenguajes
N OMBRE T IPO P OSICIÓN . . .
i
1
0
...
j
1
1
...
a
3
2
...
c
1
14
...
ff
2
15
...
T IPO
TAMAÑO T IPO B ASE
1 ENTERO
2 REAL
3 ARRAY
3
1
4 ARRAY
4
3
Tema 6: Generación de código (ejemplo
arrays)
2/3
Generación de código para c = a[2][1];
a[0]
a[1]
a[2]
7
5
2
dir (a) = 2
dir (c) = 14
t1
t2
t3
t4
:=
:=
:=
:=
0
t1 × 4 + 2
t2 × 3 + 1
t3 + 2
Procesamiento de Lenguajes
5
8
a[3]
8
11
12
13
mov #0 16000 ; t1 = 0 (de c =
mov #0 16001 ; t1 = 0 (de a[
mov #2 16002 ; el 2 de [ 2 ]
mov 16001 A
muli #4
addi 16002
mov A 16003
; t2 = t1 * 4 + 2
mov #1 16004 ; el 1 de [ 1 ]
mov 16003 A
muli #3
addi 16004
mov A 16005
; t3 = t2 * 3 + 1
mov 16005 A
addi #2
; t4 = t3 + dir(a)=2
mov @A 16006
mov 16000 A
addi #14
; t1(c) + dir(c)
mov 16006 @A ; c = a[2][1]
Tema 6: Generación de código (ejemplo
arrays)
3/3
Descargar