my code tester prcedure is given me problems,,,, it compute the entry values that are least and equal to but when I try to validate it I get errors.... Can someone help me. with the code in the red?
integer_count = 20
.data
prompt1 byte "How many integer will be added: ", 0
prompt2 byte "Enter a signed integer: ", 0
prompt3 byte "The sum of the integers is: ", 0
error1 byte "Please enter a integer less than or equal to 20: ", 0
error2 byte "done",0
array dword integer_count dup(20)
.code
main proc
call clrscr
mov esi, offset array
mov ecx, integer_count
call tester
call promptforintegers
call arraysum
call displaysum
exit
main endp
tester proc uses edx
mov edx, offset prompt1
call writestring
call readint
call crlf
.repeat
.if eax > ecx
mov edx, offset error1
call writestring
call readint
call crlf
call dumpregs
mov ecx,3
dec ecx
.if ecx == 0
mov edx, offset error2
exit
.endif
.endif
.until eax<=ecx
mov ecx, eax ;count controller
ret
tester endp
promptforintegers proc uses ecx edx esi
mov edx, offset prompt2 ; "Enter a signed integer"
L1: call writestring ; display string
call readint ; read integer into eax
call crlf ; go to next output line
mov [esi] ,eax ; store in array
add esi, type dword ; next integer
Loop L1
ret
promptforintegers endp
arraysum proc uses esi ecx
mov eax, 0 ; set the sum to zero
L1: add eax, [esi] ; add each integer to sum
add esi, type dword ; point to next integer
call dumpregs
Loop L1 ; repeat for array size
ret ; sum is in eax
arraysum endp
;------------------------------------------------------------------
displaysum proc uses edx
mov edx, offset prompt3 ; "The sum of the ..."
call writestring
call writeint ; display eax
call crlf
ret
displaysum endp
end main