Versión en ASM del algoritmo de cifrado César, programada por CronuX.

Cesar.inc:

.data
Cifrado db 128 Dup(?)
msgerror db "Ingresado Caracteres Invalidos",0
msgerrorclave db "Clave Ingresada Invalida",0
 
.data?
 
Nombre db 256 Dup(?)
clave db 256 dup(?)

Cesar.asm:

;****************************************
;   @----------------------------------
;   @ Autor original: [p3ll3]
;   @ Version original: Java
;   @ Autor modificacion: CronuX
;   @ Version modificacion: ASM (Masm32)
;   @ Sitio web:
;      - http://foro.code-makers.net
;  @----------------------------------
;*****************************************
invoke GetDlgItemText,hWin,EditNombre,addr Nombre,128
xor eax,eax
invoke GetDlgItemText,hWin,Editclave,addr clave,18
invoke atodw,addr clave
cmp eax, 19h
jnl errorclave
xor ecx,ecx
mov ecx,eax
xor ebx,ebx
xor eax,eax
bucle:
mov al,byte ptr [ebx+Nombre]
cmp al, 41h
jl error
cmp al, 5bh
jl suma
jmp sigue
suma:
add al,32
sigue:
cmp al,61h
jl error
cmp al, 7bh
jnl error
add al,cl
cmp al,7ah
jbe sigue2
sub al,7ah
add al,60h
jmp sigue2
sigue2:
mov byte ptr [Cifrado+ebx],al
inc ebx
cmp byte ptr [Nombre+ebx],0
je sale
jmp bucle
sale:
mov byte ptr[Cifrado+EBX],0
Invoke SetDlgItemText,hWin,EditCifrado,addr Cifrado
jmp salida
error:
invoke SetDlgItemText,hWin,EditCifrado,addr msgerror
jmp salida
errorclave:
invoke SetDlgItemText,hWin,EditCifrado,addr msgerrorclave
salida:
fin