Hello,
Here is a quick example :
.386
.model flat,stdcall
option casemap:none
ExitProcess PROTO :DWORD
printf PROTO C :DWORD,:VARARG
includelib \PellesC\lib\Win\kernel32.lib
includelib msvcrt.lib
.data
string db 'This is a test.',0
.code
UpperCase : ; PROC s:DWORD
mov edx,DWORD PTR [esp+4]
_loop:
movzx eax,BYTE PTR [edx]
test eax,eax
jz _exit
cmp eax,96
setg al
Shr eax,1
sbb eax,eax
movzx ecx,BYTE PTR [edx]
cmp ecx,123
setl cl
Shr ecx,1
sbb ecx,ecx
And eax,ecx
Shl eax,5
movzx ecx,BYTE PTR [edx]
Add eax,ecx
mov BYTE PTR [edx],al
inc edx
jmp _loop
_exit:
mov eax,DWORD PTR [esp+4]
ret 4
start:
push OFFSET string
call UpperCase
invoke printf,ADDR string
invoke ExitProcess,0
END start