Sujet : Re: Anyone that disagrees with this is not telling the truth
De : mikko.levanto (at) *nospam* iki.fi (Mikko)
Groupes : comp.theoryDate : 18. Aug 2024, 09:49:13
Autres entêtes
Organisation : -
Message-ID : <v9sci9$2b063$1@dont-email.me>
References : 1
User-Agent : Unison/2.2
On 2024-08-17 12:29:15 +0000, olcott said:
void DDD()
{
HHH(DDD);
}
_DDD()
[00002172] 55 push ebp ; housekeeping
[00002173] 8bec mov ebp,esp ; housekeeping
[00002175] 6872210000 push 00002172 ; push DDD
[0000217a] e853f4ffff call 000015d2 ; call HHH(DDD)
[0000217f] 83c404 add esp,+04
[00002182] 5d pop ebp
[00002183] c3 ret
Size in bytes:(0018) [00002183]
*It is a basic fact that DDD emulated by HHH according to*
*the semantics of the x86 language cannot possibly stop*
*running unless aborted* (out of memory error excluded)
It is obfious from both the C code and disassembly listing
that DDD cannot return if HHH doesn't (but can and does
otherwise). Whether HHH returns is not obvious as the details
of HHH is not shown and most of its behaviour is unspecified.
The phrase "DDD emulated by HHH" is not good. It may be even
misleading. DDD is fully specified by the code above except
the effect of calling HHH, so the phrase "emulated by HHH"
does not mean anything.
Because of these defects one can truthfully disagree. In addition
disagreement about anyithing other than facts can be truthful
anyway. Therefore the claim on the subject line is false.
-- Mikko