Reference no: EM133672576
Computer Systems Fundamentals
Assignment
LMC is a cartoonised assembly language thatmimics the instruction set of many real-world architectures, including x86, ARM and others. These are modelled on the von Neumanncomputer system architecture, as proposed by John von Neumann in 1945. In learning LMC, you willgain an understanding of how the software system of a computer operates at a fundamental level. See the lectures and tutorials for more information about the architecture and instructions of LMC.
In this assignment, there are three questions. Be sure to answer all questions. For each, a marking scheme is provided.
You are required to demonstrate your ability to interpret and solve a novel problem. You will design a solution to the problem by using natural language to explain your approach, and plan how you will test the implementation of this design.After designing your solution and test plan, you are required to implement the design using the LMC integrated development environment (IDE).
TASK A
Write a LMC program that converts anUnreal numberinto a decimal number. The Unrealnumber system is like the Roman number system; however, it has some exceptions and limitations. You must display the result as output before halting the program.
For example, the UnrealnumberCXI is 111, andXXXVI is 36.
Unrealdigit
|
Natural number
|
I
|
1
|
V
|
5
|
X
|
10
|
L
|
50
|
C
|
100
|
D
|
500
|
Your program only needs to support the Unrealdigits listed in the table above.
Your program will only be able to calculate a natural number up to and including 999.
If the user enters anUnrealnumeral which exceeds this, the output is to be 999.
Six (6) input values are provided by the user, the order of input is important:
The first input is the number of D's that the Unrealnumber contains.
The second input is the number of C's that the Unrealnumbercontains.
The last input is the number of I's that the Unrealnumbercontains.
For example, if the user provides the inputs 0, 0, 0, 1, 2, 2 then this will be the equivalent of XVVII
TASK B
Write a LMC program that can convert an n-bit binary number into a decimal number. Display the natural number as output before halting the program.
The first input determines the value for n. It is assumed this value will be equal to four, or greater.
For example, if the first input is eight (8) then eight subsequent inputs are requested.
If the subsequent inputs number were 1, 0, 0, 1, 0, 0, 0, 0then the output would be 9.
n input values are provided by the user, one for each bit:
The first of these is the least-significant bit.
The n'th input is the most-significant bit.
TASK C
Write a LMC program that calculates the sum of numbers provided by the user. Display the summation as output before halting the program.
If the user has provided less than or equal to ten input values, then only sum even numbers. Odd numbers are ignored.
If the user has provided more than ten values, then only sum any odd numbers subsequent to the tenth input. The existing summation of even numbers shall remain.
If the user enters zero, at any point, then the summation is displayed.
For example:
Input values: 3, 3, 4, 0 Result: 4
Input values: 2, 3, 7, 0 Result: 2
Input values: 1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,0 Result: 43
QUESTION 1
Describe your approach to solving the problem.
• Use natural language, structured like a conventional programming language to communicate your design.
• When necessary, use looping and conditional constructs.
• Name symbols sensibly to make their use clear.
Cormen (2009) wrote an excellent introduction to the conventions of pseudocode (see Part I, chapter 2, section 1.2). You can read this by searching for the text via QUT Library.
Cormen, Thomas H. Leiserson, Charles E. Rivest, Ronald L. Stein Clifford. (2009). Introduction to Algorithms (3rd Edition) - 2.1.2 Pseudocode Conventions. MIT Press.
QUESTION 2
Draft a test plan to be used as a verification method to ensure that your LMC program is correct.
• Tabularise test input value(s) and the expected output(s)
• Consider uncommon cases. For example, when the calculator reaches its maximum value, when negative values are calculated, or when an input is unexpectedly large.
Draft your test plan using the following template (two examples are provided):
Comma-separate the input and output values.
Delete the examples.
Input Value(s) Expected output value(s) Notes
2,4,6 10 All even numbers
1,3,5 9 All odd numbers
QUESTION 3
Implement an LMC program according to the algorithm you designed in Q1.
Use the test suite you designed in Q2 to verify the implementation of your algorithm is correct.
• Only symbolic addressing is to be used; numerical addressingwill be disabled.
• LMC program must request the correct number of input(s).
• LMC program must produce the correct number of output(s).
• LMC program must produce the correct output value(s) for all given test cases.
• Code must be tidy (spacing, indentation) and comments areto be used to describe the algorithm. Do not describe the function of each LMC instruction.
• Your LMC file should showthe full history of how your solution was implemented.
• Use LMC IDEv1.5.0.0 (or greater)
• Enter your student ID in the LMC IDE when completing this question
• Errors will not be fixed by the marker.