我输出的可不是直接转换的ASCII字符,而是下面这段汇编执行完前两步之后堆栈内的值。后面带中断的递归实在是不知怎么弄了。
:00400000 EB04 jmp 00400006
:00400002 AF scasd
:00400003 C2BFA3 ret A3BF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400000(U)
|
:00400006 81EC00010000 sub esp, 00000100
:0040000C 31C9 xor ecx, ecx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400013(C)
|
:0040000E 880C0C mov byte ptr [esp+ecx], cl
:00400011 FEC1 inc cl
:00400013 75F9 jne 0040000E
:00400015 31C0 xor eax, eax
:00400017 BAEFBEADDE mov edx, DEADBEEF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400032(C)
|
:0040001C 02040C add al, byte ptr [esp+ecx]
:0040001F 00D0 add al, dl
:00400021 C1CA08 ror edx, 08
:00400024 8A1C0C mov bl, byte ptr [esp+ecx]
:00400027 8A3C04 mov bh, byte ptr [esp+eax]
:0040002A 881C04 mov byte ptr [esp+eax], bl
:0040002D 883C0C mov byte ptr [esp+ecx], bh
:00400030 FEC1 inc cl
:00400032 75E8 jne 0040001C
:00400034 E95C000000 jmp 00400095
* Referenced by a CALL at Address:
|:00400097
|
:00400039 89E3 mov ebx, esp
:0040003B 81C304000000 add ebx, 00000004
:00400041 5C pop esp
:00400042 58 pop eax
:00400043 3D41414141 cmp eax, 41414141
:00400048 7543 jne 0040008D
:0040004A 58 pop eax
:0040004B 3D42424242 cmp eax, 42424242
:00400050 753B jne 0040008D
:00400052 5A pop edx
:00400053 89D1 mov ecx, edx
:00400055 89E6 mov esi, esp
:00400057 89DF mov edi, ebx
:00400059 29CF sub edi, ecx
:0040005B F3 repz
:0040005C A4 movsb
:0040005D 89DE mov esi, ebx
:0040005F 89D1 mov ecx, edx
:00400061 89DF mov edi, ebx
:00400063 29CF sub edi, ecx
:00400065 31C0 xor eax, eax
:00400067 31DB xor ebx, ebx
:00400069 31D2 xor edx, edx
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040008B(C)
|
:0040006B FEC0 inc al
:0040006D 021C06 add bl, byte ptr [esi+eax]
:00400070 8A1406 mov dl, byte ptr [esi+eax]
:00400073 8A341E mov dh, byte ptr [esi+ebx]
:00400076 883406 mov byte ptr [esi+eax], dh
:00400079 88141E mov byte ptr [esi+ebx], dl
:0040007C 00F2 add dl, dh
:0040007E 30F6 xor dh, dh
:00400080 8A1C16 mov bl, byte ptr [esi+edx]
:00400083 8A17 mov dl, byte ptr [edi]
:00400085 30DA xor dl, bl
:00400087 8817 mov byte ptr [edi], dl
:00400089 47 inc edi
:0040008A 49 dec ecx
:0040008B 75DE jne 0040006B
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00400048(C), :00400050(C)
|
:0040008D 31DB xor ebx, ebx
:0040008F 89D8 mov eax, ebx
:00400091 FEC0 inc al
:00400093 CD80 int 80
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00400034(U)
|
:00400095 90 nop
:00400096 90 nop
:00400097 E89DFFFFFF call 00400039
:0040009C 41 inc ecx
:0040009D 41 inc ecx
:0040009E 41 inc ecx
:0040009F 41 inc ecx
|