首页 > 解决方案 > 如何在不使用循环的情况下在汇编语言中添加数字?

问题描述

我需要这个程序打印出 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

标签: mathassemblyx86irvine32

解决方案


好吧,我昨晚花了整整一夜才弄清楚,但这行得通。

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

推荐阅读