Как мне использовать "call PutDe c" на ассемблере? Он должен распечатать регистр топора, но по какой-то причине он ничего не дает - PullRequest
0 голосов
/ 27 марта 2020

Я практиковал проблему в своем классе Assembly, и я не могу понять, почему после компиляции и запуска моей программы на выходе получается мусор, являющийся неразборчивыми символами. Уравнение для задач: A = B * 3 +6 / (X + D), где B == 10, X == 4, D == 2

 INCLUDE PCMAC.inc
   .model     small
   .586
   .stack  100h
   .data
   B    dw 0
   X    dw 0
   D    dw 0
   A    dw 0

   X_Prompt DW 'X',$
   B_Prompt DW 'Y',$
   D_Prompt DW 'D',$
 ;  Message DB      A,$

       .CODE
       EXTRN getDec: Near, putDec: Near
Box PROC
       _Begin
       _PutStr B_Prompt
       call getDec
       mov    B, ax
       mov    ax, 3
       mul B  ; B*3 (10 *3) portion of the equation. stored in dx
       mov B, dx

       _PutStr X_Prompt
       call getDec
       mov  X, ax
       _PutStr D_Prompt
       call getDec
       add X, ax
       mov ax, X
       div B
       call PutDec

Я также пытался использовать _PutStr Message и отображая A. Но это тоже не сработало, поэтому я попытался использовать PutDe c. Я не уверен, что с ним не так.

       _Exit 0
       Box ENDP
       END Box
...