Hallo Gemeinde,
wo steckn der FehlerTeufel im code?
mit ollydbg bin ich nicht weiter gekommen, der Debugger freezt sich ein:
http://postimg.org/image/65qm8etl5/
hier der original code:
proc getchar
mov ebx,[pos_counter]
add ebx,1
mov [pos_counter],ebx
mov eax,[sourceAlloc]
movsx eax,byte [eax+ebx] ; add index + edi
mov [current_char],eax
mov ebx,[current_pos]
add ebx,1
mov [current_pos],ebx
mov dword [current_token+ebx],eax
mov dword [current_token+ebx+1],0 ; null terminated
.finish:
leave
ret
endp
proc skip_white_space
.nextchar:
mov [current_pos],-1
call getchar
;-----------------------------------------
; first, handle all white space char's ...
;-----------------------------------------
cmp [current_char],0
je .finish
cmp [current_char],9
je .nextchar
cmp [current_char],13
je .nextchar
cmp [current_char],32
je .nextchar
;---------------------------------------------------
; then, lookup, if alpha or number char is found ...
;---------------------------------------------------
cmp [current_char],57
jle .digit9
jmp .finish
.digit9:
invoke MessageBox,[MainWindow.hwnd],current_token,_error_text,3
call getchar
cmp [current_char],57
jle .digit9
jmp .finish
.finish:
invoke MessageBox,[MainWindow.hwnd],current_token,_error_text,3
ret
endp
Gru�
Jens