Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Statement: Recode the program to do the following task: Array_A[k] = 20*Array_A[k] - 2*Array_B[k]; for k = 0~20 Note: A[] = {0,1, 2,3, , 19}


 Statement: Recode the program to do the following task:

Array_A[k] = 20*Array_A[k] - 2*Array_B[k]; for k = 0~20

Note: A[] = {0,1, 2,3, …, 19}

B[] = A[]; Both sets are same.

.data # Data sesent
Array_A: .word 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Array_B: .word

.space 40

.text

.eqv Pointer $t0
.eqv offset $t1
.eqv BaseAddressRegA $t4
.eqv BaseAddressRegB $t5
.eqv EffectiveAddressA $t6
.eqv EffectiveAddressB $t7


.macro PrintAnyStringMessage(%message)
.data
ArbitraryMessage: .asciiz %message
.space 40

.text
li $v0, 4
la $a0, ArbitraryMessage
syscall
.end_macro

.macro PrintInteger(%n,%m)
li $v0,%n
move $a0,%m
syscall
.end_macro


.globl Main
Main:
PrintAnyStringMessage("Dr. Farmallah Jan Says Welcome to Assembly Proming Session!\n")
PrintAnyStringMessage("Perform Array = Array A+ 10 Using a for-loop!\n")
li Pointer, 0
li offset, 0
la BaseAddressRegA, Array_A
la BaseAddressRegB, Array_B

For_Loop:
add EffectiveAddressA, BaseAddressRegA, offset
add EffectiveAddressB, BaseAddressRegB, offset

lw $t8, 0(EffectiveAddressA)
PrintAnyStringMessage("\n Value Of Array A=")
PrintInteger(1, $t8)
addiu $t9, $t8, 10
PrintAnyStringMessage("\n Value Of Array B=")
PrintInteger(1, $t9)
sw $t9, 0(EffectiveAddressB)

addiu Pointer, Pointer, 1
sll offset, Pointer, 2
ble Pointer, 9, For_Loop

Stop:
li $v0, 10

syscall
student submitted image, transcription available below

data # Data segment Array A: .word 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Array B: .word space 40 text #Code Segment #Array A with initial values Array B is empty and to 10 word wide, 40 bytes space allocated eqv Pointer St0 Sto remanmed as Pointer eqv offset St1 St1 renamed as offset eqv BaseAddressRegA St4 .eqv BaseAddressRegB St5 .eqv Effective AddressA St6 .eqv Effective AddressB St7 #St4 renamed as BaseAddressReg #S15 renamed as BaseAddressRegB #St6 renamed as EffectiveAddressA #St7 renamed as EffectiveAddressB #Print Any Arbitrary String Message macro PrintAnyStringMessage(%message) .data ArbitraryMessage: .asciiz %message .space 40 .text li Sv0, 4 #Empty space reserved to hold 40 letters #Code to print character or siting message la Sa0, ArbitraryMessage # Base address loaded into Sa0 syscall .end_macro # Print message #Print Integers in hex, binary, etc macro PrintInteger (%n, %m) li Sv0,%n move Sa0, %m syscall .end_macro .globl Main Main: PrintAnyStringMessage("Dr. Farmamillah Jan Says Welcome to Assembly Programming Session! ") PrintAnyStringMessage("Perform: Array B Array A+ 10 Using a for-loop! ") li Pointer, 0 li offset, 0 # Clear Pointer # Clear offset la BaseAddressRegA, Array A la BaseAddressRegB, Array B For Loop: #Base address of Array A is loaded into "BaseAddressRegA" #Base address of Array B is loaded into "BaseAddressRegB" add Effective AddressA, BaseAddressRegA, offset add Effective AddressB, BaseAddressRegB, offset #Effective addres for Array A[pointer] #Effective addres for Array B[poner] Iw St8, 0(EffectiveAddressA) #8t8

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

Income Tax Fundamentals 2013

Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill

31st Edition

1111972516, 978-1285586618, 1285586611, 978-1285613109, 978-1111972516

More Books

Students also viewed these Programming questions

Question

=+d) Can you reject the null hypothesis of part c? Explain.

Answered: 1 week ago