JVM Hardcode - Part 01 - How Frames work

Preview:

Citation preview

Cadre 1 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

ra PC

Cadre 1 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

ra

PC

1

Cadre 1 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

ra

PC

2

1

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

2

1

Cadre inactif

Cadre 1 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

ra

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

2

1

Cadre inactif

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

1

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

2

1

Cadre inactif

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

2

1

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

2

1

Cadre inactif

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

3

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

2

1

Cadre inactif

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

Cadre 2 Classe

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

public static int add(int i1, int i2) { empile vl0 empile vl1 additionne le sommet de la pile retourne le sommet de la pile }

1

PC

2

3

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

3

Cadre inactif

Classe

public static void main(String[] a) { empile la littérale 1 empile la littérale 2 appelle la méthode static add() stocke le résultat dans vl1 // … }

PC

Cadre 1

Variables Locales

0 1 2 3 4 5 6 7 8

Pile

ra

3

3