Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Using the MARIE computer assembly language, write a program that computes the following expression: z ( a * b ) * ( c * d
Using the MARIE computer assembly language, write a program that computes the following expression:
z a bc d e The computer will read in the input values a b c d and e from the keyboard,
and the final result z has to be displayed. In addition, every time an input value is read in it must be
validated by checking that the input is a positive number. If it is positive display the number on the
screen; otherwise display zero and end the program. Each time a multiplication of two numbers is needed,
it has to be done using a multiplication subroutine. Remember that the MARIE instruction set does not
have an instruction to execute multiplication, you must create a subroutine function that multiplies two
numbers and call it each time you need it The program must be tested in the MARIE simulator.
This is the code I creared but I am getting errors when attempting to assemble it
ORG
Main, Input Read input value
Store A Store input value in A
Skipcond Skip if input value is nonnegative
Jump Negative Jump to Negative if input value is negative
Output Display input value
Load A Load input value back into A
Input, Subt A A Clear accumulator
Getc Read character from keyboard
Store A Store input value in A
Add NegOne Add to input value
Skipcond Skip if input value is negative
Jump InputErr Jump to InputErr if input value is negative
Jump Input Jump back to Input to read next character
Negative, Load Zero Load zero
Store A Store zero in A
Output Display zero
Halt End program
InputErr, Load Zero Load zero
Store A Store zero in A
Output Display zero
Halt End program
NegOne, Dec Constant for
Zero, Dec Constant for zero
A Dec Variable for input value
Output, Putc Display character from accumulator
Ret Return from subroutine
Getc, CharIn Read character from keyboard
Ret Return from subroutine
Store, Store X Store accumulator value in memory
Ret Return from subroutine
Load, Load X Load memory value into accumulator
Ret Return from subroutine
Skipcond, Skipcond Skip if accumulator
Jump X Jump to address X
Ret Return from subroutine
Jump, Jump X Jump to address X
Ret Return from subroutine
Dec, Dec Decrement constant
Ret Return from subroutine
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started