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

In assembly language only Note: use arrays for this assignment Your program shou

ID: 3920317 • Letter: I

Question

In assembly language only

Note: use arrays for this assignment

Your program should first ask for 3 names.

Your program will then receive 5 grades from each person.

Once complete, you will calculate the average and the letter grade.

Finally (after all the above was calculated). You will display all the information. Here is an example.

Please enter 3 names.

Nick

Joe

Tom

Please enter 5 grades for Nick.

100

100

100

100

100

Please enter 5 grades for Joe

50

60

70

80

90

Please enter 5 grades for Tom

90

90

80

80

85

Nicks Average is a +100. Letter Grade is a A

Joes Average is a +70. Letter Grade is a C.

Toms Average is a +85. Letter Grade is a B.

**For this assignment, you will be using nested loops and arrays to hold the grades entered.**

Explanation / Answer

As per your requirement program taking input from user like name and grade

To output a string following code is used:

MOV DX,

MOV AH, 09h

INT 21h

To Input a string following code is used:

MOV DX, ...

MOV AH, 0Ah

INT 21h

Syntax to declare array:

Array_name Data_type No._of _Index DUP(?)

here DUP means initializing array to null

Variable declaration:

Variable_name Data_type ?

----------------Code start here--------------

.MODEL SMALL
.STACK 100H

.DATA
    gmsg1 db 10, " Letter grade is A"
    gmsg2 db 10, " Letter grade is B"
    gmsg3 db 10, " Letter grade is c"
    Name DW 3 DUP(?)
  
    Grade1 DW 5 DUP(?)  
    Grade2 DW 5 DUP(?)
    Grade3 DW 5 DUP(?)  
   
    avg1 DB ?
    avg2 DB ?
    avg3 DB ?

    Num1 DB 100  
    Num2 DB 85
    Num3 DB 70
  
    msg1 DB 10, " Please enter 3 names::"
    msg2 DB 10, " Please enter 5 grades for 1st name :"
    msg3 DB 10, " Please enter 5 grades for 2nd name :"
    msg4 DB 10, " Please enter 5 grades for 3rd name :"

.CODE
   MAIN PROC
   
        MOV AX,@DATA
        MOV DS,AX
        XOR BX,BX
        XOR CX,CX
      
        lea Dx,msg1    ;print :please enter 3 names
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT1:
           INT 21H
           MOV Name[SI],AL
           INC SI
           LOOP INPUT1
      
        lea Dx,msg2             ;Printmsg: grade for 1st
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT2:
           INT 21H
           MOV Grade1[SI],AL
           INC SI
           LOOP INPUT2
       
         lea Dx,msg3          ;Printmsg :grade for 2nd
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT3:
           INT 21H
           MOV Grade2[SI],AL
           INC SI
           LOOP INPUT3
      

        lea Dx,msg4           ;Printmsg: grade for 3rd
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT4:
           INT 21H
           MOV Grade3[SI],AL
           INC SI
           LOOP INPUT4

;-------------average and grade calculation for 1st---------

      LEA SI,Grade1   ;si point to grade1 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP1:
           ADD AL,Grade1[SI]
           INC SI
      LOOP LOOP1

      DIV BL

      ADD AL,30H

      MOV DX, Name[0]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 1st name
      MOV AH,2
      INT 21H

      MOV AL, avg1
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG1
      TAG1:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG2
      TAG2:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG3
      TAG3:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H

;--------average and grade calculation for 2nd----------------

     LEA SI,Grade2   ;si point to grade2 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP2:
           ADD AL,Grade2[SI]
           INC SI
      LOOP LOOP2

      DIV BL

      ADD AL,30H

      MOV DX, Name[1]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 2nd name
      MOV AH,2
      INT 21H

      MOV AL, avg2
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG4
      TAG4:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG5
      TAG5:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG6
      TAG6:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H
;----------------average and grade calculation for 3rd--------------------------------------

      LEA SI,Grade3   ;si point to grade3 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP3:
           ADD AL,Grade3[SI]
           INC SI
      LOOP LOOP3

      DIV BL

      ADD AL,30H

      MOV DX, Name[2]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 1st name
      MOV AH,2
      INT 21H

      MOV AL, avg3
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG7
      TAG7:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG8
      TAG8:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG9
      TAG9:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H


      MOV AH,4CH
      INT 21H   

      

.MODEL SMALL
.STACK 100H

.DATA
    gmsg1 db 10, " Letter grade is A"
    gmsg2 db 10, " Letter grade is B"
    gmsg3 db 10, " Letter grade is c"
    Name DW 3 DUP(?)
  
    Grade1 DW 5 DUP(?)  
    Grade2 DW 5 DUP(?)
    Grade3 DW 5 DUP(?)  
   
    avg1 DB ?
    avg2 DB ?
    avg3 DB ?

    Num1 DB 100  
    Num2 DB 85
    Num3 DB 70
  
    msg1 DB 10, " Please enter 3 names::"
    msg2 DB 10, " Please enter 5 grades for 1st name :"
    msg3 DB 10, " Please enter 5 grades for 2nd name :"
    msg4 DB 10, " Please enter 5 grades for 3rd name :"

.CODE
   MAIN PROC
   
        MOV AX,@DATA
        MOV DS,AX
        XOR BX,BX
        XOR CX,CX
      
        lea Dx,msg1    ;print :please enter 3 names
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT1:
           INT 21H
           MOV Name[SI],AL
           INC SI
           LOOP INPUT1
      
        lea Dx,msg2             ;Printmsg: grade for 1st
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT2:
           INT 21H
           MOV Grade1[SI],AL
           INC SI
           LOOP INPUT2
       
         lea Dx,msg3          ;Printmsg :grade for 2nd
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT3:
           INT 21H
           MOV Grade2[SI],AL
           INC SI
           LOOP INPUT3
      

        lea Dx,msg4           ;Printmsg: grade for 3rd
         MOV AH, 02H
         INT 21H
        MOV CL,3
        MOV BL,AL
        MOV SI,0
      
        INPUT4:
           INT 21H
           MOV Grade3[SI],AL
           INC SI
           LOOP INPUT4

;-------------average and grade calculation for 1st---------

      LEA SI,Grade1   ;si point to grade1 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP1:
           ADD AL,Grade1[SI]
           INC SI
      LOOP LOOP1

      DIV BL

      ADD AL,30H

      MOV DX, Name[0]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 1st name
      MOV AH,2
      INT 21H

      MOV AL, avg1
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG1
      TAG1:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG2
      TAG2:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG3
      TAG3:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H

;--------average and grade calculation for 2nd----------------

     LEA SI,Grade2   ;si point to grade2 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP2:
           ADD AL,Grade2[SI]
           INC SI
      LOOP LOOP2

      DIV BL

      ADD AL,30H

      MOV DX, Name[1]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 2nd name
      MOV AH,2
      INT 21H

      MOV AL, avg2
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG4
      TAG4:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG5
      TAG5:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG6
      TAG6:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H
;----------------average and grade calculation for 3rd--------------------------------------

      LEA SI,Grade3   ;si point to grade3 array
   
      MOV AX,00
      MOV BL,5

      MOV CX,5          ; taking average of grade1 array
      LOOP3:
           ADD AL,Grade3[SI]
           INC SI
      LOOP LOOP3

      DIV BL

      ADD AL,30H

      MOV DX, Name[2]   ;PRINT name
      MOV AH,2
      INT 21H

      PRINT "Average is a : "
      MOV DL,AL   ;PRINT average of 1st name
      MOV AH,2
      INT 21H

      MOV AL, avg3
      MOV BL, NUM1
      CMP AL, BL
      JLE TAG7
      TAG7:
         lea Dx,gmsg1
         MOV AH, 02H
         INT 21H
      mov bl, NUM2
      cmp al,bl
      JLE TAG8
      TAG8:
         lea Dx,gmsg2
         MOV AH, 02H
         INT 21H

      mov bl, NUM3
      cmp al,bl
      JLE TAG9
      TAG9:
         lea Dx,gmsg3
         MOV AH, 02H
         INT 21H


      MOV AH,4CH
      INT 21H   

      

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