Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Computer Organization and Assembly Language Programming Lab# 1. Write a program

ID: 3878069 • Letter: C

Question

Computer Organization and Assembly Language Programming Lab# 1. Write a program that reads an array of 20 integers with an appropriate prompt, stores it. and then prints in three formats: One integer per line; -All integers in a single line separated by spaces, -All in integers in a single line in the reverse order separated by spaces, You program requests entering a positive integer n20 and then prints the 20 integers, n integers (separated by space) per line.. Test your program for one set of 20 integers and for n= 5 and n=6 Submit a hardcopy of your programs and their outputs.

Explanation / Answer

.data:

array: .space 80 # allocating space for maximum 20 integers

n: .space 4

prompt1: .asciiz "Enter 20 integers: "

prompt2: .asciiz "One value per line "

prompt3: .asciiz "Here are the values in single line: "

prompt4: .asciiz "Here are the values in reverse: "

prompt5: .asciiz "Enter a value n <=20: "

prompt6: .asciiz "Here are the n values in single line: "

newline: .asciiz " "

space: .asciiz " "

.globl main

.text

main:

#prompt and read elements

li $t0, 0

li $v0, 4

la $a0, prompt1

syscall

jal readElements

#print one element in one line

li $t2, 0

li $v0, 4

la $a0, prompt2

syscall

jal printElements

#print all elements in one line

li $t2, 0

li $t3, 80

li $v0, 4

la $a0, prompt3

syscall

jal printElementsSingle

#print elements in reverse

li $t2, 80

li $v0, 4

la $a0, prompt4

syscall

jal printElementsReverse

#pprompt user and read n

li $v0, 4

la $a0, prompt5

syscall

li $v0, 5 #read int

syscall

sw $v0, n

#print all elements in one line

li $t2, 0

li $t3, 80

li $v0, 4

la $a0, prompt3

syscall

jal printElementsSingle

#print one element in one line

li $t2, 0

lw $t3,n

mul $t3,$t3, 4

li $v0, 4

la $a0, prompt6

syscall

jal printElementsSingle

li $v0, 10

syscall

readElements:

li $v0, 5 #read int

syscall

sw $v0, array($t0)

addi $t0, $t0, 4

bne $t0, 80 readElements

jr $ra

print:

printElements:

lw $a0, array($t2)

li $v0, 1

syscall

addi $t2, $t2, 4

li $v0, 4

la $a0, newline

syscall

bne $t2, 80, printElements

jr $ra

printElementsSingle:

lw $a0, array($t2)

li $v0, 1

syscall

addi $t2, $t2, 4

li $v0, 4

la $a0, space

syscall

bne $t2, $t3, printElementsSingle

li $v0, 4

la $a0, newline

syscall

jr $ra

printElementsReverse:

subi $t2, $t2, 4

lw $a0, array($t2)

li $v0, 1

syscall

li $v0, 4

la $a0, space

syscall

bne $t2, 0, printElementsReverse

li $v0, 4

la $a0, newline

syscall

jr $ra

Hope this helps. DOo Upvote! :)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote