Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fibonacci := []int{
- // fibonacci(n)
- // if n == 0: return 0
- ICONST, // 0
- 0, // 1
- LOAD, // 2
- -3, // 3
- IET, // 4
- JNZ, // 5
- 32, // 6
- // if n == 1: return 1
- ICONST, // 7
- 1, // 8
- LOAD, // 9
- -3, // 10
- IET, // 11
- JNZ, // 12
- 35, // 13
- // v1 := fib(n-1)
- ICONST, // 14
- 1, // 15
- LOAD, // 16
- -3, // 17
- ISUB, // 18
- CALL, // 19
- 0, // 20
- 1, // 21
- // v2 := fib(n-2)
- ICONST, // 22
- 2, // 23
- LOAD, // 24
- -3, // 25
- ISUB, // 26
- CALL, // 27
- 0, // 28
- 1, // 29
- // return v1 + v2
- IADD, // 30
- RET, // 31
- // return 0
- ICONST, // 32
- 0, // 33
- RET, // 34
- // return 1
- ICONST, // 35
- 1, // 36
- RET, // 37
- // main()
- // i := 0
- ICONST, // 38
- 0, // 39
- MSTORE, // 40
- 0, // 41
- // while i < 10 {
- ICONST, // 42
- 21, // 43
- MLOAD, // 44
- 0, // 45
- ILT, // 46
- JZ, // 47
- 64, // 48
- // fibonacci(n)
- MLOAD, // 49
- 0, // 50
- CALL, // 51
- 0, // 52
- 1, // 53
- IPRINT, // 54
- // i++
- MLOAD, // 55
- 0, // 56
- ICONST, // 57
- 1, // 58
- IADD, // 59
- MSTORE, // 60
- 0, // 61
- // }
- JMP, // 62
- 42, // 63
- // }
- EXIT, // 64
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement