Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.27 KB | None | 0 0
  1. fibonacci := []int{
  2.     // fibonacci(n)
  3.     // if n == 0: return 0
  4.     ICONST, // 0
  5.     0,      // 1
  6.     LOAD,   // 2
  7.     -3,     // 3
  8.     IET,    // 4
  9.     JNZ,    // 5
  10.     32,     // 6
  11.  
  12.     // if n == 1: return 1
  13.     ICONST, // 7
  14.     1,      // 8
  15.     LOAD,   // 9
  16.     -3,     // 10
  17.     IET,    // 11
  18.     JNZ,    // 12
  19.     35,     // 13
  20.  
  21.     // v1 := fib(n-1)
  22.     ICONST, // 14
  23.     1,      // 15
  24.     LOAD,   // 16
  25.     -3,     // 17
  26.     ISUB,   // 18
  27.     CALL,   // 19
  28.     0,      // 20
  29.     1,      // 21
  30.  
  31.     // v2 := fib(n-2)
  32.     ICONST, // 22
  33.     2,      // 23
  34.     LOAD,   // 24
  35.     -3,     // 25
  36.     ISUB,   // 26
  37.     CALL,   // 27
  38.     0,      // 28
  39.     1,      // 29
  40.  
  41.     // return v1 + v2
  42.     IADD, // 30
  43.     RET,  // 31
  44.  
  45.     // return 0
  46.     ICONST, // 32
  47.     0,      // 33
  48.     RET,    // 34
  49.  
  50.     // return 1
  51.     ICONST, // 35
  52.     1,      // 36
  53.     RET,    // 37
  54.  
  55.     // main()
  56.     // i := 0
  57.     ICONST, // 38
  58.     0,      // 39
  59.     MSTORE, // 40
  60.     0,      // 41
  61.  
  62.     // while i < 10 {
  63.     ICONST, // 42
  64.     21,     // 43
  65.     MLOAD,  // 44
  66.     0,      // 45
  67.     ILT,    // 46
  68.     JZ,     // 47
  69.     64,     // 48
  70.  
  71.     // fibonacci(n)
  72.     MLOAD,  // 49
  73.     0,      // 50
  74.     CALL,   // 51
  75.     0,      // 52
  76.     1,      // 53
  77.     IPRINT, // 54
  78.  
  79.     // i++
  80.     MLOAD,  // 55
  81.     0,      // 56
  82.     ICONST, // 57
  83.     1,      // 58
  84.     IADD,   // 59
  85.     MSTORE, // 60
  86.     0,      // 61
  87.  
  88.     // }
  89.     JMP, // 62
  90.     42,  // 63
  91.  
  92.     // }
  93.     EXIT, // 64
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement