Question

In: Computer Science

Write a program using MARIE’s assembly language. The program consists of a main program and a...

Write a program using MARIE’s assembly language. The program consists of a main program and a subroutine. It uses the subroutine to process a given number. If the value of the number is negative, the value will be replaced with zero and returned. Otherwise, the value is doubled and returned. Then, in the main program, it calls the subroutine to process for X = -3 and saves the value after the processing.

Solutions

Expert Solution

PROGRAM:

ORG 100
JNS SUBR       /Store return address, jump to procedure
HALT           /End program
SUBR, HEX 000   /Store return address here
LOAD X           /Load value of X into AC
SKIPCOND 000   /Skip next instruction if AC is negative
JUMP NO           /If AC is >=0, Jump to label No to double value of X
Clear           /Else Clear AC
STORE X           /Store AC to X
JUMPI SUBR       /Return to calling code
NO, LOAD X       /Load value of X into AC
STORE Y           /Store AC to Y, to get multiplication by repeated addition
loop, LOAD X   /Load value of X into AC
ADD multiply   /Add contents of AC to contents of multiply
STORE multiply   /Store the result
LOAD Y           /Load value of Y into AC
SUBT one       /Decrement Y by 1
STORE Y           /Store the decremented value
SKIPCOND 400   /Skip next instruction if AC=0
JUMP loop       /Repeat the loop if AC is not equal 0
LOAD multiply   /Load the doubled value of X into AC
STORE X           /Store it into X
JUMPI SUBR       /Return to calling code
X, DEc -3
Y, DEc 0
one, Dec 1
multiply, Dec 0

Please refer to the following screenshot of the program for indentation of the code:

OUTPUT:

Memory contents before execution:

Memory contents after execution of the code:

Contents of memory if the value of X is changed to 2 and executed the code:


Related Solutions

Using the windows 32 framework , write an assembly language program ; write a procedure to...
Using the windows 32 framework , write an assembly language program ; write a procedure to read a string and shift each character of the string by one. As an example, if your input string is Abcz, your output should be Bcda. Note that you must test your string for non-alphabetic characters (such as numbers and special characters). If there are non-alphabetic characters, you should terminate your program with an appropriate message. You should display your converted string using the...
Q1: A. WRITE AN ASSEMBLY LANGUAGE PROGRAM TO EXCHANGE 16-BIT NUMBERS B. WRITE AN ASSEMBLY LANGUAGE...
Q1: A. WRITE AN ASSEMBLY LANGUAGE PROGRAM TO EXCHANGE 16-BIT NUMBERS B. WRITE AN ASSEMBLY LANGUAGE PROGRAM TO SOLVE THE EQUATION Z=A+B-(C/D)+E please write the answer separately part A its own code and part B its own code this is microprocessor the ASSEMBLY LANGUAGE emu8086 should be written like this EX: mov ax,100h mov bx,200h etc
In MPLAB write and compile (using the simulator) an assembly language program with the following functionality:...
In MPLAB write and compile (using the simulator) an assembly language program with the following functionality: Configures pin RA2 of the PIC24to be an output to control an attached LED. Configures pin RB13 of the PIC24 to be an input to read the value on an attached switch (this switch will connect to ground when pressed). Configures pin RB13 to use the internal pull-up resistor. After configuration, the LED will be "off" when the push-button is pressed, and "on" when...
write a program for the microcontroller-msp430fr6989 using code composer studio not assembly language. write a code...
write a program for the microcontroller-msp430fr6989 using code composer studio not assembly language. write a code that transmits a single character and lights the red LED upon receiving that character. The board will "talk" to itself. The green LED should turn on whenever a message is sent and the LCD will display the message being received.
Using the MARIE computer assembly language, write a program that computes the following expression: z =...
Using the MARIE computer assembly language, write a program that computes the following expression: z = a * b * c. The computer will read in the input values a, b, and c from the keyboard and the final result (z) have to be displayed. In addition, every time an input value is read in, it must be displayed on the screen. Remember that the instruction set does not have an instruction to execute multiplication. Note: If any of the...
Hi this is Assembly Language MASM x86 program. Please write it in the language and please...
Hi this is Assembly Language MASM x86 program. Please write it in the language and please explain it with comments thank you Please answer it I really need help this question was refunded before so please answer. Thank you so much also these are two separate programs thank you. 1) Write a procedure to read in decimal or hex number (byte-sized) Then write a procedure using shifts and ANDS to convert the string to a binary number (if is backward,...
using Windows 32 bit framework , Write an assembly language program to find the second minimum...
using Windows 32 bit framework , Write an assembly language program to find the second minimum element (formally, second minimum is larger than the minimum but smaller than all the other elements in the array) of an array of size 100. Note: You can define the array as nbrArray DWORD 23 45 21 67 78 95 dup(?) and show that your program works for the first five elements. Display the second minimum in a message box using Input output macro
Write a program named subtract.asm that does the following using LC3 assembly language: Print a prompt...
Write a program named subtract.asm that does the following using LC3 assembly language: Print a prompt "PRESS TWO KEYS: " Note that the prompt MUST LOOK EXACTLY like the above, with a colon and a space after the word KEYS with no newline. Get a two key press from the user. Subtract the second characters ASCII code from the first characters ASCII code. If the result is positive, print the word POSITIVE. Turn in subtract.asm to the appropriate submission point...
1. Write a program that does the following. Write in Assembly Language program Loads your student...
1. Write a program that does the following. Write in Assembly Language program Loads your student ID number into memory starting at location 0x2000 0100 a. DO NOT do any conversion on your ID number. If my ID number is 123456789, I should be able to read your ID in memory as 123456789 2. Loads the first six characters of your name, in ASSIC, in to memory right after your student ID. Total of 6 bytes. a. This means that...
Assembly Language Coding Using MARS (MIPS) 1)Write a program that prints your name in a Triangle....
Assembly Language Coding Using MARS (MIPS) 1)Write a program that prints your name in a Triangle. (NAME = John Doe) 2)Write a Program that intializes X to 10, Y to 20 and Z to -50, adds X and Y and Z and prints the following the value of each variable, for example value of x is 10 as well as the result of the addition.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT