title The fun Subroutine    (fun2.asm)

; This subroutine links to Visual C++ 6.0.

.386P
.model flat
public _fun2

.code
_fun2 proc near   ; Zamiana w tablicy małych liter na wielkie
    push ebp
    mov ebp, esp

    mov esi, dword PTR[ebp+8]	; pierwszy argument funkcji
    mov ecx, 100h		; maksymalny zakres poszukiwania końca łańcucha  znaków -> 256 znakow
	mov edi, 0			; licznik długości łańcucha
ptl:
	mov dl, [esi]
	cmp dl, 0h
	je dalej
	inc esi
	inc edi
	loop ptl
dalej:				
	mov esi, dword PTR[ebp+12]	; wyznaczenie drugiego argumentu funkcji - długości łańcucha
	mov [esi], edi

	mov ecx, edi				; długość pętli = długości łańcucha znaków
    mov esi, dword PTR[ebp+8]
ptl1:
	mov dl, [esi]
	cmp dl, 'a'
	jb nierob
	cmp dl, 'z'
	ja nierob
	sub dl, 20h
nierob:
    mov [esi], dl
	inc esi
	loop ptl1
	 
	mov eax, 0h		; return 0
    pop ebp
    ret                   
_fun2 endp
end

