Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Basic{
- int fact(int n)
- {
- if(n==0)
- {
- return 1
- }
- return n*fact(n-1)
- }
- }
- {
- Basic o = new Basic();
- println(o.fact(8)
- }
- // Table des méthodes
- // #null 1(GB)
- // object.equals 2(GB)
- // @1(GB) 3(GB)
- // @object.equals 4(GB)
- // @basic.fact 5(GB)
- // Pile lors de l'appel fact
- // AncienLB LB
- // var retour -1(LB)
- // this -2(LB)
- // n -3(LB)
- Basic.fact :
- TSTO#6
- BOV stack_overflow
- PUSH R2
- PUSH R3
- ;code(n==0,faux,E.Fin.1)
- LOAD -3(LB),R2
- CMP #0,R2
- BNE E_Fin_1
- LOAD #1,R2
- LOAD R2,R0
- BRA Basic.fact.epilogue
- E.Fin.1:
- LOAD -3(LB),R2
- ADDSP #2
- LOAD -2(LB),R3
- STORE R3,0(SP)
- LOAD -3(LB),R3
- SUB #1,R3
- STORE R3,-1(SP)
- LOAD -2(LB),R3
- LOAD 0(R3),R3
- BSR 2(R3)
- SUBSP #2
- LOAD R0,R3
- MUL R3,R2
- LOAD R2,R0
- BRA Basic.fact.epilogue
- BRA missing_return
- Basic.fact.epilogue:
- POP R3
- POP R2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement