Using the College Registration example from Section 6.7.3 as a starting point, d
ID: 3624154 • Letter: U
Question
Using the College Registration example from Section 6.7.3 as a starting point, do the following:-Recode the logic sing CMP and conditional jump instructions (instead of the .IF and .ELSEIF directives).
-Perform range checking on the credits value; it cannot be less than 1 or greater than 30. If an invalid entry is discovered, display an appropriate error message.
-Prompt the user for the grade average and credits values.
Display a message that shows the outcome of the evaluation, such as "The student can register" or "The student cannot register".
6.7.3 example:
.data
TRUE = 1
FALSE = 0
gradeAverage WORD 275 ; test value
credits WORD 12 ; test value
OkToRegister BYTE ?
.code
main PROC
mov OkToRegister,FALSE
.IF gradeAverage > 350
mov OkToRegister,TRUE
.ELSEIF (gradeAverage > 250) && (credits <= 16)
mov OkToRegister,TRUE
.ELSEIF (credits <= 12)
mov OkToRegister,TRUE
.ENDIF
Explanation / Answer
INCLUDE Irvine32.inc TRUE = 1 FALSE = 0 .data gradeAverage WORD ? credits WORD ? oKToRegister BYTE ? str1 BYTE "Error: Credits must be between 1 and 30" , 0dh,0ah,0 main PROC call CheckRegs exit main ENDP CheckRegs PROC push edx mov OkToRegister,FALSE ; Check credits for valid range 1-30 cmp credits,1 ; credits < 1? jb E1 cmp credits,30 ; credits > 30? ja E1 jmp L1 ; credits are ok ; Display error message: credits out of range E1: mov edx,OFFSET str1 call WriteString jmp L4 L1: cmp gradeAverage,350 ; if gradeAverage > 350 jna L2 mov OkToRegister,TRUE ; OkToRegister = TRUE jmp L4 L2: cmp gradeAverage,250 ; elseif gradeAverage > 250 jna L3 cmp credits,16 ; && creditsRelated Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.