; Meaningless program that makes a few hops and then exits .386 .MODEL FLAT ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD .DATA jump_anywhere DWORD ? .CODE _start: mov eax, offset label_three ; prepare address jmp eax ; register indirect jump ; label_one: jmp quit_program ; unconditional relative jump ; label_two: mov eax, offset label_one mov jump_anywhere, eax jmp jump_anywhere ; memory indirect jump ; label_three: mov edi, offset jump_anywhere mov eax, offset label_two mov jump_anywhere, eax jmp dword ptr [edi] ; jump via pointer to a variable that contains an address ; quit_program: INVOKE ExitProcess, 0 ; exit with return code 0 PUBLIC _start ; make entry point public END ; end of source code