HHH and HHH1 have identical source code except
for their name. The DDD of HHH1(DDD) has identical
behavior to the directly executed DDD().
DDD calls HHH(DDD) in recursive emulation. DDD does
not call HHH1 at all. This is why the behavior
of DDD.HHH1 is different than the behavior of DDD.HHH
_DDD()
[00002183] 55 push ebp
[00002184] 8bec mov ebp,esp
[00002186] 6883210000 push 00002183 ; push DDD
[0000218b] e833f4ffff call 000015c3 ; call HHH
[00002190] 83c404 add esp,+04
[00002193] 5d pop ebp
[00002194] c3 ret
Size in bytes:(0018) [00002194]
_main()
[000021a3] 55 push ebp
[000021a4] 8bec mov ebp,esp
[000021a6] 6883210000 push 00002183 ; push DDD
[000021ab] e843f3ffff call 000014f3 ; call HHH1
[000021b0] 83c404 add esp,+04
[000021b3] 33c0 xor eax,eax
[000021b5] 5d pop ebp
[000021b6] c3 ret
Size in bytes:(0020) [000021b6]
machine stack stack machine assembly
address address data code language
======== ======== ======== ========== ============= [000021a3][0010382d][00000000] 55 push ebp ; main() [000021a4][0010382d][00000000] 8bec mov ebp,esp ; main() [000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD [000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
New slave_stack at:1038d1
Begin Local Halt Decider Simulation Execution Trace Stored at:1138d9 [00002183][001138c9][001138cd] 55 push ebp ; DDD of HHH1 [00002184][001138c9][001138cd] 8bec mov ebp,esp ; DDD of HHH1 [00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD [0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:14e2f9
Begin Local Halt Decider Simulation Execution Trace Stored at:15e301 [00002183][0015e2f1][0015e2f5] 55 push ebp ; DDD of HHH[0] [00002184][0015e2f1][0015e2f5] 8bec mov ebp,esp ; DDD of HHH[0] [00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD [0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:198d21
*This is the beginning of the divergence of the behavior*
*of DDD emulated by HHH versus DDD emulated by HHH1*
[00002183][001a8d19][001a8d1d] 55 push ebp ; DDD of HHH[1] [00002184][001a8d19][001a8d1d] 8bec mov ebp,esp ; DDD of HHH[1] [00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD [0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
[00002190][001138c9][001138cd] 83c404 add esp,+04 ; DDD of HHH1 [00002193][001138cd][000015a8] 5d pop ebp ; DDD of HHH1 [00002194][001138d1][0003a980] c3 ret ; DDD of HHH1 [000021b0][0010382d][00000000] 83c404 add esp,+04 ; main() [000021b3][0010382d][00000000] 33c0 xor eax,eax ; main() [000021b5][00103831][00000018] 5d pop ebp ; main() [000021b6][00103835][00000000] c3 ret ; main()
Number of Instructions Executed(352831) == 5266 Pages
On 2025-09-05 15:29:57 +0000, olcott said:
HHH and HHH1 have identical source code except
for their name. The DDD of HHH1(DDD) has identical
behavior to the directly executed DDD().
DDD calls HHH(DDD) in recursive emulation. DDD does
not call HHH1 at all. This is why the behavior
of DDD.HHH1 is different than the behavior of DDD.HHH
_DDD()
[00002183] 55 push ebp
[00002184] 8bec mov ebp,esp
[00002186] 6883210000 push 00002183 ; push DDD
[0000218b] e833f4ffff call 000015c3 ; call HHH
[00002190] 83c404 add esp,+04
[00002193] 5d pop ebp
[00002194] c3 ret
Size in bytes:(0018) [00002194]
_main()
[000021a3] 55 push ebp
[000021a4] 8bec mov ebp,esp
[000021a6] 6883210000 push 00002183 ; push DDD
[000021ab] e843f3ffff call 000014f3 ; call HHH1
[000021b0] 83c404 add esp,+04
[000021b3] 33c0 xor eax,eax
[000021b5] 5d pop ebp
[000021b6] c3 ret
Size in bytes:(0020) [000021b6]
machine stack stack machine assembly
address address data code language
======== ======== ======== ========== =============
[000021a3][0010382d][00000000] 55 push ebp ; main()
[000021a4][0010382d][00000000] 8bec mov ebp,esp ; main()
[000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
[000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call
HHH1
New slave_stack at:1038d1
Begin Local Halt Decider Simulation Execution Trace Stored
at:1138d9
[00002183][001138c9][001138cd] 55 push ebp ; DDD >> of HHH1
[00002184][001138c9][001138cd] 8bec mov ebp,esp ; DDD
of HHH1
[00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:14e2f9
Begin Local Halt Decider Simulation Execution Trace Stored
at:15e301
[00002183][0015e2f1][0015e2f5] 55 push ebp ; DDD >> of HHH[0]
[00002184][0015e2f1][0015e2f5] 8bec mov ebp,esp ; DDD
of HHH[0]
[00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:198d21
*This is the beginning of the divergence of the behavior*
*of DDD emulated by HHH versus DDD emulated by HHH1*
[00002183][001a8d19][001a8d1d] 55 push ebp ; DDD >> of HHH[1]
[00002184][001a8d19][001a8d1d] 8bec mov ebp,esp ; DDD
of HHH[1]
[00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
[00002190][001138c9][001138cd] 83c404 add esp,+04 ; DDD of
HHH1
[00002193][001138cd][000015a8] 5d pop ebp ; DDD of >> HHH1
[00002194][001138d1][0003a980] c3 ret ; DDD of
HHH1
[000021b0][0010382d][00000000] 83c404 add esp,+04 ; main()
[000021b3][0010382d][00000000] 33c0 xor eax,eax ; main()
[000021b5][00103831][00000018] 5d pop ebp ; main() >> [000021b6][00103835][00000000] c3 ret ; main()
Number of Instructions Executed(352831) == 5266 Pages
That the behaviours diverge means that one of them has a bug.
If they are, as claimed, identical except for the name, the
bug is in both of them.
On 2025-09-05 15:29:57 +0000, olcott said:
HHH and HHH1 have identical source code except
for their name. The DDD of HHH1(DDD) has identical
behavior to the directly executed DDD().
DDD calls HHH(DDD) in recursive emulation. DDD does
not call HHH1 at all. This is why the behavior
of DDD.HHH1 is different than the behavior of DDD.HHH
_DDD()
[00002183] 55 push ebp
[00002184] 8bec mov ebp,esp
[00002186] 6883210000 push 00002183 ; push DDD
[0000218b] e833f4ffff call 000015c3 ; call HHH
[00002190] 83c404 add esp,+04
[00002193] 5d pop ebp
[00002194] c3 ret
Size in bytes:(0018) [00002194]
_main()
[000021a3] 55 push ebp
[000021a4] 8bec mov ebp,esp
[000021a6] 6883210000 push 00002183 ; push DDD
[000021ab] e843f3ffff call 000014f3 ; call HHH1
[000021b0] 83c404 add esp,+04
[000021b3] 33c0 xor eax,eax
[000021b5] 5d pop ebp
[000021b6] c3 ret
Size in bytes:(0020) [000021b6]
machine stack stack machine assembly
address address data code language
======== ======== ======== ========== =============
[000021a3][0010382d][00000000] 55 push ebp ; main()
[000021a4][0010382d][00000000] 8bec mov ebp,esp ; main()
[000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
[000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
New slave_stack at:1038d1
Begin Local Halt Decider Simulation Execution Trace Stored at:1138d9
[00002183][001138c9][001138cd] 55 push ebp ; DDD of HHH1
[00002184][001138c9][001138cd] 8bec mov ebp,esp ; DDD of HHH1
[00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:14e2f9
Begin Local Halt Decider Simulation Execution Trace Stored at:15e301
[00002183][0015e2f1][0015e2f5] 55 push ebp ; DDD of HHH[0]
[00002184][0015e2f1][0015e2f5] 8bec mov ebp,esp ; DDD of HHH[0]
[00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:198d21
*This is the beginning of the divergence of the behavior*
*of DDD emulated by HHH versus DDD emulated by HHH1*
[00002183][001a8d19][001a8d1d] 55 push ebp ; DDD of HHH[1]
[00002184][001a8d19][001a8d1d] 8bec mov ebp,esp ; DDD of HHH[1]
[00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
[00002190][001138c9][001138cd] 83c404 add esp,+04 ; DDD of HHH1
[00002193][001138cd][000015a8] 5d pop ebp ; DDD of HHH1
[00002194][001138d1][0003a980] c3 ret ; DDD of HHH1
[000021b0][0010382d][00000000] 83c404 add esp,+04 ; main()
[000021b3][0010382d][00000000] 33c0 xor eax,eax ; main()
[000021b5][00103831][00000018] 5d pop ebp ; main() >> [000021b6][00103835][00000000] c3 ret ; main()
Number of Instructions Executed(352831) == 5266 Pages
That the behaviours diverge means that one of them has a bug.
If they are, as claimed, identical except for the name, the
bug is in both of them.
On 9/15/2025 2:56 AM, Mikko wrote:
On 2025-09-05 15:29:57 +0000, olcott said:
HHH and HHH1 have identical source code except
for their name. The DDD of HHH1(DDD) has identical
behavior to the directly executed DDD().
DDD calls HHH(DDD) in recursive emulation. DDD does
not call HHH1 at all. This is why the behavior
of DDD.HHH1 is different than the behavior of DDD.HHH
_DDD()
[00002183] 55������������ push ebp
[00002184] 8bec���������� mov ebp,esp
[00002186] 6883210000���� push 00002183 ; push DDD
[0000218b] e833f4ffff���� call 000015c3 ; call HHH
[00002190] 83c404�������� add esp,+04
[00002193] 5d������������ pop ebp
[00002194] c3������������ ret
Size in bytes:(0018) [00002194]
_main()
[000021a3] 55������������ push ebp
[000021a4] 8bec���������� mov ebp,esp
[000021a6] 6883210000���� push 00002183 ; push DDD
[000021ab] e843f3ffff���� call 000014f3 ; call HHH1
[000021b0] 83c404�������� add esp,+04
[000021b3] 33c0���������� xor eax,eax
[000021b5] 5d������������ pop ebp
[000021b6] c3������������ ret
Size in bytes:(0020) [000021b6]
� machine�� stack���� stack���� machine��� assembly
� address�� address�� data����� code������ language
� ========� ========� ========� ========== =============
[000021a3][0010382d][00000000] 55�������� push ebp����� ; main()
[000021a4][0010382d][00000000] 8bec������ mov ebp,esp�� ; main()
[000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
[000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
New slave_stack at:1038d1
Begin Local Halt Decider Simulation�� Execution Trace Stored at:1138d9
[00002183][001138c9][001138cd] 55�������� push ebp����� ; DDD of HHH1
[00002184][001138c9][001138cd] 8bec������ mov ebp,esp�� ; DDD of HHH1
[00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:14e2f9
Begin Local Halt Decider Simulation�� Execution Trace Stored at:15e301
[00002183][0015e2f1][0015e2f5] 55�������� push ebp����� ; DDD of HHH[0]
[00002184][0015e2f1][0015e2f5] 8bec������ mov ebp,esp�� ; DDD of HHH[0]
[00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
New slave_stack at:198d21
*This is the beginning of the divergence of the behavior*
*of DDD emulated by HHH versus DDD emulated by HHH1*
[00002183][001a8d19][001a8d1d] 55�������� push ebp����� ; DDD of HHH[1]
[00002184][001a8d19][001a8d1d] 8bec������ mov ebp,esp�� ; DDD of HHH[1]
[00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
[0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
[00002190][001138c9][001138cd] 83c404���� add esp,+04 ; DDD of HHH1
[00002193][001138cd][000015a8] 5d�������� pop ebp���� ; DDD of HHH1
[00002194][001138d1][0003a980] c3�������� ret�������� ; DDD of HHH1
[000021b0][0010382d][00000000] 83c404���� add esp,+04 ; main()
[000021b3][0010382d][00000000] 33c0������ xor eax,eax ; main()
[000021b5][00103831][00000018] 5d�������� pop ebp���� ; main()
[000021b6][00103835][00000000] c3�������� ret�������� ; main()
Number of Instructions Executed(352831) == 5266 Pages
That the behaviours diverge means that one of them has a bug.
If they are, as claimed, identical except for the name, the
bug is in both of them.
HHH and HHH1 both emulate their input exactly
according to the semantics of the x86 language.
Don't denigrate my work on the basis of your own
lack of sufficient expertise. *THERE IS NO BUG*
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,071 |
Nodes: | 10 (0 / 10) |
Uptime: | 141:40:05 |
Calls: | 13,749 |
Calls today: | 1 |
Files: | 186,978 |
D/L today: |
3,629 files (1,034M bytes) |
Messages: | 2,424,181 |