yo nunca he usado ExitProcess en asm  
 y en C solo cuando tengo varios hilos. 
				
			
 y en C solo cuando tengo varios hilos. 
				Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
 y en C solo cuando tengo varios hilos. 
				
format pe console
entry main
include 'c:\fasm\include\win32ax.inc'
.data
texto   db      'invierteme',0
.code
main:
    xor eax,eax
    add eax,10
    mov ebx, texto
        add eax,ebx
        dec eax
 
        asd:
         mov ch, byte[ebx]
         mov cl, byte[eax]
         mov byte[ebx], cl
         mov byte[eax], ch
         inc ebx
         dec eax
         cmp     ebx,eax
         jbe asd
push texto
call [puts]
add esp,4
ret
section '.idata' import data readable
library msvc,'msvcrt.dll'
import msvc,puts,'puts'
				Cita de: Yurix en 16 Junio 2009, 21:57 PM
Hola a todos , esta es mi forma de pasar un texto a mayuscula o minuscula
(add byte ptr ds:[eax], 20h) , no es mejor ni peor solo es la forma que encontre.
Escriban las suyas para comparar
lea eax, string
dec eax
inicio:
inc eax
cmp byte ptr ds:[eax], 0
je salir
cmp byte ptr ds:[eax], 61h
jb inicio ; Salta si es menor a "61" o "a"
cmp byte ptr ds:[eax], 7Ah
ja inicio ; Salta si es mayor que "7a" o "z"
sub byte ptr ds:[eax], 20h ; Resta 20 para hacerlos mayuscula
jmp inicio ; SAlta a el principio
salir:
toUpper:
	push ebp
	mov ebp,esp
	    mov esi,[ebp + 8]
	begin:
	    lodsb
	    cmp al,0
	    je endx
	    sub al,0x61
	    cmp al,0x1A
	    ja incr
	    and byte[esi-1],0xDF
	    incr:
		 jmp begin
	endx:
pop ebp
 
retn 4
toLower:
	    push ebp
	    mov ebp,esp
	    mov esi,[ebp + 8]
	beginL:
	    lodsb
	    cmp al,0
	    je endx
	    sub al,0x41
	    cmp al,0x1A
	    ja incrL
	    or byte[esi-1],0x20
	    incrL:
		 jmp beginL
	endxL:
pop ebp
retn 4
				
strrev:
        push ebp
        mov ebp,esp
        push edi
        mov edi,[ebp + 8]
        push edi
        call strlen
        xor ecx,ecx
        dec eax
        jmp LL1
        LL0:
                dec eax
                inc ecx
                cmp ecx,eax
                jge LL2
        LL1:
                mov dl,byte[edi + ecx]
                xchg byte[edi + eax],dl
                mov byte[edi + ecx],dl
                jmp LL0
        LL2:
        mov eax,[ebp + 8]
        pop edi
        pop ebp
retn 4
strlen:
	push edi
	xor ecx,ecx
	mov edi, [esp + 8]
	not ecx
	xor eax,eax
	cld
	repne scasb
	not ecx
	pop edi
	add eax,ecx
	dec eax
retn 4
				
 .
 
				