Как добавить числа на ассемблере без использования цикла? - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужна эта программа, чтобы распечатать 1 + 3 + 4 + 10 = 18, но я пока не добился успеха.Я могу сделать это, чтобы распечатать 18 в одиночку, но это не то, что меня просят сделать.Мне не разрешено использовать петли.Может ли кто-нибудь помочь мне с этим?

INCLUDE Irvine32.inc
.data

y1 DWORD 1
y2 DWORD 3
y3 DWORD 4
y4 DWORD 10

plus byte " + ",0
equal byte " = ",0

.code

main PROC




exit

main ENDP
END main

1 Ответ

0 голосов
/ 28 февраля 2019

ОК, мне потребовалась вся моя последняя ночь, чтобы понять, но это работает.

INCLUDE Irvine32.inc  ; like import
.data

y1 dword 1
y2 dword 3
y3 dword 4
y4 dword 10

plus byte " + ",0
equal byte " = ",0;

.code

main PROC
    mov eax,0
    mov edx,offset plus
    mov ebx,0
    mov eax,y1
    call writedec
    add ebx,eax
    call writestring
    mov eax,y2
    call writedec
    add ebx,eax
    call writestring
     mov eax,y3
    call writedec
    add ebx,eax
    call writestring 
     mov eax,y4
    call writedec
    add ebx,eax
    mov edx,offset equal
    call writestring
    mov eax,ebx
    call writedec

   exit

main ENDP

end main
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...