Беда с делением в сборе - PullRequest
       51

Беда с делением в сборе

0 голосов
/ 10 октября 2018

Как видно из названия, у меня проблемы с разделением в сборке.Пользователь вводит 4 оценки, и программа предполагает получить среднее значение.Программа выведет правильный результат, если сумма четырех оценок делится на 4. Она выдаст большое число, если это не так.Код использует C для вывода.Как я могу исправить эту ошибку?Вот код

.586
.MODEL FLAT

INCLUDE io.h            ; header file for input/output

.STACK 4096

.DATA
 g1   DWORD   ?
 g2   DWORD   ?
 g3   DWORD   ?
 g4   DWORD   ?
 jj   BYTE  4
 prompt1 BYTE    "Enter grade 1", 0     
 prompt2 BYTE    "Enter grade 2", 0
 prompt3 BYTE    "Enter grade 3", 0
 prompt4 BYTE    "Enter grade 4", 0
 string  BYTE    40 DUP (?)
 resultLbl BYTE  "The average is", 0
 sum     BYTE    11 DUP (?), 0
 sum2    BYTE    11 DUP (?), 0

  .CODE
  MainProc PROC
        input   prompt1, string, 40      ; read ASCII characters
        atod    string          ; convert to integer
        mov     g1, eax    ; store in memory

        input   prompt2, string, 40      ; repeat for second number
        atod    string
        mov g2, eax

        input prompt3, string, 40        ;Repeat for third character
        atod string
        mov g3, eax

        input prompt4, string, 40        ;Repeat for third character
        atod string
        mov g4, eax

        mov eax, g1
        add eax, g2
        add eax, g3
        add eax, g4


       div jj


       dtoa    sum, eax        ; convert to ASCII characters
       output  resultLbl, sum         ; output label and sum

       mov     eax, 0  ; exit with return code 0
       ret
  _MainProc ENDP
  END                             ; end of source code
...