Question: Write an assembly language program that reads move review information from a text file and reports the overall scores for each movie as well as

Write an assembly language program that reads move review information from a text file and reports the overall scores for each movie as well as identifying the movie with the highest total score. There are four movie reviewers numbered from 1 to 4. They are submitting reviews for five movies, identified by the letters from A through E. Reviews are reported by using the letter identifying the movie, the review rating, which is a number from 0 to 100, and the reviewers identifying number. For example, to report that movie B was rated a score of 87 by reviewer 3, there will be a line in the text file that looks like this: B,87,3
The fields within each record are separated from each other by a comma. Your program must store the movie review scores in a two-dimensional array (4 rows by 5 columns). Each row represents a reviewer. Each column represents a movie. Initialize the array to zeroes and read the movie review information from a file. After reading and processing the whole file, display a report that shows the total score for each movie and the movie that had the highest total score. Section 9.4 of our textbook discusses two-dimensional arrays. Section 9.4.2 discusses Base-Index Operands and even contains an example of how to calculate a row sum for a two-dimensional array. Chapter 11 contains an example program named ReadFile.asm that will show you how to prompt the user for a file name, open a file, read its contents, and close the file when you are done. Look in section 11.1.8, Testing the File I/O Procedures. Each record in a text file is terminated by the two characters, Carriage Return (0Dh) and Line Feed (0Ah).
Assume that you wish to process a text file named reviews.txt that is stored on the C: drive in the Data folder. If you are using a Windows computer, you have two ways to identify the path to the files location: C:/Data/reviews.txt OR C:\\Data\\reviews.txt Double backslash characters (\) are needed because a single backslash is defined as being the first part of an escape sequence such as newline (
).
reviews.txt
D,84,2 A,90,3 A,87,4 B,35,4 B,100,1 C,75,1 D,84,1 B,87,2 A,0,2 C,25,2 D,45,3 E,35,3 A,90,1 B,100,3 C,75,3 E,35,1 C,78,4 E,35,2 D,100,4 E,0,4. This is my work so far and I
'
m required to use Irvine: INCLUDE Irvine
3
2
.
inc
INCLUDE macros.inc
BUFFER
_
SIZE
=
5
0
0
0
ROWS
=
4
COLS
=
5
.
data
buffer BYTE BUFFER
_
SIZE DUP
(
?
)
filename BYTE
8
0
DUP
(
0
)
fileHandle HANDLE
?
rowSize dd
?
rowIndex dd
?
colIndex dd
?
.
code
mWrite "Enter a filename:
"
mov edx, OFFSET filename
mox ecx,SIZEOF filename
call ReadString
mov edx, OFFSET filename
call OpenInputFile
mov fileHandle, eax
cmp eax, INVALID
_
HANDLE
_
VALUE
jne file
_
ok
mWrite
<
"File can't be open!",
0
dh
,
0
ah
>
jmp quit
mov edx, OFFSET buffer
mov ecx, BUFFER
_
SIZE
call ReadFromFile
inc check
_
buffer
_
size
mWrite "Error readinf file."
call writeWindowsMsg
jmp close
_
file
cmp eax, BUFFER
_
SIZE
jb buf
_
size
_
ok
mWrite
<
"ERROR: Buffer too small for file",
0
dh
,
0
ah
>
jmp quit
mov buffer
[
eax
]
,
0
mWrite "File size:
"
call WriteDec
call Crlf
mWrite
<
"Buffer:
"
,
0
dh
,
0
ah
,
0
dh
,
0
ah
>
mov edx, OFFSET buffer
call WriteString
call Crlf
mov eax, fileHandle
mov edx, rowSize
mov eax, rowIndex
mul edx
mov index, eax
mul eax, colIndex
shl eax,
2
add eax,index
mov edx, score
mov ebx, OFFSET reviews
mov
[
ebx
+
eax
]
,
edx
call CloseFile
exit
main ENDP
END main

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!