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

3. Test Score Evaluation Create a procedure named CalcGrade that receives an int

ID: 3699144 • Letter: 3

Question

3. Test Score Evaluation Create a procedure named CalcGrade that receives an integer value between 0 and 100, 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 according to the following ranges: Score 90 to 100 Grade A Score 80 to 89 Grade B Score 70 to 79 Grade C Score 0 to 69 Grade F Write a test program that generates 10 random integers between 50 and 100, inclusive. Each time an integer is generated, pass it to the CalcGrade procedure. You can test your program using a debugger, or if you prefer to use the book’s library, you can display each integer and its corresponding letter grade. (The Irvine32 library is required for this solution program because it uses the RandomRange procedure.)

Micro Computer Programming

Explanation / Answer

INCLUDE Irvine32.inc

.data

   grade BYTE ?,0

   grA BYTE "A",0

   grB BYTE "B",0

   grC BYTE "C",0

   grD BYTE "F",0

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

  .code

main PROC

   call Randomize

   mov ecx,10

L1:

   mov eax,51

   call RandomRange

   add eax,50

   call GradeCalc

   mov edx,0

   mov grade,al

   mov edx, OFFSET grade

   call WriteString

   call Crlf

   loop L1

    exit

main ENDP

GradeCalc PROC

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

       .IF (eax <= 100) && (eax > 89)

           mov al,grA

       .ELSEIF (eax < 90) && (eax > 79)

           mov al,grB

       .ELSEIF (eax < 80) && (eax > 69)

           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

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