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

this is assemly langauge for x86 processors using visual studio Do not use .if .

ID: 3702986 • Letter: T

Question

this is assemly langauge for x86 processors using visual studio

Do not use .if .else statements . Try to use combinational cmp-jg, or cmp-jl, or cmp-ja, or cmp-jb kind

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.)

Explanation / Answer

CODE:

INCLUDE Irvine32.inc

.data

grade BYTE ?,0

grA BYTE "A",0

grB BYTE "B",0

grC BYTE "C",0

grD BYTE "D",0

grF 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

.ELSEIF (eax < 70) && (eax > 59)

mov al,grD

.ELSE

mov al,grF

.ENDIF

.ELSE

mov edx,OFFSET out_of_range

call WriteString

call Crlf

ret .ENDIF

ret

GradeCalc ENDP

END main