Question: In Assembly Language 3. Test Score Evaluation Create a procedure named CalcGrade that receives an integer value between 0 and 50, and returns a single

In Assembly Language

3. Test Score Evaluation Create a procedure named CalcGrade that receives an integer value between 0 and 50, and returns a single capital letter in the AL register. Preserve all other register values between calls to the procedure. The letter returned by the procedure should be displayed and should be according to the following ranges:

Score 45 to 50 Grade A Score 40 to 44 Grade B Score 35 to 39 Grade C Score 0 to 34 Grade F

Write a test program that

1. asks the user to enter integer between 0 and 50, inclusive. If the user enters invalid number, please display error message.

2. Pass it to the CalcGrade procedure.

3. Repeat steps 1 and 2 three times so that you collect three scores from the user and display the respective grade for each score.

What I have so far:

INCLUDE Irvine32.inc

.data

grade BYTE ?,0

grA BYTE "A",0

grB BYTE "B",0

grC BYTE "C",0

grF BYTE "F",0

out_of_range BYTE "The integer is not <= 50 and >= 0",0

.code

main PROC

mov ecx, 3

L1:

mov eax, 1

add eax, 51

call GradeCalc

mov edx, 0

mov grade,al

mov edx, OFFSET grade

call WriteString

call Crif

loop L1

exit

main ENDP

.IF (eax <= 50 && eax >= 0)

.IF (eax <= 50 ) && (eax > 44)

mov al,grA

.ELSEIF (eax < 45) && (eax > 39)

mov al,grB

.ELSEIF (eax < 40) && (eax > 34)

mov al,grC

.ELSE

mov al, grF

.ENDIF

.ELSE

mov edx,OFFSET out_of_range

call WriteString

call Crlf

ret

.ENDIF

ret

GradeCalc 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!