Answered step by step
Verified Expert Solution
Link Copied!

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 * b)*(c * 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 100
Main, Input // Read input value
Store A // Store input value in A
Skipcond 800// Skip if input value is non-negative
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 -1 to input value
Skipcond 400// 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 -1// Constant for -1
Zero, Dec 0// Constant for zero
A, Dec 0// 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 0// Skip if accumulator >=0
Jump X // Jump to address X
Ret // Return from subroutine
Jump, Jump X // Jump to address X
Ret // Return from subroutine
Dec, Dec 0// Decrement constant
Ret // Return from subroutine

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications Dexa 2021 Workshops Biokdd Iwcfs Mlkgraphs Al Cares Protime Alsys 2021 Virtual Event September 27 30 2021 Proceedings

Authors: Gabriele Kotsis ,A Min Tjoa ,Ismail Khalil ,Bernhard Moser ,Atif Mashkoor ,Johannes Sametinger ,Anna Fensel ,Jorge Martinez-Gil ,Lukas Fischer

1st Edition

3030871002, 978-3030871000

More Books

Students also viewed these Databases questions