汇编语言以整数读取

时间:2015-03-26 00:31:21

标签: assembly integer

我必须编写一个程序,它将以四个整数读取,进行一些计算并打印出结果。我得到了一个结果,但我还需要打印出使用的整数,我无法弄清楚如何做到这一点。不能使用循环。任何帮助将不胜感激。

Prompt  BYTE    "Please enter four integers on different lines: ", 0dh, 0ah, 0
Result  BYTE    "The sum of the integers is: ", 0
Num1    DWORD   ?
Num2    DWORD   ?
Num3    DWORD   ?
Num4    DWORD   ?
Sum     DWORD   ?

.code

   main PROC
call Clrscr

mov  edx,OFFSET Prompt
call WriteString

call ReadInt
mov Num1, eax
call ReadInt
mov Num2, eax
call ReadInt
mov Num3, eax
call ReadInt
mov Num4, eax

mov eax, Num1
sub eax, Num2
add eax, Num3
sub eax, Num4


mov Sum, eax

call Clrscr

mov eax, OFFSET Num1
call WriteInt


mov edx, OFFSET Result
call WriteString

mov eax, Sum
call WriteInt

call CRLF


exit
main ENDP

1 个答案:

答案 0 :(得分:1)

mov eax, Num1
sub eax, Num2
add eax, Num3
sub eax, Num4

如果这是你需要的总和,那么我不明白为什么你在这里两次使用SUB指令!

mov eax, OFFSET Num1
call WriteInt

要输出第一个数字,只需删除OFFSET标记即可。现在显示Num1变量的地址 要输出在不使用循环的情况下使用的所有整数,只需对每个数字重复操作。为了便于阅读,您可能希望在数字之间输出CRLF。

mov eax,Num1
call WriteInt
call CRLF
mov eax,Num2
call WriteInt
call CRLF
mov eax,Num3
call WriteInt
call CRLF
mov eax,Num4
call WriteInt
call CRLF