Reference no: EM132375128
Question 1 - MARIE Assembly
(a) The Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and are characterised by the fact that every number after the first two is the sum of the two preceding ones: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 114, ... etc.
By definition, the first two numbers in the Fibonacci sequence are 0 and 1, and each subsequent number is the sum of the previous two. We define Fib(0) = 0, Fib(1) = 1, Fib(2) = 1, Fib(3) = 2, Fib(4) = 3, etc. The first 22 Fibonacci numbers given below:
Fib(0)
|
Fib(1)
|
Fib(2)
|
Fib(3)
|
Fib(4)
|
Fib(5)
|
Fib(6)
|
Fib(7)
|
Fib(8)
|
Fib(9)
|
Fib(10)
|
0
|
1
|
1
|
2
|
3
|
5
|
8
|
13
|
21
|
34
|
55
|
Fib(11)
|
Fib(12)
|
Fib(13)
|
Fib(14)
|
Fib(15)
|
Fib(16)
|
Fib(17)
|
Fib(18)
|
Fib(19)
|
Fib(20)
|
Fib(21)
|
89
|
144
|
233
|
377
|
610
|
987
|
1597
|
2584
|
4181
|
6765
|
10946
|
Write a MARIE program to calculate Fib(n), where the user inputs n. For example, if the user inputs 7, the program outputs the value 13; if the user inputs 15, the program outputs the value 610; if the user inputs 20, the program outputs the value 6765 etc. You need to write and run the program using MARIE simulator. Please include appropriate comments to make your code readable.
Important: Please run the mas file in the MARIE simulator to check if it works correctly. Try inputting numbers like 0, 1, 5, 10, 22 etc.
(b) For some values of n, your program will not produce correct results. You can check this by gradually increasing the values of n and checking for the correct outputs. What is the maximum value of n for which your program produces a correct result? Why? Please comment on this.
Question 2 - Instruction Set Architectures
In a computer instruction format, the instruction length is 12 bits and the size of an address field is 5 bits. The system architect has already designed three 2-address instructions and thirty one 1-address instructions. How many 0-address instructions can still be possibly accommodated?
Rationale - This assessment task will work towards assessing the following learning outcome/s:
- be able to define and appropriately use computer systems terminologies.
- be able to describe the essential elements of computer organisation and discuss how the elements function.
- be able to describe the basic instruction set architecture of a simple computer.
- be able to discuss various programming tools available and their relationship to the computer architecture.