TITLE (SumUp.asm) ; promt and read N and out: 1 + 2 + ... N ; Last update: 11/28/17 ; INCLUDE Irvine32.inc .data msg BYTE "Input N: ", 0 msg2 BYTE "ANS = ", 0 .code main PROC MOV EDX, offset msg call WriteString call ReadInt ; EAX = N call sum ; call the precedure call crlf MOV EDX, offset msg2 call WriteString call WriteDec call crlf call crlf exit main ENDP sum PROC USES ECX ; Pre-condition: EAX = N ; Post-cond.: EAX = 1+2 .. ; PUSH ECX MOV ECX, EAX ; ECX = N MOV EAX, 0 LP: ADD EAX, ECX ; EAX = N + (N-1) + ... LOOP LP ; POP ECX RET sum ENDP END main