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

This program is supposed to be in assembly language. Please use basic MASM only.

ID: 3678772 • Letter: T

Question

This program is supposed to be in assembly language. Please use basic MASM only.

Create a procedure that fills an array of doublewords with N random integers, making sure the
values fall within the range j...k, inclusive. When calling the procedure, pass a pointer to the
array that will hold the data, pass N, and pass the values of j and k. Preserve all register values
between calls to the procedure. Write a test program that calls the procedure twice, using different
values for j and k. Verify your results using a debugger.

Explanation / Answer

Hi below i have written the sample example code to create a procedure that fills an array of with 50 random integers for your reference,

INCLUDE Irvine32.inc

ARRAYSIZE = 50

.data
msg BYTE " negative values found.", 13, 10, 0
buffer SDWORD ARRAYSIZE DUP(0)
counter DWORD 0

.code
main PROC
call Randomize

;part 1 - fill array with random numbers
mov ecx, ARRAYSIZE
mov esi, OFFSET buffer
L1:
call Random32
mov [esi], eax
add esi, TYPE buffer
loop L1

;part 2 - loop through the array, display each value, count negative numbers
mov esi, OFFSET buffer
mov ecx, ARRAYSIZE
L2:
mov eax, [esi]
cmp eax, 0
jge @F
inc counter
@@:
call WriteInt
call Crlf
add esi, TYPE buffer
loop L2

;part 3 - Display the count
mov eax, counter
call WriteDec
mov edx, OFFSET msg
call WriteString

exit
main ENDP
END main

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