Проблемы с синтаксисом вычитания в ассемблере x86 - PullRequest
0 голосов
/ 04 декабря 2018

До сих пор у меня была написана большая часть кода, но самая большая сложность, с которой я столкнулся, заключается в том, что вывод для входных данных, введенных пользователем.Кажется, что он собирает все данные из каждой строки и затем выводит их.Я хочу, чтобы они выводили их по отдельности и показывали конечный результат вычитания завершенных кредитов и требуемых кредитов.Буду признателен за любую помощь, которую вы, ребята, сможете оказать и направить меня в направлении написания моего кода.

.586
.MODEL FLAT

INCLUDE io.h            ; header file for input/output

.STACK 4096

.DATA 
studentName         DWORD   ?
degreeName              DWORD   ?
creditsCompleted        DWORD   ?
creditsNeeded           DWORD   ?

prompt1 BYTE    "Enter your Name:", 0
prompt2 BYTE    "Enter your Degree Name:", 0
prompt3 BYTE    "Enter the number of Credits Completed:", 0
prompt4 BYTE    "Enter the number of Credits Required:", 0
string  BYTE    40 DUP (?)

resultLbl BYTE  "The Credits left to complete are:", 0
sum     BYTE    40 DUP (?), 0

.CODE
_MainProc PROC
    input   prompt1, string, 40      ; read ASCII characters
    atod    string          ; convert to integer
    mov     studentName, ebx    ; store in memory

    input   prompt2, string, 40      ; repeat for second number
    atod    string
    mov     degreeName, ecx

    input   prompt3, string, 40
    atod    string 
    mov     creditsCompleted,edx

    input   prompt4, string, 40
    atod    string 
    mov     creditsNeeded,eax


    mov     eax, creditsNeeded     
    sub     eax, creditsCompleted    
    dtoa    sum, eax        
    output  resultLbl, sum  

_MainProc ENDP
END                             ; end of source code

Не могу понять, как число, которое я выводил, на самом деле не вычитается.Число либо слишком высокое, либо слишком низкое.

...