TITLE Loop (SumNum_Avg.asm) ; out 1 + 2 + ... + N ; find avg ; Last update: 11/2/17 ; INCLUDE Irvine32.inc .data msg BYTE "N? ", 0 spc BYTE " ", 0 sum DWORD 0 dvs DWORD ? .code main PROC MOV EDX, offset msg call WriteString ; # of loops: N call readInt MOV ECX, EAX ; # of loops MOV dvs, EAX ; hold the N MOV EAX, 1 ; EAX = 1 LL: call WriteDec ; output: 1 2 MOV EDX, offset spc call WriteString ADD sum, EAX ; sum = 1 + 2 + 3 + 4... INC EAX ; 2 3 ... LOOP LL call crlf call crlf MOV EAX, sum ; EAX = 1+2+ ... + N call WriteDec call crlf call crlf ;------------------------------------ ; find avg MOV EDX, 0 ; read for division DIV dvs ; [EDX EAX]/N -> avg call WriteDec call crlf call crlf exit main ENDP END main