Advertisement
Guest User

Untitled

a guest
May 24th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. class Basic{
  2. int fact(int n)
  3. {
  4. if(n==0)
  5. {
  6. return 1
  7. }
  8. return n*fact(n-1)
  9. }
  10. }
  11. {
  12. Basic o = new Basic();
  13. println(o.fact(8)
  14. }
  15. // Table des méthodes
  16. // #null 1(GB)
  17. // object.equals 2(GB)
  18. // @1(GB) 3(GB)
  19. // @object.equals 4(GB)
  20. // @basic.fact 5(GB)
  21.  
  22.  
  23.  
  24. // Pile lors de l'appel fact
  25. // AncienLB LB
  26. // var retour -1(LB)
  27. // this -2(LB)
  28. // n -3(LB)
  29.  
  30. Basic.fact :
  31. TSTO#6
  32. BOV stack_overflow
  33. PUSH R2
  34. PUSH R3
  35. ;code(n==0,faux,E.Fin.1)
  36. LOAD -3(LB),R2
  37. CMP #0,R2
  38. BNE E_Fin_1
  39. LOAD #1,R2
  40. LOAD R2,R0
  41. BRA Basic.fact.epilogue
  42. E.Fin.1:
  43. LOAD -3(LB),R2
  44. ADDSP #2
  45. LOAD -2(LB),R3
  46. STORE R3,0(SP)
  47. LOAD -3(LB),R3
  48. SUB #1,R3
  49. STORE R3,-1(SP)
  50. LOAD -2(LB),R3
  51. LOAD 0(R3),R3
  52. BSR 2(R3)
  53. SUBSP #2
  54. LOAD R0,R3
  55. MUL R3,R2
  56. LOAD R2,R0
  57. BRA Basic.fact.epilogue
  58. BRA missing_return
  59. Basic.fact.epilogue:
  60. POP R3
  61. POP R2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement