.386 .model flat, stdcall ;32 bit memory model option casemap :none ;case sensitive include windows.inc include kernel32.inc include user32.inc includelib kernel32.lib includelib user32.lib .data szName db "Kyle",0 szFormat db "Serial: %4x", 0 .data? szValue DWORD ? szBuffer DWORD ? .code start: push edx push ebx xor edx, edx xor ebx, ebx mov eax, offset szName here: movsx edx, byte ptr [eax] add ebx, edx inc eax or edx, edx jnz here invoke wsprintf, offset szBuffer, offset szFormat, ebx pop edx pop ebx invoke MessageBox,0, addr szBuffer, addr szName, MB_OK invoke ExitProcess,0 end start