        .386
        .model flat,stdcall
        
		option casemap:none

        include windows.inc
        include kernel32.inc
        includelib kernel32.lib

        .data
		ArrayW DWORD 00000001h, 00000010h, 00000100h, 00001000h, 00010000h, 00100000h, 0100000h, 10000000h 
        Array2W DWORD 1,2,3,4,1 
		ArrayB WORD 1,2,3,1,1
		.code
        start:
				mov edi, OFFSET ArrayW		;START... Address
				mov ecx, LENGTHOF ArrayW	;COUNTER
				mov esi, TYPE ArrayW
				call ArySum
				
				mov edi, OFFSET Array2W		;START... Address
				mov ecx, LENGTHOF Array2W	;COUNTER
				mov esi, TYPE Array2W
				call ArySum
			
				mov edi, OFFSET ArrayB		;START... Address
				mov ecx, LENGTHOF ArrayB	;COUNTER
				mov esi, TYPE ArrayB
				call ArySum
			invoke ExitProcess, NULL

			;----------------- ArySum PROCEDURE -----------
			ArySum PROC
				 mov eax,0				;TOTAL
		    LP1: add eax,[edi]
				 add edi, esi
				 loop LP1
				 ret
			ArySum ENDP


        end start

