Sujet : Re: Because I have repeated this same point 500 times in the last three years...
De : polcott333 (at) *nospam* gmail.com (olcott)
Groupes : comp.theoryDate : 26. Jul 2024, 14:17:19
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v807kv$2rabc$1@dont-email.me>
References : 1 2
User-Agent : Mozilla Thunderbird
On 7/26/2024 3:42 AM, Mikko wrote:
On 2024-07-26 01:49:46 +0000, olcott said:
If you understand the x86 language and can't tell how DDD
emulated by HHH differs from DDD emulated by HHH1 by the
following then you are probably lying about understanding
the x86 language.
>
*I did annotate it a little better this time*
>
typedef void (*ptr)();
int HHH(ptr P);
int HHH1(ptr P);
>
void DDD()
{
HHH(DDD);
}
>
int main()
{
HHH1(DDD);
}
>
*You really don't need to know one damn thing else besides this*
*You really don't need to know one damn thing else besides this*
*You really don't need to know one damn thing else besides this*
>
All that you have to know is that HHH and HHH1 are x86 emulators
and that HHH sees that same repeated state (first four lines of DDD)
that anyone knowing the x86 language can see.
The first state of DDD is not repeated in the same execution. Another
exection may see the same states and at least sees the same initial
state but that is not called a repeated state. A repeated state is a
state that has alredy occurred in the same execution.
It is a repeating state in the the exact same x86 machine
instructions at the exact same memory addresses repeat.
The point is that even if we call it "late for dinner"
it is a non-halting behavior pattern where halting
means that DDD reaches its own "ret" instruction.
// emulates 2nd instance of DDD that calls HHH(DDD)
Begin Local Halt Decider Simulation Execution Trace Stored at:15e2cf
[00002177][0015e2bf][0015e2c3] 55 push ebp
[00002178][0015e2bf][0015e2c3] 8bec mov ebp,esp
[0000217a][0015e2bb][00002177] 6877210000 push 00002177 ; push DDD
[0000217f][0015e2b7][00002184] e853f4ffff call 000015d7 ; call HHH
New slave_stack at:198cef
// emulates 3rd instance of DDD that calls HHH(DDD)
[00002177][001a8ce7][001a8ceb] 55 push ebp
[00002178][001a8ce7][001a8ceb] 8bec mov ebp,esp
[0000217a][001a8ce3][00002177] 6877210000 push 00002177 ; push DDD
[0000217f][001a8cdf][00002184] e853f4ffff call 000015d7 ; call HHH
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
DDD emulated by HHH calls HHH(DDD) to repeat this process
until HHH sees that the first four instructions have been
repeated and there are no conditional instructions that
would keep this from endlessly forever.
This is the exact same pattern with Infinite_Recursion()
where there are no conditional branch instructions that
would prevent the first three instructions of
Infinite_Recursion() from endlessly repeating.
_Infinite_Recursion()
[0000215a] 55 push ebp
[0000215b] 8bec mov ebp,esp
[0000215d] e8f8ffffff call 0000215a ; recursive call
[00002162] 5d pop ebp
[00002163] c3 ret
Size in bytes:(0010) [00002163]
Begin Local Halt Decider Simulation Execution Trace Stored at:113934
Decide_Halting_HH:1
[0000215a][00113924][00113928] 55 push ebp
[0000215b][00113924][00113928] 8bec mov ebp,esp
[0000215d][00113920][00002162] e8f8ffffff call 0000215a
[0000215a][0011391c][00113924] 55 push ebp
[0000215b][0011391c][00113924] 8bec mov ebp,esp
[0000215d][00113918][00002162] e8f8ffffff call 0000215a
Local Halt Decider: Infinite Recursion Detected Simulation Stopped
-- Copyright 2024 Olcott "Talent hits a target no one else can hit; Geniushits a target no one else can see." Arthur Schopenhauer